@nebulaaa/grapheme 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1893 @@
1
+ /**
2
+ * 字素断点属性数据(Unicode 16.0.0)
3
+ * 由 scripts/gen-break-data.mjs 生成,请勿手工修改。
4
+ */
5
+ /**
6
+ * 字素断点属性区间表:BREAK_TABLE
7
+ * 由 scripts/gen-break-data.mjs 从 Unicode 16.0.0 官方数据生成,请勿手工修改。
8
+ * 扁平结构 [start, end, type, ...],按 start 升序,类型编号见 src/index.ts 常量。
9
+ */
10
+ const BREAK_TABLE = [
11
+ 0, 9, 3, // U+0000..U+0009 Control
12
+ 10, 10, 2, // U+000A..U+000A LF
13
+ 11, 12, 3, // U+000B..U+000C Control
14
+ 13, 13, 1, // U+000D..U+000D CR
15
+ 14, 31, 3, // U+000E..U+001F Control
16
+ 127, 159, 3, // U+007F..U+009F Control
17
+ 173, 173, 3, // U+00AD..U+00AD Control
18
+ 768, 879, 4, // U+0300..U+036F Extend
19
+ 1155, 1161, 4, // U+0483..U+0489 Extend
20
+ 1425, 1469, 4, // U+0591..U+05BD Extend
21
+ 1471, 1471, 4, // U+05BF..U+05BF Extend
22
+ 1473, 1474, 4, // U+05C1..U+05C2 Extend
23
+ 1476, 1477, 4, // U+05C4..U+05C5 Extend
24
+ 1479, 1479, 4, // U+05C7..U+05C7 Extend
25
+ 1536, 1541, 7, // U+0600..U+0605 Prepend
26
+ 1552, 1562, 4, // U+0610..U+061A Extend
27
+ 1564, 1564, 3, // U+061C..U+061C Control
28
+ 1611, 1631, 4, // U+064B..U+065F Extend
29
+ 1648, 1648, 4, // U+0670..U+0670 Extend
30
+ 1750, 1756, 4, // U+06D6..U+06DC Extend
31
+ 1757, 1757, 7, // U+06DD..U+06DD Prepend
32
+ 1759, 1764, 4, // U+06DF..U+06E4 Extend
33
+ 1767, 1768, 4, // U+06E7..U+06E8 Extend
34
+ 1770, 1773, 4, // U+06EA..U+06ED Extend
35
+ 1807, 1807, 7, // U+070F..U+070F Prepend
36
+ 1809, 1809, 4, // U+0711..U+0711 Extend
37
+ 1840, 1866, 4, // U+0730..U+074A Extend
38
+ 1958, 1968, 4, // U+07A6..U+07B0 Extend
39
+ 2027, 2035, 4, // U+07EB..U+07F3 Extend
40
+ 2045, 2045, 4, // U+07FD..U+07FD Extend
41
+ 2070, 2073, 4, // U+0816..U+0819 Extend
42
+ 2075, 2083, 4, // U+081B..U+0823 Extend
43
+ 2085, 2087, 4, // U+0825..U+0827 Extend
44
+ 2089, 2093, 4, // U+0829..U+082D Extend
45
+ 2137, 2139, 4, // U+0859..U+085B Extend
46
+ 2192, 2193, 7, // U+0890..U+0891 Prepend
47
+ 2199, 2207, 4, // U+0897..U+089F Extend
48
+ 2250, 2273, 4, // U+08CA..U+08E1 Extend
49
+ 2274, 2274, 7, // U+08E2..U+08E2 Prepend
50
+ 2275, 2306, 4, // U+08E3..U+0902 Extend
51
+ 2307, 2307, 8, // U+0903..U+0903 SpacingMark
52
+ 2362, 2362, 4, // U+093A..U+093A Extend
53
+ 2363, 2363, 8, // U+093B..U+093B SpacingMark
54
+ 2364, 2364, 4, // U+093C..U+093C Extend
55
+ 2366, 2368, 8, // U+093E..U+0940 SpacingMark
56
+ 2369, 2376, 4, // U+0941..U+0948 Extend
57
+ 2377, 2380, 8, // U+0949..U+094C SpacingMark
58
+ 2381, 2381, 4, // U+094D..U+094D Extend
59
+ 2382, 2383, 8, // U+094E..U+094F SpacingMark
60
+ 2385, 2391, 4, // U+0951..U+0957 Extend
61
+ 2402, 2403, 4, // U+0962..U+0963 Extend
62
+ 2433, 2433, 4, // U+0981..U+0981 Extend
63
+ 2434, 2435, 8, // U+0982..U+0983 SpacingMark
64
+ 2492, 2492, 4, // U+09BC..U+09BC Extend
65
+ 2494, 2494, 4, // U+09BE..U+09BE Extend
66
+ 2495, 2496, 8, // U+09BF..U+09C0 SpacingMark
67
+ 2497, 2500, 4, // U+09C1..U+09C4 Extend
68
+ 2503, 2504, 8, // U+09C7..U+09C8 SpacingMark
69
+ 2507, 2508, 8, // U+09CB..U+09CC SpacingMark
70
+ 2509, 2509, 4, // U+09CD..U+09CD Extend
71
+ 2519, 2519, 4, // U+09D7..U+09D7 Extend
72
+ 2530, 2531, 4, // U+09E2..U+09E3 Extend
73
+ 2558, 2558, 4, // U+09FE..U+09FE Extend
74
+ 2561, 2562, 4, // U+0A01..U+0A02 Extend
75
+ 2563, 2563, 8, // U+0A03..U+0A03 SpacingMark
76
+ 2620, 2620, 4, // U+0A3C..U+0A3C Extend
77
+ 2622, 2624, 8, // U+0A3E..U+0A40 SpacingMark
78
+ 2625, 2626, 4, // U+0A41..U+0A42 Extend
79
+ 2631, 2632, 4, // U+0A47..U+0A48 Extend
80
+ 2635, 2637, 4, // U+0A4B..U+0A4D Extend
81
+ 2641, 2641, 4, // U+0A51..U+0A51 Extend
82
+ 2672, 2673, 4, // U+0A70..U+0A71 Extend
83
+ 2677, 2677, 4, // U+0A75..U+0A75 Extend
84
+ 2689, 2690, 4, // U+0A81..U+0A82 Extend
85
+ 2691, 2691, 8, // U+0A83..U+0A83 SpacingMark
86
+ 2748, 2748, 4, // U+0ABC..U+0ABC Extend
87
+ 2750, 2752, 8, // U+0ABE..U+0AC0 SpacingMark
88
+ 2753, 2757, 4, // U+0AC1..U+0AC5 Extend
89
+ 2759, 2760, 4, // U+0AC7..U+0AC8 Extend
90
+ 2761, 2761, 8, // U+0AC9..U+0AC9 SpacingMark
91
+ 2763, 2764, 8, // U+0ACB..U+0ACC SpacingMark
92
+ 2765, 2765, 4, // U+0ACD..U+0ACD Extend
93
+ 2786, 2787, 4, // U+0AE2..U+0AE3 Extend
94
+ 2810, 2815, 4, // U+0AFA..U+0AFF Extend
95
+ 2817, 2817, 4, // U+0B01..U+0B01 Extend
96
+ 2818, 2819, 8, // U+0B02..U+0B03 SpacingMark
97
+ 2876, 2876, 4, // U+0B3C..U+0B3C Extend
98
+ 2878, 2879, 4, // U+0B3E..U+0B3F Extend
99
+ 2880, 2880, 8, // U+0B40..U+0B40 SpacingMark
100
+ 2881, 2884, 4, // U+0B41..U+0B44 Extend
101
+ 2887, 2888, 8, // U+0B47..U+0B48 SpacingMark
102
+ 2891, 2892, 8, // U+0B4B..U+0B4C SpacingMark
103
+ 2893, 2893, 4, // U+0B4D..U+0B4D Extend
104
+ 2901, 2903, 4, // U+0B55..U+0B57 Extend
105
+ 2914, 2915, 4, // U+0B62..U+0B63 Extend
106
+ 2946, 2946, 4, // U+0B82..U+0B82 Extend
107
+ 3006, 3006, 4, // U+0BBE..U+0BBE Extend
108
+ 3007, 3007, 8, // U+0BBF..U+0BBF SpacingMark
109
+ 3008, 3008, 4, // U+0BC0..U+0BC0 Extend
110
+ 3009, 3010, 8, // U+0BC1..U+0BC2 SpacingMark
111
+ 3014, 3016, 8, // U+0BC6..U+0BC8 SpacingMark
112
+ 3018, 3020, 8, // U+0BCA..U+0BCC SpacingMark
113
+ 3021, 3021, 4, // U+0BCD..U+0BCD Extend
114
+ 3031, 3031, 4, // U+0BD7..U+0BD7 Extend
115
+ 3072, 3072, 4, // U+0C00..U+0C00 Extend
116
+ 3073, 3075, 8, // U+0C01..U+0C03 SpacingMark
117
+ 3076, 3076, 4, // U+0C04..U+0C04 Extend
118
+ 3132, 3132, 4, // U+0C3C..U+0C3C Extend
119
+ 3134, 3136, 4, // U+0C3E..U+0C40 Extend
120
+ 3137, 3140, 8, // U+0C41..U+0C44 SpacingMark
121
+ 3142, 3144, 4, // U+0C46..U+0C48 Extend
122
+ 3146, 3149, 4, // U+0C4A..U+0C4D Extend
123
+ 3157, 3158, 4, // U+0C55..U+0C56 Extend
124
+ 3170, 3171, 4, // U+0C62..U+0C63 Extend
125
+ 3201, 3201, 4, // U+0C81..U+0C81 Extend
126
+ 3202, 3203, 8, // U+0C82..U+0C83 SpacingMark
127
+ 3260, 3260, 4, // U+0CBC..U+0CBC Extend
128
+ 3262, 3262, 8, // U+0CBE..U+0CBE SpacingMark
129
+ 3263, 3264, 4, // U+0CBF..U+0CC0 Extend
130
+ 3265, 3265, 8, // U+0CC1..U+0CC1 SpacingMark
131
+ 3266, 3266, 4, // U+0CC2..U+0CC2 Extend
132
+ 3267, 3268, 8, // U+0CC3..U+0CC4 SpacingMark
133
+ 3270, 3272, 4, // U+0CC6..U+0CC8 Extend
134
+ 3274, 3277, 4, // U+0CCA..U+0CCD Extend
135
+ 3285, 3286, 4, // U+0CD5..U+0CD6 Extend
136
+ 3298, 3299, 4, // U+0CE2..U+0CE3 Extend
137
+ 3315, 3315, 8, // U+0CF3..U+0CF3 SpacingMark
138
+ 3328, 3329, 4, // U+0D00..U+0D01 Extend
139
+ 3330, 3331, 8, // U+0D02..U+0D03 SpacingMark
140
+ 3387, 3388, 4, // U+0D3B..U+0D3C Extend
141
+ 3390, 3390, 4, // U+0D3E..U+0D3E Extend
142
+ 3391, 3392, 8, // U+0D3F..U+0D40 SpacingMark
143
+ 3393, 3396, 4, // U+0D41..U+0D44 Extend
144
+ 3398, 3400, 8, // U+0D46..U+0D48 SpacingMark
145
+ 3402, 3404, 8, // U+0D4A..U+0D4C SpacingMark
146
+ 3405, 3405, 4, // U+0D4D..U+0D4D Extend
147
+ 3406, 3406, 7, // U+0D4E..U+0D4E Prepend
148
+ 3415, 3415, 4, // U+0D57..U+0D57 Extend
149
+ 3426, 3427, 4, // U+0D62..U+0D63 Extend
150
+ 3457, 3457, 4, // U+0D81..U+0D81 Extend
151
+ 3458, 3459, 8, // U+0D82..U+0D83 SpacingMark
152
+ 3530, 3530, 4, // U+0DCA..U+0DCA Extend
153
+ 3535, 3535, 4, // U+0DCF..U+0DCF Extend
154
+ 3536, 3537, 8, // U+0DD0..U+0DD1 SpacingMark
155
+ 3538, 3540, 4, // U+0DD2..U+0DD4 Extend
156
+ 3542, 3542, 4, // U+0DD6..U+0DD6 Extend
157
+ 3544, 3550, 8, // U+0DD8..U+0DDE SpacingMark
158
+ 3551, 3551, 4, // U+0DDF..U+0DDF Extend
159
+ 3570, 3571, 8, // U+0DF2..U+0DF3 SpacingMark
160
+ 3633, 3633, 4, // U+0E31..U+0E31 Extend
161
+ 3635, 3635, 8, // U+0E33..U+0E33 SpacingMark
162
+ 3636, 3642, 4, // U+0E34..U+0E3A Extend
163
+ 3655, 3662, 4, // U+0E47..U+0E4E Extend
164
+ 3761, 3761, 4, // U+0EB1..U+0EB1 Extend
165
+ 3763, 3763, 8, // U+0EB3..U+0EB3 SpacingMark
166
+ 3764, 3772, 4, // U+0EB4..U+0EBC Extend
167
+ 3784, 3790, 4, // U+0EC8..U+0ECE Extend
168
+ 3864, 3865, 4, // U+0F18..U+0F19 Extend
169
+ 3893, 3893, 4, // U+0F35..U+0F35 Extend
170
+ 3895, 3895, 4, // U+0F37..U+0F37 Extend
171
+ 3897, 3897, 4, // U+0F39..U+0F39 Extend
172
+ 3902, 3903, 8, // U+0F3E..U+0F3F SpacingMark
173
+ 3953, 3966, 4, // U+0F71..U+0F7E Extend
174
+ 3967, 3967, 8, // U+0F7F..U+0F7F SpacingMark
175
+ 3968, 3972, 4, // U+0F80..U+0F84 Extend
176
+ 3974, 3975, 4, // U+0F86..U+0F87 Extend
177
+ 3981, 3991, 4, // U+0F8D..U+0F97 Extend
178
+ 3993, 4028, 4, // U+0F99..U+0FBC Extend
179
+ 4038, 4038, 4, // U+0FC6..U+0FC6 Extend
180
+ 4141, 4144, 4, // U+102D..U+1030 Extend
181
+ 4145, 4145, 8, // U+1031..U+1031 SpacingMark
182
+ 4146, 4151, 4, // U+1032..U+1037 Extend
183
+ 4153, 4154, 4, // U+1039..U+103A Extend
184
+ 4155, 4156, 8, // U+103B..U+103C SpacingMark
185
+ 4157, 4158, 4, // U+103D..U+103E Extend
186
+ 4182, 4183, 8, // U+1056..U+1057 SpacingMark
187
+ 4184, 4185, 4, // U+1058..U+1059 Extend
188
+ 4190, 4192, 4, // U+105E..U+1060 Extend
189
+ 4209, 4212, 4, // U+1071..U+1074 Extend
190
+ 4226, 4226, 4, // U+1082..U+1082 Extend
191
+ 4228, 4228, 8, // U+1084..U+1084 SpacingMark
192
+ 4229, 4230, 4, // U+1085..U+1086 Extend
193
+ 4237, 4237, 4, // U+108D..U+108D Extend
194
+ 4253, 4253, 4, // U+109D..U+109D Extend
195
+ 4352, 4447, 9, // U+1100..U+115F L
196
+ 4448, 4519, 10, // U+1160..U+11A7 V
197
+ 4520, 4607, 11, // U+11A8..U+11FF T
198
+ 4957, 4959, 4, // U+135D..U+135F Extend
199
+ 5906, 5909, 4, // U+1712..U+1715 Extend
200
+ 5938, 5940, 4, // U+1732..U+1734 Extend
201
+ 5970, 5971, 4, // U+1752..U+1753 Extend
202
+ 6002, 6003, 4, // U+1772..U+1773 Extend
203
+ 6068, 6069, 4, // U+17B4..U+17B5 Extend
204
+ 6070, 6070, 8, // U+17B6..U+17B6 SpacingMark
205
+ 6071, 6077, 4, // U+17B7..U+17BD Extend
206
+ 6078, 6085, 8, // U+17BE..U+17C5 SpacingMark
207
+ 6086, 6086, 4, // U+17C6..U+17C6 Extend
208
+ 6087, 6088, 8, // U+17C7..U+17C8 SpacingMark
209
+ 6089, 6099, 4, // U+17C9..U+17D3 Extend
210
+ 6109, 6109, 4, // U+17DD..U+17DD Extend
211
+ 6155, 6157, 4, // U+180B..U+180D Extend
212
+ 6158, 6158, 3, // U+180E..U+180E Control
213
+ 6159, 6159, 4, // U+180F..U+180F Extend
214
+ 6277, 6278, 4, // U+1885..U+1886 Extend
215
+ 6313, 6313, 4, // U+18A9..U+18A9 Extend
216
+ 6432, 6434, 4, // U+1920..U+1922 Extend
217
+ 6435, 6438, 8, // U+1923..U+1926 SpacingMark
218
+ 6439, 6440, 4, // U+1927..U+1928 Extend
219
+ 6441, 6443, 8, // U+1929..U+192B SpacingMark
220
+ 6448, 6449, 8, // U+1930..U+1931 SpacingMark
221
+ 6450, 6450, 4, // U+1932..U+1932 Extend
222
+ 6451, 6456, 8, // U+1933..U+1938 SpacingMark
223
+ 6457, 6459, 4, // U+1939..U+193B Extend
224
+ 6679, 6680, 4, // U+1A17..U+1A18 Extend
225
+ 6681, 6682, 8, // U+1A19..U+1A1A SpacingMark
226
+ 6683, 6683, 4, // U+1A1B..U+1A1B Extend
227
+ 6741, 6741, 8, // U+1A55..U+1A55 SpacingMark
228
+ 6742, 6742, 4, // U+1A56..U+1A56 Extend
229
+ 6743, 6743, 8, // U+1A57..U+1A57 SpacingMark
230
+ 6744, 6750, 4, // U+1A58..U+1A5E Extend
231
+ 6752, 6752, 4, // U+1A60..U+1A60 Extend
232
+ 6754, 6754, 4, // U+1A62..U+1A62 Extend
233
+ 6757, 6764, 4, // U+1A65..U+1A6C Extend
234
+ 6765, 6770, 8, // U+1A6D..U+1A72 SpacingMark
235
+ 6771, 6780, 4, // U+1A73..U+1A7C Extend
236
+ 6783, 6783, 4, // U+1A7F..U+1A7F Extend
237
+ 6832, 6862, 4, // U+1AB0..U+1ACE Extend
238
+ 6912, 6915, 4, // U+1B00..U+1B03 Extend
239
+ 6916, 6916, 8, // U+1B04..U+1B04 SpacingMark
240
+ 6964, 6973, 4, // U+1B34..U+1B3D Extend
241
+ 6974, 6977, 8, // U+1B3E..U+1B41 SpacingMark
242
+ 6978, 6980, 4, // U+1B42..U+1B44 Extend
243
+ 7019, 7027, 4, // U+1B6B..U+1B73 Extend
244
+ 7040, 7041, 4, // U+1B80..U+1B81 Extend
245
+ 7042, 7042, 8, // U+1B82..U+1B82 SpacingMark
246
+ 7073, 7073, 8, // U+1BA1..U+1BA1 SpacingMark
247
+ 7074, 7077, 4, // U+1BA2..U+1BA5 Extend
248
+ 7078, 7079, 8, // U+1BA6..U+1BA7 SpacingMark
249
+ 7080, 7085, 4, // U+1BA8..U+1BAD Extend
250
+ 7142, 7142, 4, // U+1BE6..U+1BE6 Extend
251
+ 7143, 7143, 8, // U+1BE7..U+1BE7 SpacingMark
252
+ 7144, 7145, 4, // U+1BE8..U+1BE9 Extend
253
+ 7146, 7148, 8, // U+1BEA..U+1BEC SpacingMark
254
+ 7149, 7149, 4, // U+1BED..U+1BED Extend
255
+ 7150, 7150, 8, // U+1BEE..U+1BEE SpacingMark
256
+ 7151, 7155, 4, // U+1BEF..U+1BF3 Extend
257
+ 7204, 7211, 8, // U+1C24..U+1C2B SpacingMark
258
+ 7212, 7219, 4, // U+1C2C..U+1C33 Extend
259
+ 7220, 7221, 8, // U+1C34..U+1C35 SpacingMark
260
+ 7222, 7223, 4, // U+1C36..U+1C37 Extend
261
+ 7376, 7378, 4, // U+1CD0..U+1CD2 Extend
262
+ 7380, 7392, 4, // U+1CD4..U+1CE0 Extend
263
+ 7393, 7393, 8, // U+1CE1..U+1CE1 SpacingMark
264
+ 7394, 7400, 4, // U+1CE2..U+1CE8 Extend
265
+ 7405, 7405, 4, // U+1CED..U+1CED Extend
266
+ 7412, 7412, 4, // U+1CF4..U+1CF4 Extend
267
+ 7415, 7415, 8, // U+1CF7..U+1CF7 SpacingMark
268
+ 7416, 7417, 4, // U+1CF8..U+1CF9 Extend
269
+ 7616, 7679, 4, // U+1DC0..U+1DFF Extend
270
+ 8203, 8203, 3, // U+200B..U+200B Control
271
+ 8204, 8204, 4, // U+200C..U+200C Extend
272
+ 8205, 8205, 5, // U+200D..U+200D ZWJ
273
+ 8206, 8207, 3, // U+200E..U+200F Control
274
+ 8232, 8238, 3, // U+2028..U+202E Control
275
+ 8288, 8303, 3, // U+2060..U+206F Control
276
+ 8400, 8432, 4, // U+20D0..U+20F0 Extend
277
+ 11503, 11505, 4, // U+2CEF..U+2CF1 Extend
278
+ 11647, 11647, 4, // U+2D7F..U+2D7F Extend
279
+ 11744, 11775, 4, // U+2DE0..U+2DFF Extend
280
+ 12330, 12335, 4, // U+302A..U+302F Extend
281
+ 12441, 12442, 4, // U+3099..U+309A Extend
282
+ 42607, 42610, 4, // U+A66F..U+A672 Extend
283
+ 42612, 42621, 4, // U+A674..U+A67D Extend
284
+ 42654, 42655, 4, // U+A69E..U+A69F Extend
285
+ 42736, 42737, 4, // U+A6F0..U+A6F1 Extend
286
+ 43010, 43010, 4, // U+A802..U+A802 Extend
287
+ 43014, 43014, 4, // U+A806..U+A806 Extend
288
+ 43019, 43019, 4, // U+A80B..U+A80B Extend
289
+ 43043, 43044, 8, // U+A823..U+A824 SpacingMark
290
+ 43045, 43046, 4, // U+A825..U+A826 Extend
291
+ 43047, 43047, 8, // U+A827..U+A827 SpacingMark
292
+ 43052, 43052, 4, // U+A82C..U+A82C Extend
293
+ 43136, 43137, 8, // U+A880..U+A881 SpacingMark
294
+ 43188, 43203, 8, // U+A8B4..U+A8C3 SpacingMark
295
+ 43204, 43205, 4, // U+A8C4..U+A8C5 Extend
296
+ 43232, 43249, 4, // U+A8E0..U+A8F1 Extend
297
+ 43263, 43263, 4, // U+A8FF..U+A8FF Extend
298
+ 43302, 43309, 4, // U+A926..U+A92D Extend
299
+ 43335, 43345, 4, // U+A947..U+A951 Extend
300
+ 43346, 43346, 8, // U+A952..U+A952 SpacingMark
301
+ 43347, 43347, 4, // U+A953..U+A953 Extend
302
+ 43360, 43388, 9, // U+A960..U+A97C L
303
+ 43392, 43394, 4, // U+A980..U+A982 Extend
304
+ 43395, 43395, 8, // U+A983..U+A983 SpacingMark
305
+ 43443, 43443, 4, // U+A9B3..U+A9B3 Extend
306
+ 43444, 43445, 8, // U+A9B4..U+A9B5 SpacingMark
307
+ 43446, 43449, 4, // U+A9B6..U+A9B9 Extend
308
+ 43450, 43451, 8, // U+A9BA..U+A9BB SpacingMark
309
+ 43452, 43453, 4, // U+A9BC..U+A9BD Extend
310
+ 43454, 43455, 8, // U+A9BE..U+A9BF SpacingMark
311
+ 43456, 43456, 4, // U+A9C0..U+A9C0 Extend
312
+ 43493, 43493, 4, // U+A9E5..U+A9E5 Extend
313
+ 43561, 43566, 4, // U+AA29..U+AA2E Extend
314
+ 43567, 43568, 8, // U+AA2F..U+AA30 SpacingMark
315
+ 43569, 43570, 4, // U+AA31..U+AA32 Extend
316
+ 43571, 43572, 8, // U+AA33..U+AA34 SpacingMark
317
+ 43573, 43574, 4, // U+AA35..U+AA36 Extend
318
+ 43587, 43587, 4, // U+AA43..U+AA43 Extend
319
+ 43596, 43596, 4, // U+AA4C..U+AA4C Extend
320
+ 43597, 43597, 8, // U+AA4D..U+AA4D SpacingMark
321
+ 43644, 43644, 4, // U+AA7C..U+AA7C Extend
322
+ 43696, 43696, 4, // U+AAB0..U+AAB0 Extend
323
+ 43698, 43700, 4, // U+AAB2..U+AAB4 Extend
324
+ 43703, 43704, 4, // U+AAB7..U+AAB8 Extend
325
+ 43710, 43711, 4, // U+AABE..U+AABF Extend
326
+ 43713, 43713, 4, // U+AAC1..U+AAC1 Extend
327
+ 43755, 43755, 8, // U+AAEB..U+AAEB SpacingMark
328
+ 43756, 43757, 4, // U+AAEC..U+AAED Extend
329
+ 43758, 43759, 8, // U+AAEE..U+AAEF SpacingMark
330
+ 43765, 43765, 8, // U+AAF5..U+AAF5 SpacingMark
331
+ 43766, 43766, 4, // U+AAF6..U+AAF6 Extend
332
+ 44003, 44004, 8, // U+ABE3..U+ABE4 SpacingMark
333
+ 44005, 44005, 4, // U+ABE5..U+ABE5 Extend
334
+ 44006, 44007, 8, // U+ABE6..U+ABE7 SpacingMark
335
+ 44008, 44008, 4, // U+ABE8..U+ABE8 Extend
336
+ 44009, 44010, 8, // U+ABE9..U+ABEA SpacingMark
337
+ 44012, 44012, 8, // U+ABEC..U+ABEC SpacingMark
338
+ 44013, 44013, 4, // U+ABED..U+ABED Extend
339
+ 44032, 44032, 12, // U+AC00..U+AC00 LV
340
+ 44033, 44059, 13, // U+AC01..U+AC1B LVT
341
+ 44060, 44060, 12, // U+AC1C..U+AC1C LV
342
+ 44061, 44087, 13, // U+AC1D..U+AC37 LVT
343
+ 44088, 44088, 12, // U+AC38..U+AC38 LV
344
+ 44089, 44115, 13, // U+AC39..U+AC53 LVT
345
+ 44116, 44116, 12, // U+AC54..U+AC54 LV
346
+ 44117, 44143, 13, // U+AC55..U+AC6F LVT
347
+ 44144, 44144, 12, // U+AC70..U+AC70 LV
348
+ 44145, 44171, 13, // U+AC71..U+AC8B LVT
349
+ 44172, 44172, 12, // U+AC8C..U+AC8C LV
350
+ 44173, 44199, 13, // U+AC8D..U+ACA7 LVT
351
+ 44200, 44200, 12, // U+ACA8..U+ACA8 LV
352
+ 44201, 44227, 13, // U+ACA9..U+ACC3 LVT
353
+ 44228, 44228, 12, // U+ACC4..U+ACC4 LV
354
+ 44229, 44255, 13, // U+ACC5..U+ACDF LVT
355
+ 44256, 44256, 12, // U+ACE0..U+ACE0 LV
356
+ 44257, 44283, 13, // U+ACE1..U+ACFB LVT
357
+ 44284, 44284, 12, // U+ACFC..U+ACFC LV
358
+ 44285, 44311, 13, // U+ACFD..U+AD17 LVT
359
+ 44312, 44312, 12, // U+AD18..U+AD18 LV
360
+ 44313, 44339, 13, // U+AD19..U+AD33 LVT
361
+ 44340, 44340, 12, // U+AD34..U+AD34 LV
362
+ 44341, 44367, 13, // U+AD35..U+AD4F LVT
363
+ 44368, 44368, 12, // U+AD50..U+AD50 LV
364
+ 44369, 44395, 13, // U+AD51..U+AD6B LVT
365
+ 44396, 44396, 12, // U+AD6C..U+AD6C LV
366
+ 44397, 44423, 13, // U+AD6D..U+AD87 LVT
367
+ 44424, 44424, 12, // U+AD88..U+AD88 LV
368
+ 44425, 44451, 13, // U+AD89..U+ADA3 LVT
369
+ 44452, 44452, 12, // U+ADA4..U+ADA4 LV
370
+ 44453, 44479, 13, // U+ADA5..U+ADBF LVT
371
+ 44480, 44480, 12, // U+ADC0..U+ADC0 LV
372
+ 44481, 44507, 13, // U+ADC1..U+ADDB LVT
373
+ 44508, 44508, 12, // U+ADDC..U+ADDC LV
374
+ 44509, 44535, 13, // U+ADDD..U+ADF7 LVT
375
+ 44536, 44536, 12, // U+ADF8..U+ADF8 LV
376
+ 44537, 44563, 13, // U+ADF9..U+AE13 LVT
377
+ 44564, 44564, 12, // U+AE14..U+AE14 LV
378
+ 44565, 44591, 13, // U+AE15..U+AE2F LVT
379
+ 44592, 44592, 12, // U+AE30..U+AE30 LV
380
+ 44593, 44619, 13, // U+AE31..U+AE4B LVT
381
+ 44620, 44620, 12, // U+AE4C..U+AE4C LV
382
+ 44621, 44647, 13, // U+AE4D..U+AE67 LVT
383
+ 44648, 44648, 12, // U+AE68..U+AE68 LV
384
+ 44649, 44675, 13, // U+AE69..U+AE83 LVT
385
+ 44676, 44676, 12, // U+AE84..U+AE84 LV
386
+ 44677, 44703, 13, // U+AE85..U+AE9F LVT
387
+ 44704, 44704, 12, // U+AEA0..U+AEA0 LV
388
+ 44705, 44731, 13, // U+AEA1..U+AEBB LVT
389
+ 44732, 44732, 12, // U+AEBC..U+AEBC LV
390
+ 44733, 44759, 13, // U+AEBD..U+AED7 LVT
391
+ 44760, 44760, 12, // U+AED8..U+AED8 LV
392
+ 44761, 44787, 13, // U+AED9..U+AEF3 LVT
393
+ 44788, 44788, 12, // U+AEF4..U+AEF4 LV
394
+ 44789, 44815, 13, // U+AEF5..U+AF0F LVT
395
+ 44816, 44816, 12, // U+AF10..U+AF10 LV
396
+ 44817, 44843, 13, // U+AF11..U+AF2B LVT
397
+ 44844, 44844, 12, // U+AF2C..U+AF2C LV
398
+ 44845, 44871, 13, // U+AF2D..U+AF47 LVT
399
+ 44872, 44872, 12, // U+AF48..U+AF48 LV
400
+ 44873, 44899, 13, // U+AF49..U+AF63 LVT
401
+ 44900, 44900, 12, // U+AF64..U+AF64 LV
402
+ 44901, 44927, 13, // U+AF65..U+AF7F LVT
403
+ 44928, 44928, 12, // U+AF80..U+AF80 LV
404
+ 44929, 44955, 13, // U+AF81..U+AF9B LVT
405
+ 44956, 44956, 12, // U+AF9C..U+AF9C LV
406
+ 44957, 44983, 13, // U+AF9D..U+AFB7 LVT
407
+ 44984, 44984, 12, // U+AFB8..U+AFB8 LV
408
+ 44985, 45011, 13, // U+AFB9..U+AFD3 LVT
409
+ 45012, 45012, 12, // U+AFD4..U+AFD4 LV
410
+ 45013, 45039, 13, // U+AFD5..U+AFEF LVT
411
+ 45040, 45040, 12, // U+AFF0..U+AFF0 LV
412
+ 45041, 45067, 13, // U+AFF1..U+B00B LVT
413
+ 45068, 45068, 12, // U+B00C..U+B00C LV
414
+ 45069, 45095, 13, // U+B00D..U+B027 LVT
415
+ 45096, 45096, 12, // U+B028..U+B028 LV
416
+ 45097, 45123, 13, // U+B029..U+B043 LVT
417
+ 45124, 45124, 12, // U+B044..U+B044 LV
418
+ 45125, 45151, 13, // U+B045..U+B05F LVT
419
+ 45152, 45152, 12, // U+B060..U+B060 LV
420
+ 45153, 45179, 13, // U+B061..U+B07B LVT
421
+ 45180, 45180, 12, // U+B07C..U+B07C LV
422
+ 45181, 45207, 13, // U+B07D..U+B097 LVT
423
+ 45208, 45208, 12, // U+B098..U+B098 LV
424
+ 45209, 45235, 13, // U+B099..U+B0B3 LVT
425
+ 45236, 45236, 12, // U+B0B4..U+B0B4 LV
426
+ 45237, 45263, 13, // U+B0B5..U+B0CF LVT
427
+ 45264, 45264, 12, // U+B0D0..U+B0D0 LV
428
+ 45265, 45291, 13, // U+B0D1..U+B0EB LVT
429
+ 45292, 45292, 12, // U+B0EC..U+B0EC LV
430
+ 45293, 45319, 13, // U+B0ED..U+B107 LVT
431
+ 45320, 45320, 12, // U+B108..U+B108 LV
432
+ 45321, 45347, 13, // U+B109..U+B123 LVT
433
+ 45348, 45348, 12, // U+B124..U+B124 LV
434
+ 45349, 45375, 13, // U+B125..U+B13F LVT
435
+ 45376, 45376, 12, // U+B140..U+B140 LV
436
+ 45377, 45403, 13, // U+B141..U+B15B LVT
437
+ 45404, 45404, 12, // U+B15C..U+B15C LV
438
+ 45405, 45431, 13, // U+B15D..U+B177 LVT
439
+ 45432, 45432, 12, // U+B178..U+B178 LV
440
+ 45433, 45459, 13, // U+B179..U+B193 LVT
441
+ 45460, 45460, 12, // U+B194..U+B194 LV
442
+ 45461, 45487, 13, // U+B195..U+B1AF LVT
443
+ 45488, 45488, 12, // U+B1B0..U+B1B0 LV
444
+ 45489, 45515, 13, // U+B1B1..U+B1CB LVT
445
+ 45516, 45516, 12, // U+B1CC..U+B1CC LV
446
+ 45517, 45543, 13, // U+B1CD..U+B1E7 LVT
447
+ 45544, 45544, 12, // U+B1E8..U+B1E8 LV
448
+ 45545, 45571, 13, // U+B1E9..U+B203 LVT
449
+ 45572, 45572, 12, // U+B204..U+B204 LV
450
+ 45573, 45599, 13, // U+B205..U+B21F LVT
451
+ 45600, 45600, 12, // U+B220..U+B220 LV
452
+ 45601, 45627, 13, // U+B221..U+B23B LVT
453
+ 45628, 45628, 12, // U+B23C..U+B23C LV
454
+ 45629, 45655, 13, // U+B23D..U+B257 LVT
455
+ 45656, 45656, 12, // U+B258..U+B258 LV
456
+ 45657, 45683, 13, // U+B259..U+B273 LVT
457
+ 45684, 45684, 12, // U+B274..U+B274 LV
458
+ 45685, 45711, 13, // U+B275..U+B28F LVT
459
+ 45712, 45712, 12, // U+B290..U+B290 LV
460
+ 45713, 45739, 13, // U+B291..U+B2AB LVT
461
+ 45740, 45740, 12, // U+B2AC..U+B2AC LV
462
+ 45741, 45767, 13, // U+B2AD..U+B2C7 LVT
463
+ 45768, 45768, 12, // U+B2C8..U+B2C8 LV
464
+ 45769, 45795, 13, // U+B2C9..U+B2E3 LVT
465
+ 45796, 45796, 12, // U+B2E4..U+B2E4 LV
466
+ 45797, 45823, 13, // U+B2E5..U+B2FF LVT
467
+ 45824, 45824, 12, // U+B300..U+B300 LV
468
+ 45825, 45851, 13, // U+B301..U+B31B LVT
469
+ 45852, 45852, 12, // U+B31C..U+B31C LV
470
+ 45853, 45879, 13, // U+B31D..U+B337 LVT
471
+ 45880, 45880, 12, // U+B338..U+B338 LV
472
+ 45881, 45907, 13, // U+B339..U+B353 LVT
473
+ 45908, 45908, 12, // U+B354..U+B354 LV
474
+ 45909, 45935, 13, // U+B355..U+B36F LVT
475
+ 45936, 45936, 12, // U+B370..U+B370 LV
476
+ 45937, 45963, 13, // U+B371..U+B38B LVT
477
+ 45964, 45964, 12, // U+B38C..U+B38C LV
478
+ 45965, 45991, 13, // U+B38D..U+B3A7 LVT
479
+ 45992, 45992, 12, // U+B3A8..U+B3A8 LV
480
+ 45993, 46019, 13, // U+B3A9..U+B3C3 LVT
481
+ 46020, 46020, 12, // U+B3C4..U+B3C4 LV
482
+ 46021, 46047, 13, // U+B3C5..U+B3DF LVT
483
+ 46048, 46048, 12, // U+B3E0..U+B3E0 LV
484
+ 46049, 46075, 13, // U+B3E1..U+B3FB LVT
485
+ 46076, 46076, 12, // U+B3FC..U+B3FC LV
486
+ 46077, 46103, 13, // U+B3FD..U+B417 LVT
487
+ 46104, 46104, 12, // U+B418..U+B418 LV
488
+ 46105, 46131, 13, // U+B419..U+B433 LVT
489
+ 46132, 46132, 12, // U+B434..U+B434 LV
490
+ 46133, 46159, 13, // U+B435..U+B44F LVT
491
+ 46160, 46160, 12, // U+B450..U+B450 LV
492
+ 46161, 46187, 13, // U+B451..U+B46B LVT
493
+ 46188, 46188, 12, // U+B46C..U+B46C LV
494
+ 46189, 46215, 13, // U+B46D..U+B487 LVT
495
+ 46216, 46216, 12, // U+B488..U+B488 LV
496
+ 46217, 46243, 13, // U+B489..U+B4A3 LVT
497
+ 46244, 46244, 12, // U+B4A4..U+B4A4 LV
498
+ 46245, 46271, 13, // U+B4A5..U+B4BF LVT
499
+ 46272, 46272, 12, // U+B4C0..U+B4C0 LV
500
+ 46273, 46299, 13, // U+B4C1..U+B4DB LVT
501
+ 46300, 46300, 12, // U+B4DC..U+B4DC LV
502
+ 46301, 46327, 13, // U+B4DD..U+B4F7 LVT
503
+ 46328, 46328, 12, // U+B4F8..U+B4F8 LV
504
+ 46329, 46355, 13, // U+B4F9..U+B513 LVT
505
+ 46356, 46356, 12, // U+B514..U+B514 LV
506
+ 46357, 46383, 13, // U+B515..U+B52F LVT
507
+ 46384, 46384, 12, // U+B530..U+B530 LV
508
+ 46385, 46411, 13, // U+B531..U+B54B LVT
509
+ 46412, 46412, 12, // U+B54C..U+B54C LV
510
+ 46413, 46439, 13, // U+B54D..U+B567 LVT
511
+ 46440, 46440, 12, // U+B568..U+B568 LV
512
+ 46441, 46467, 13, // U+B569..U+B583 LVT
513
+ 46468, 46468, 12, // U+B584..U+B584 LV
514
+ 46469, 46495, 13, // U+B585..U+B59F LVT
515
+ 46496, 46496, 12, // U+B5A0..U+B5A0 LV
516
+ 46497, 46523, 13, // U+B5A1..U+B5BB LVT
517
+ 46524, 46524, 12, // U+B5BC..U+B5BC LV
518
+ 46525, 46551, 13, // U+B5BD..U+B5D7 LVT
519
+ 46552, 46552, 12, // U+B5D8..U+B5D8 LV
520
+ 46553, 46579, 13, // U+B5D9..U+B5F3 LVT
521
+ 46580, 46580, 12, // U+B5F4..U+B5F4 LV
522
+ 46581, 46607, 13, // U+B5F5..U+B60F LVT
523
+ 46608, 46608, 12, // U+B610..U+B610 LV
524
+ 46609, 46635, 13, // U+B611..U+B62B LVT
525
+ 46636, 46636, 12, // U+B62C..U+B62C LV
526
+ 46637, 46663, 13, // U+B62D..U+B647 LVT
527
+ 46664, 46664, 12, // U+B648..U+B648 LV
528
+ 46665, 46691, 13, // U+B649..U+B663 LVT
529
+ 46692, 46692, 12, // U+B664..U+B664 LV
530
+ 46693, 46719, 13, // U+B665..U+B67F LVT
531
+ 46720, 46720, 12, // U+B680..U+B680 LV
532
+ 46721, 46747, 13, // U+B681..U+B69B LVT
533
+ 46748, 46748, 12, // U+B69C..U+B69C LV
534
+ 46749, 46775, 13, // U+B69D..U+B6B7 LVT
535
+ 46776, 46776, 12, // U+B6B8..U+B6B8 LV
536
+ 46777, 46803, 13, // U+B6B9..U+B6D3 LVT
537
+ 46804, 46804, 12, // U+B6D4..U+B6D4 LV
538
+ 46805, 46831, 13, // U+B6D5..U+B6EF LVT
539
+ 46832, 46832, 12, // U+B6F0..U+B6F0 LV
540
+ 46833, 46859, 13, // U+B6F1..U+B70B LVT
541
+ 46860, 46860, 12, // U+B70C..U+B70C LV
542
+ 46861, 46887, 13, // U+B70D..U+B727 LVT
543
+ 46888, 46888, 12, // U+B728..U+B728 LV
544
+ 46889, 46915, 13, // U+B729..U+B743 LVT
545
+ 46916, 46916, 12, // U+B744..U+B744 LV
546
+ 46917, 46943, 13, // U+B745..U+B75F LVT
547
+ 46944, 46944, 12, // U+B760..U+B760 LV
548
+ 46945, 46971, 13, // U+B761..U+B77B LVT
549
+ 46972, 46972, 12, // U+B77C..U+B77C LV
550
+ 46973, 46999, 13, // U+B77D..U+B797 LVT
551
+ 47000, 47000, 12, // U+B798..U+B798 LV
552
+ 47001, 47027, 13, // U+B799..U+B7B3 LVT
553
+ 47028, 47028, 12, // U+B7B4..U+B7B4 LV
554
+ 47029, 47055, 13, // U+B7B5..U+B7CF LVT
555
+ 47056, 47056, 12, // U+B7D0..U+B7D0 LV
556
+ 47057, 47083, 13, // U+B7D1..U+B7EB LVT
557
+ 47084, 47084, 12, // U+B7EC..U+B7EC LV
558
+ 47085, 47111, 13, // U+B7ED..U+B807 LVT
559
+ 47112, 47112, 12, // U+B808..U+B808 LV
560
+ 47113, 47139, 13, // U+B809..U+B823 LVT
561
+ 47140, 47140, 12, // U+B824..U+B824 LV
562
+ 47141, 47167, 13, // U+B825..U+B83F LVT
563
+ 47168, 47168, 12, // U+B840..U+B840 LV
564
+ 47169, 47195, 13, // U+B841..U+B85B LVT
565
+ 47196, 47196, 12, // U+B85C..U+B85C LV
566
+ 47197, 47223, 13, // U+B85D..U+B877 LVT
567
+ 47224, 47224, 12, // U+B878..U+B878 LV
568
+ 47225, 47251, 13, // U+B879..U+B893 LVT
569
+ 47252, 47252, 12, // U+B894..U+B894 LV
570
+ 47253, 47279, 13, // U+B895..U+B8AF LVT
571
+ 47280, 47280, 12, // U+B8B0..U+B8B0 LV
572
+ 47281, 47307, 13, // U+B8B1..U+B8CB LVT
573
+ 47308, 47308, 12, // U+B8CC..U+B8CC LV
574
+ 47309, 47335, 13, // U+B8CD..U+B8E7 LVT
575
+ 47336, 47336, 12, // U+B8E8..U+B8E8 LV
576
+ 47337, 47363, 13, // U+B8E9..U+B903 LVT
577
+ 47364, 47364, 12, // U+B904..U+B904 LV
578
+ 47365, 47391, 13, // U+B905..U+B91F LVT
579
+ 47392, 47392, 12, // U+B920..U+B920 LV
580
+ 47393, 47419, 13, // U+B921..U+B93B LVT
581
+ 47420, 47420, 12, // U+B93C..U+B93C LV
582
+ 47421, 47447, 13, // U+B93D..U+B957 LVT
583
+ 47448, 47448, 12, // U+B958..U+B958 LV
584
+ 47449, 47475, 13, // U+B959..U+B973 LVT
585
+ 47476, 47476, 12, // U+B974..U+B974 LV
586
+ 47477, 47503, 13, // U+B975..U+B98F LVT
587
+ 47504, 47504, 12, // U+B990..U+B990 LV
588
+ 47505, 47531, 13, // U+B991..U+B9AB LVT
589
+ 47532, 47532, 12, // U+B9AC..U+B9AC LV
590
+ 47533, 47559, 13, // U+B9AD..U+B9C7 LVT
591
+ 47560, 47560, 12, // U+B9C8..U+B9C8 LV
592
+ 47561, 47587, 13, // U+B9C9..U+B9E3 LVT
593
+ 47588, 47588, 12, // U+B9E4..U+B9E4 LV
594
+ 47589, 47615, 13, // U+B9E5..U+B9FF LVT
595
+ 47616, 47616, 12, // U+BA00..U+BA00 LV
596
+ 47617, 47643, 13, // U+BA01..U+BA1B LVT
597
+ 47644, 47644, 12, // U+BA1C..U+BA1C LV
598
+ 47645, 47671, 13, // U+BA1D..U+BA37 LVT
599
+ 47672, 47672, 12, // U+BA38..U+BA38 LV
600
+ 47673, 47699, 13, // U+BA39..U+BA53 LVT
601
+ 47700, 47700, 12, // U+BA54..U+BA54 LV
602
+ 47701, 47727, 13, // U+BA55..U+BA6F LVT
603
+ 47728, 47728, 12, // U+BA70..U+BA70 LV
604
+ 47729, 47755, 13, // U+BA71..U+BA8B LVT
605
+ 47756, 47756, 12, // U+BA8C..U+BA8C LV
606
+ 47757, 47783, 13, // U+BA8D..U+BAA7 LVT
607
+ 47784, 47784, 12, // U+BAA8..U+BAA8 LV
608
+ 47785, 47811, 13, // U+BAA9..U+BAC3 LVT
609
+ 47812, 47812, 12, // U+BAC4..U+BAC4 LV
610
+ 47813, 47839, 13, // U+BAC5..U+BADF LVT
611
+ 47840, 47840, 12, // U+BAE0..U+BAE0 LV
612
+ 47841, 47867, 13, // U+BAE1..U+BAFB LVT
613
+ 47868, 47868, 12, // U+BAFC..U+BAFC LV
614
+ 47869, 47895, 13, // U+BAFD..U+BB17 LVT
615
+ 47896, 47896, 12, // U+BB18..U+BB18 LV
616
+ 47897, 47923, 13, // U+BB19..U+BB33 LVT
617
+ 47924, 47924, 12, // U+BB34..U+BB34 LV
618
+ 47925, 47951, 13, // U+BB35..U+BB4F LVT
619
+ 47952, 47952, 12, // U+BB50..U+BB50 LV
620
+ 47953, 47979, 13, // U+BB51..U+BB6B LVT
621
+ 47980, 47980, 12, // U+BB6C..U+BB6C LV
622
+ 47981, 48007, 13, // U+BB6D..U+BB87 LVT
623
+ 48008, 48008, 12, // U+BB88..U+BB88 LV
624
+ 48009, 48035, 13, // U+BB89..U+BBA3 LVT
625
+ 48036, 48036, 12, // U+BBA4..U+BBA4 LV
626
+ 48037, 48063, 13, // U+BBA5..U+BBBF LVT
627
+ 48064, 48064, 12, // U+BBC0..U+BBC0 LV
628
+ 48065, 48091, 13, // U+BBC1..U+BBDB LVT
629
+ 48092, 48092, 12, // U+BBDC..U+BBDC LV
630
+ 48093, 48119, 13, // U+BBDD..U+BBF7 LVT
631
+ 48120, 48120, 12, // U+BBF8..U+BBF8 LV
632
+ 48121, 48147, 13, // U+BBF9..U+BC13 LVT
633
+ 48148, 48148, 12, // U+BC14..U+BC14 LV
634
+ 48149, 48175, 13, // U+BC15..U+BC2F LVT
635
+ 48176, 48176, 12, // U+BC30..U+BC30 LV
636
+ 48177, 48203, 13, // U+BC31..U+BC4B LVT
637
+ 48204, 48204, 12, // U+BC4C..U+BC4C LV
638
+ 48205, 48231, 13, // U+BC4D..U+BC67 LVT
639
+ 48232, 48232, 12, // U+BC68..U+BC68 LV
640
+ 48233, 48259, 13, // U+BC69..U+BC83 LVT
641
+ 48260, 48260, 12, // U+BC84..U+BC84 LV
642
+ 48261, 48287, 13, // U+BC85..U+BC9F LVT
643
+ 48288, 48288, 12, // U+BCA0..U+BCA0 LV
644
+ 48289, 48315, 13, // U+BCA1..U+BCBB LVT
645
+ 48316, 48316, 12, // U+BCBC..U+BCBC LV
646
+ 48317, 48343, 13, // U+BCBD..U+BCD7 LVT
647
+ 48344, 48344, 12, // U+BCD8..U+BCD8 LV
648
+ 48345, 48371, 13, // U+BCD9..U+BCF3 LVT
649
+ 48372, 48372, 12, // U+BCF4..U+BCF4 LV
650
+ 48373, 48399, 13, // U+BCF5..U+BD0F LVT
651
+ 48400, 48400, 12, // U+BD10..U+BD10 LV
652
+ 48401, 48427, 13, // U+BD11..U+BD2B LVT
653
+ 48428, 48428, 12, // U+BD2C..U+BD2C LV
654
+ 48429, 48455, 13, // U+BD2D..U+BD47 LVT
655
+ 48456, 48456, 12, // U+BD48..U+BD48 LV
656
+ 48457, 48483, 13, // U+BD49..U+BD63 LVT
657
+ 48484, 48484, 12, // U+BD64..U+BD64 LV
658
+ 48485, 48511, 13, // U+BD65..U+BD7F LVT
659
+ 48512, 48512, 12, // U+BD80..U+BD80 LV
660
+ 48513, 48539, 13, // U+BD81..U+BD9B LVT
661
+ 48540, 48540, 12, // U+BD9C..U+BD9C LV
662
+ 48541, 48567, 13, // U+BD9D..U+BDB7 LVT
663
+ 48568, 48568, 12, // U+BDB8..U+BDB8 LV
664
+ 48569, 48595, 13, // U+BDB9..U+BDD3 LVT
665
+ 48596, 48596, 12, // U+BDD4..U+BDD4 LV
666
+ 48597, 48623, 13, // U+BDD5..U+BDEF LVT
667
+ 48624, 48624, 12, // U+BDF0..U+BDF0 LV
668
+ 48625, 48651, 13, // U+BDF1..U+BE0B LVT
669
+ 48652, 48652, 12, // U+BE0C..U+BE0C LV
670
+ 48653, 48679, 13, // U+BE0D..U+BE27 LVT
671
+ 48680, 48680, 12, // U+BE28..U+BE28 LV
672
+ 48681, 48707, 13, // U+BE29..U+BE43 LVT
673
+ 48708, 48708, 12, // U+BE44..U+BE44 LV
674
+ 48709, 48735, 13, // U+BE45..U+BE5F LVT
675
+ 48736, 48736, 12, // U+BE60..U+BE60 LV
676
+ 48737, 48763, 13, // U+BE61..U+BE7B LVT
677
+ 48764, 48764, 12, // U+BE7C..U+BE7C LV
678
+ 48765, 48791, 13, // U+BE7D..U+BE97 LVT
679
+ 48792, 48792, 12, // U+BE98..U+BE98 LV
680
+ 48793, 48819, 13, // U+BE99..U+BEB3 LVT
681
+ 48820, 48820, 12, // U+BEB4..U+BEB4 LV
682
+ 48821, 48847, 13, // U+BEB5..U+BECF LVT
683
+ 48848, 48848, 12, // U+BED0..U+BED0 LV
684
+ 48849, 48875, 13, // U+BED1..U+BEEB LVT
685
+ 48876, 48876, 12, // U+BEEC..U+BEEC LV
686
+ 48877, 48903, 13, // U+BEED..U+BF07 LVT
687
+ 48904, 48904, 12, // U+BF08..U+BF08 LV
688
+ 48905, 48931, 13, // U+BF09..U+BF23 LVT
689
+ 48932, 48932, 12, // U+BF24..U+BF24 LV
690
+ 48933, 48959, 13, // U+BF25..U+BF3F LVT
691
+ 48960, 48960, 12, // U+BF40..U+BF40 LV
692
+ 48961, 48987, 13, // U+BF41..U+BF5B LVT
693
+ 48988, 48988, 12, // U+BF5C..U+BF5C LV
694
+ 48989, 49015, 13, // U+BF5D..U+BF77 LVT
695
+ 49016, 49016, 12, // U+BF78..U+BF78 LV
696
+ 49017, 49043, 13, // U+BF79..U+BF93 LVT
697
+ 49044, 49044, 12, // U+BF94..U+BF94 LV
698
+ 49045, 49071, 13, // U+BF95..U+BFAF LVT
699
+ 49072, 49072, 12, // U+BFB0..U+BFB0 LV
700
+ 49073, 49099, 13, // U+BFB1..U+BFCB LVT
701
+ 49100, 49100, 12, // U+BFCC..U+BFCC LV
702
+ 49101, 49127, 13, // U+BFCD..U+BFE7 LVT
703
+ 49128, 49128, 12, // U+BFE8..U+BFE8 LV
704
+ 49129, 49155, 13, // U+BFE9..U+C003 LVT
705
+ 49156, 49156, 12, // U+C004..U+C004 LV
706
+ 49157, 49183, 13, // U+C005..U+C01F LVT
707
+ 49184, 49184, 12, // U+C020..U+C020 LV
708
+ 49185, 49211, 13, // U+C021..U+C03B LVT
709
+ 49212, 49212, 12, // U+C03C..U+C03C LV
710
+ 49213, 49239, 13, // U+C03D..U+C057 LVT
711
+ 49240, 49240, 12, // U+C058..U+C058 LV
712
+ 49241, 49267, 13, // U+C059..U+C073 LVT
713
+ 49268, 49268, 12, // U+C074..U+C074 LV
714
+ 49269, 49295, 13, // U+C075..U+C08F LVT
715
+ 49296, 49296, 12, // U+C090..U+C090 LV
716
+ 49297, 49323, 13, // U+C091..U+C0AB LVT
717
+ 49324, 49324, 12, // U+C0AC..U+C0AC LV
718
+ 49325, 49351, 13, // U+C0AD..U+C0C7 LVT
719
+ 49352, 49352, 12, // U+C0C8..U+C0C8 LV
720
+ 49353, 49379, 13, // U+C0C9..U+C0E3 LVT
721
+ 49380, 49380, 12, // U+C0E4..U+C0E4 LV
722
+ 49381, 49407, 13, // U+C0E5..U+C0FF LVT
723
+ 49408, 49408, 12, // U+C100..U+C100 LV
724
+ 49409, 49435, 13, // U+C101..U+C11B LVT
725
+ 49436, 49436, 12, // U+C11C..U+C11C LV
726
+ 49437, 49463, 13, // U+C11D..U+C137 LVT
727
+ 49464, 49464, 12, // U+C138..U+C138 LV
728
+ 49465, 49491, 13, // U+C139..U+C153 LVT
729
+ 49492, 49492, 12, // U+C154..U+C154 LV
730
+ 49493, 49519, 13, // U+C155..U+C16F LVT
731
+ 49520, 49520, 12, // U+C170..U+C170 LV
732
+ 49521, 49547, 13, // U+C171..U+C18B LVT
733
+ 49548, 49548, 12, // U+C18C..U+C18C LV
734
+ 49549, 49575, 13, // U+C18D..U+C1A7 LVT
735
+ 49576, 49576, 12, // U+C1A8..U+C1A8 LV
736
+ 49577, 49603, 13, // U+C1A9..U+C1C3 LVT
737
+ 49604, 49604, 12, // U+C1C4..U+C1C4 LV
738
+ 49605, 49631, 13, // U+C1C5..U+C1DF LVT
739
+ 49632, 49632, 12, // U+C1E0..U+C1E0 LV
740
+ 49633, 49659, 13, // U+C1E1..U+C1FB LVT
741
+ 49660, 49660, 12, // U+C1FC..U+C1FC LV
742
+ 49661, 49687, 13, // U+C1FD..U+C217 LVT
743
+ 49688, 49688, 12, // U+C218..U+C218 LV
744
+ 49689, 49715, 13, // U+C219..U+C233 LVT
745
+ 49716, 49716, 12, // U+C234..U+C234 LV
746
+ 49717, 49743, 13, // U+C235..U+C24F LVT
747
+ 49744, 49744, 12, // U+C250..U+C250 LV
748
+ 49745, 49771, 13, // U+C251..U+C26B LVT
749
+ 49772, 49772, 12, // U+C26C..U+C26C LV
750
+ 49773, 49799, 13, // U+C26D..U+C287 LVT
751
+ 49800, 49800, 12, // U+C288..U+C288 LV
752
+ 49801, 49827, 13, // U+C289..U+C2A3 LVT
753
+ 49828, 49828, 12, // U+C2A4..U+C2A4 LV
754
+ 49829, 49855, 13, // U+C2A5..U+C2BF LVT
755
+ 49856, 49856, 12, // U+C2C0..U+C2C0 LV
756
+ 49857, 49883, 13, // U+C2C1..U+C2DB LVT
757
+ 49884, 49884, 12, // U+C2DC..U+C2DC LV
758
+ 49885, 49911, 13, // U+C2DD..U+C2F7 LVT
759
+ 49912, 49912, 12, // U+C2F8..U+C2F8 LV
760
+ 49913, 49939, 13, // U+C2F9..U+C313 LVT
761
+ 49940, 49940, 12, // U+C314..U+C314 LV
762
+ 49941, 49967, 13, // U+C315..U+C32F LVT
763
+ 49968, 49968, 12, // U+C330..U+C330 LV
764
+ 49969, 49995, 13, // U+C331..U+C34B LVT
765
+ 49996, 49996, 12, // U+C34C..U+C34C LV
766
+ 49997, 50023, 13, // U+C34D..U+C367 LVT
767
+ 50024, 50024, 12, // U+C368..U+C368 LV
768
+ 50025, 50051, 13, // U+C369..U+C383 LVT
769
+ 50052, 50052, 12, // U+C384..U+C384 LV
770
+ 50053, 50079, 13, // U+C385..U+C39F LVT
771
+ 50080, 50080, 12, // U+C3A0..U+C3A0 LV
772
+ 50081, 50107, 13, // U+C3A1..U+C3BB LVT
773
+ 50108, 50108, 12, // U+C3BC..U+C3BC LV
774
+ 50109, 50135, 13, // U+C3BD..U+C3D7 LVT
775
+ 50136, 50136, 12, // U+C3D8..U+C3D8 LV
776
+ 50137, 50163, 13, // U+C3D9..U+C3F3 LVT
777
+ 50164, 50164, 12, // U+C3F4..U+C3F4 LV
778
+ 50165, 50191, 13, // U+C3F5..U+C40F LVT
779
+ 50192, 50192, 12, // U+C410..U+C410 LV
780
+ 50193, 50219, 13, // U+C411..U+C42B LVT
781
+ 50220, 50220, 12, // U+C42C..U+C42C LV
782
+ 50221, 50247, 13, // U+C42D..U+C447 LVT
783
+ 50248, 50248, 12, // U+C448..U+C448 LV
784
+ 50249, 50275, 13, // U+C449..U+C463 LVT
785
+ 50276, 50276, 12, // U+C464..U+C464 LV
786
+ 50277, 50303, 13, // U+C465..U+C47F LVT
787
+ 50304, 50304, 12, // U+C480..U+C480 LV
788
+ 50305, 50331, 13, // U+C481..U+C49B LVT
789
+ 50332, 50332, 12, // U+C49C..U+C49C LV
790
+ 50333, 50359, 13, // U+C49D..U+C4B7 LVT
791
+ 50360, 50360, 12, // U+C4B8..U+C4B8 LV
792
+ 50361, 50387, 13, // U+C4B9..U+C4D3 LVT
793
+ 50388, 50388, 12, // U+C4D4..U+C4D4 LV
794
+ 50389, 50415, 13, // U+C4D5..U+C4EF LVT
795
+ 50416, 50416, 12, // U+C4F0..U+C4F0 LV
796
+ 50417, 50443, 13, // U+C4F1..U+C50B LVT
797
+ 50444, 50444, 12, // U+C50C..U+C50C LV
798
+ 50445, 50471, 13, // U+C50D..U+C527 LVT
799
+ 50472, 50472, 12, // U+C528..U+C528 LV
800
+ 50473, 50499, 13, // U+C529..U+C543 LVT
801
+ 50500, 50500, 12, // U+C544..U+C544 LV
802
+ 50501, 50527, 13, // U+C545..U+C55F LVT
803
+ 50528, 50528, 12, // U+C560..U+C560 LV
804
+ 50529, 50555, 13, // U+C561..U+C57B LVT
805
+ 50556, 50556, 12, // U+C57C..U+C57C LV
806
+ 50557, 50583, 13, // U+C57D..U+C597 LVT
807
+ 50584, 50584, 12, // U+C598..U+C598 LV
808
+ 50585, 50611, 13, // U+C599..U+C5B3 LVT
809
+ 50612, 50612, 12, // U+C5B4..U+C5B4 LV
810
+ 50613, 50639, 13, // U+C5B5..U+C5CF LVT
811
+ 50640, 50640, 12, // U+C5D0..U+C5D0 LV
812
+ 50641, 50667, 13, // U+C5D1..U+C5EB LVT
813
+ 50668, 50668, 12, // U+C5EC..U+C5EC LV
814
+ 50669, 50695, 13, // U+C5ED..U+C607 LVT
815
+ 50696, 50696, 12, // U+C608..U+C608 LV
816
+ 50697, 50723, 13, // U+C609..U+C623 LVT
817
+ 50724, 50724, 12, // U+C624..U+C624 LV
818
+ 50725, 50751, 13, // U+C625..U+C63F LVT
819
+ 50752, 50752, 12, // U+C640..U+C640 LV
820
+ 50753, 50779, 13, // U+C641..U+C65B LVT
821
+ 50780, 50780, 12, // U+C65C..U+C65C LV
822
+ 50781, 50807, 13, // U+C65D..U+C677 LVT
823
+ 50808, 50808, 12, // U+C678..U+C678 LV
824
+ 50809, 50835, 13, // U+C679..U+C693 LVT
825
+ 50836, 50836, 12, // U+C694..U+C694 LV
826
+ 50837, 50863, 13, // U+C695..U+C6AF LVT
827
+ 50864, 50864, 12, // U+C6B0..U+C6B0 LV
828
+ 50865, 50891, 13, // U+C6B1..U+C6CB LVT
829
+ 50892, 50892, 12, // U+C6CC..U+C6CC LV
830
+ 50893, 50919, 13, // U+C6CD..U+C6E7 LVT
831
+ 50920, 50920, 12, // U+C6E8..U+C6E8 LV
832
+ 50921, 50947, 13, // U+C6E9..U+C703 LVT
833
+ 50948, 50948, 12, // U+C704..U+C704 LV
834
+ 50949, 50975, 13, // U+C705..U+C71F LVT
835
+ 50976, 50976, 12, // U+C720..U+C720 LV
836
+ 50977, 51003, 13, // U+C721..U+C73B LVT
837
+ 51004, 51004, 12, // U+C73C..U+C73C LV
838
+ 51005, 51031, 13, // U+C73D..U+C757 LVT
839
+ 51032, 51032, 12, // U+C758..U+C758 LV
840
+ 51033, 51059, 13, // U+C759..U+C773 LVT
841
+ 51060, 51060, 12, // U+C774..U+C774 LV
842
+ 51061, 51087, 13, // U+C775..U+C78F LVT
843
+ 51088, 51088, 12, // U+C790..U+C790 LV
844
+ 51089, 51115, 13, // U+C791..U+C7AB LVT
845
+ 51116, 51116, 12, // U+C7AC..U+C7AC LV
846
+ 51117, 51143, 13, // U+C7AD..U+C7C7 LVT
847
+ 51144, 51144, 12, // U+C7C8..U+C7C8 LV
848
+ 51145, 51171, 13, // U+C7C9..U+C7E3 LVT
849
+ 51172, 51172, 12, // U+C7E4..U+C7E4 LV
850
+ 51173, 51199, 13, // U+C7E5..U+C7FF LVT
851
+ 51200, 51200, 12, // U+C800..U+C800 LV
852
+ 51201, 51227, 13, // U+C801..U+C81B LVT
853
+ 51228, 51228, 12, // U+C81C..U+C81C LV
854
+ 51229, 51255, 13, // U+C81D..U+C837 LVT
855
+ 51256, 51256, 12, // U+C838..U+C838 LV
856
+ 51257, 51283, 13, // U+C839..U+C853 LVT
857
+ 51284, 51284, 12, // U+C854..U+C854 LV
858
+ 51285, 51311, 13, // U+C855..U+C86F LVT
859
+ 51312, 51312, 12, // U+C870..U+C870 LV
860
+ 51313, 51339, 13, // U+C871..U+C88B LVT
861
+ 51340, 51340, 12, // U+C88C..U+C88C LV
862
+ 51341, 51367, 13, // U+C88D..U+C8A7 LVT
863
+ 51368, 51368, 12, // U+C8A8..U+C8A8 LV
864
+ 51369, 51395, 13, // U+C8A9..U+C8C3 LVT
865
+ 51396, 51396, 12, // U+C8C4..U+C8C4 LV
866
+ 51397, 51423, 13, // U+C8C5..U+C8DF LVT
867
+ 51424, 51424, 12, // U+C8E0..U+C8E0 LV
868
+ 51425, 51451, 13, // U+C8E1..U+C8FB LVT
869
+ 51452, 51452, 12, // U+C8FC..U+C8FC LV
870
+ 51453, 51479, 13, // U+C8FD..U+C917 LVT
871
+ 51480, 51480, 12, // U+C918..U+C918 LV
872
+ 51481, 51507, 13, // U+C919..U+C933 LVT
873
+ 51508, 51508, 12, // U+C934..U+C934 LV
874
+ 51509, 51535, 13, // U+C935..U+C94F LVT
875
+ 51536, 51536, 12, // U+C950..U+C950 LV
876
+ 51537, 51563, 13, // U+C951..U+C96B LVT
877
+ 51564, 51564, 12, // U+C96C..U+C96C LV
878
+ 51565, 51591, 13, // U+C96D..U+C987 LVT
879
+ 51592, 51592, 12, // U+C988..U+C988 LV
880
+ 51593, 51619, 13, // U+C989..U+C9A3 LVT
881
+ 51620, 51620, 12, // U+C9A4..U+C9A4 LV
882
+ 51621, 51647, 13, // U+C9A5..U+C9BF LVT
883
+ 51648, 51648, 12, // U+C9C0..U+C9C0 LV
884
+ 51649, 51675, 13, // U+C9C1..U+C9DB LVT
885
+ 51676, 51676, 12, // U+C9DC..U+C9DC LV
886
+ 51677, 51703, 13, // U+C9DD..U+C9F7 LVT
887
+ 51704, 51704, 12, // U+C9F8..U+C9F8 LV
888
+ 51705, 51731, 13, // U+C9F9..U+CA13 LVT
889
+ 51732, 51732, 12, // U+CA14..U+CA14 LV
890
+ 51733, 51759, 13, // U+CA15..U+CA2F LVT
891
+ 51760, 51760, 12, // U+CA30..U+CA30 LV
892
+ 51761, 51787, 13, // U+CA31..U+CA4B LVT
893
+ 51788, 51788, 12, // U+CA4C..U+CA4C LV
894
+ 51789, 51815, 13, // U+CA4D..U+CA67 LVT
895
+ 51816, 51816, 12, // U+CA68..U+CA68 LV
896
+ 51817, 51843, 13, // U+CA69..U+CA83 LVT
897
+ 51844, 51844, 12, // U+CA84..U+CA84 LV
898
+ 51845, 51871, 13, // U+CA85..U+CA9F LVT
899
+ 51872, 51872, 12, // U+CAA0..U+CAA0 LV
900
+ 51873, 51899, 13, // U+CAA1..U+CABB LVT
901
+ 51900, 51900, 12, // U+CABC..U+CABC LV
902
+ 51901, 51927, 13, // U+CABD..U+CAD7 LVT
903
+ 51928, 51928, 12, // U+CAD8..U+CAD8 LV
904
+ 51929, 51955, 13, // U+CAD9..U+CAF3 LVT
905
+ 51956, 51956, 12, // U+CAF4..U+CAF4 LV
906
+ 51957, 51983, 13, // U+CAF5..U+CB0F LVT
907
+ 51984, 51984, 12, // U+CB10..U+CB10 LV
908
+ 51985, 52011, 13, // U+CB11..U+CB2B LVT
909
+ 52012, 52012, 12, // U+CB2C..U+CB2C LV
910
+ 52013, 52039, 13, // U+CB2D..U+CB47 LVT
911
+ 52040, 52040, 12, // U+CB48..U+CB48 LV
912
+ 52041, 52067, 13, // U+CB49..U+CB63 LVT
913
+ 52068, 52068, 12, // U+CB64..U+CB64 LV
914
+ 52069, 52095, 13, // U+CB65..U+CB7F LVT
915
+ 52096, 52096, 12, // U+CB80..U+CB80 LV
916
+ 52097, 52123, 13, // U+CB81..U+CB9B LVT
917
+ 52124, 52124, 12, // U+CB9C..U+CB9C LV
918
+ 52125, 52151, 13, // U+CB9D..U+CBB7 LVT
919
+ 52152, 52152, 12, // U+CBB8..U+CBB8 LV
920
+ 52153, 52179, 13, // U+CBB9..U+CBD3 LVT
921
+ 52180, 52180, 12, // U+CBD4..U+CBD4 LV
922
+ 52181, 52207, 13, // U+CBD5..U+CBEF LVT
923
+ 52208, 52208, 12, // U+CBF0..U+CBF0 LV
924
+ 52209, 52235, 13, // U+CBF1..U+CC0B LVT
925
+ 52236, 52236, 12, // U+CC0C..U+CC0C LV
926
+ 52237, 52263, 13, // U+CC0D..U+CC27 LVT
927
+ 52264, 52264, 12, // U+CC28..U+CC28 LV
928
+ 52265, 52291, 13, // U+CC29..U+CC43 LVT
929
+ 52292, 52292, 12, // U+CC44..U+CC44 LV
930
+ 52293, 52319, 13, // U+CC45..U+CC5F LVT
931
+ 52320, 52320, 12, // U+CC60..U+CC60 LV
932
+ 52321, 52347, 13, // U+CC61..U+CC7B LVT
933
+ 52348, 52348, 12, // U+CC7C..U+CC7C LV
934
+ 52349, 52375, 13, // U+CC7D..U+CC97 LVT
935
+ 52376, 52376, 12, // U+CC98..U+CC98 LV
936
+ 52377, 52403, 13, // U+CC99..U+CCB3 LVT
937
+ 52404, 52404, 12, // U+CCB4..U+CCB4 LV
938
+ 52405, 52431, 13, // U+CCB5..U+CCCF LVT
939
+ 52432, 52432, 12, // U+CCD0..U+CCD0 LV
940
+ 52433, 52459, 13, // U+CCD1..U+CCEB LVT
941
+ 52460, 52460, 12, // U+CCEC..U+CCEC LV
942
+ 52461, 52487, 13, // U+CCED..U+CD07 LVT
943
+ 52488, 52488, 12, // U+CD08..U+CD08 LV
944
+ 52489, 52515, 13, // U+CD09..U+CD23 LVT
945
+ 52516, 52516, 12, // U+CD24..U+CD24 LV
946
+ 52517, 52543, 13, // U+CD25..U+CD3F LVT
947
+ 52544, 52544, 12, // U+CD40..U+CD40 LV
948
+ 52545, 52571, 13, // U+CD41..U+CD5B LVT
949
+ 52572, 52572, 12, // U+CD5C..U+CD5C LV
950
+ 52573, 52599, 13, // U+CD5D..U+CD77 LVT
951
+ 52600, 52600, 12, // U+CD78..U+CD78 LV
952
+ 52601, 52627, 13, // U+CD79..U+CD93 LVT
953
+ 52628, 52628, 12, // U+CD94..U+CD94 LV
954
+ 52629, 52655, 13, // U+CD95..U+CDAF LVT
955
+ 52656, 52656, 12, // U+CDB0..U+CDB0 LV
956
+ 52657, 52683, 13, // U+CDB1..U+CDCB LVT
957
+ 52684, 52684, 12, // U+CDCC..U+CDCC LV
958
+ 52685, 52711, 13, // U+CDCD..U+CDE7 LVT
959
+ 52712, 52712, 12, // U+CDE8..U+CDE8 LV
960
+ 52713, 52739, 13, // U+CDE9..U+CE03 LVT
961
+ 52740, 52740, 12, // U+CE04..U+CE04 LV
962
+ 52741, 52767, 13, // U+CE05..U+CE1F LVT
963
+ 52768, 52768, 12, // U+CE20..U+CE20 LV
964
+ 52769, 52795, 13, // U+CE21..U+CE3B LVT
965
+ 52796, 52796, 12, // U+CE3C..U+CE3C LV
966
+ 52797, 52823, 13, // U+CE3D..U+CE57 LVT
967
+ 52824, 52824, 12, // U+CE58..U+CE58 LV
968
+ 52825, 52851, 13, // U+CE59..U+CE73 LVT
969
+ 52852, 52852, 12, // U+CE74..U+CE74 LV
970
+ 52853, 52879, 13, // U+CE75..U+CE8F LVT
971
+ 52880, 52880, 12, // U+CE90..U+CE90 LV
972
+ 52881, 52907, 13, // U+CE91..U+CEAB LVT
973
+ 52908, 52908, 12, // U+CEAC..U+CEAC LV
974
+ 52909, 52935, 13, // U+CEAD..U+CEC7 LVT
975
+ 52936, 52936, 12, // U+CEC8..U+CEC8 LV
976
+ 52937, 52963, 13, // U+CEC9..U+CEE3 LVT
977
+ 52964, 52964, 12, // U+CEE4..U+CEE4 LV
978
+ 52965, 52991, 13, // U+CEE5..U+CEFF LVT
979
+ 52992, 52992, 12, // U+CF00..U+CF00 LV
980
+ 52993, 53019, 13, // U+CF01..U+CF1B LVT
981
+ 53020, 53020, 12, // U+CF1C..U+CF1C LV
982
+ 53021, 53047, 13, // U+CF1D..U+CF37 LVT
983
+ 53048, 53048, 12, // U+CF38..U+CF38 LV
984
+ 53049, 53075, 13, // U+CF39..U+CF53 LVT
985
+ 53076, 53076, 12, // U+CF54..U+CF54 LV
986
+ 53077, 53103, 13, // U+CF55..U+CF6F LVT
987
+ 53104, 53104, 12, // U+CF70..U+CF70 LV
988
+ 53105, 53131, 13, // U+CF71..U+CF8B LVT
989
+ 53132, 53132, 12, // U+CF8C..U+CF8C LV
990
+ 53133, 53159, 13, // U+CF8D..U+CFA7 LVT
991
+ 53160, 53160, 12, // U+CFA8..U+CFA8 LV
992
+ 53161, 53187, 13, // U+CFA9..U+CFC3 LVT
993
+ 53188, 53188, 12, // U+CFC4..U+CFC4 LV
994
+ 53189, 53215, 13, // U+CFC5..U+CFDF LVT
995
+ 53216, 53216, 12, // U+CFE0..U+CFE0 LV
996
+ 53217, 53243, 13, // U+CFE1..U+CFFB LVT
997
+ 53244, 53244, 12, // U+CFFC..U+CFFC LV
998
+ 53245, 53271, 13, // U+CFFD..U+D017 LVT
999
+ 53272, 53272, 12, // U+D018..U+D018 LV
1000
+ 53273, 53299, 13, // U+D019..U+D033 LVT
1001
+ 53300, 53300, 12, // U+D034..U+D034 LV
1002
+ 53301, 53327, 13, // U+D035..U+D04F LVT
1003
+ 53328, 53328, 12, // U+D050..U+D050 LV
1004
+ 53329, 53355, 13, // U+D051..U+D06B LVT
1005
+ 53356, 53356, 12, // U+D06C..U+D06C LV
1006
+ 53357, 53383, 13, // U+D06D..U+D087 LVT
1007
+ 53384, 53384, 12, // U+D088..U+D088 LV
1008
+ 53385, 53411, 13, // U+D089..U+D0A3 LVT
1009
+ 53412, 53412, 12, // U+D0A4..U+D0A4 LV
1010
+ 53413, 53439, 13, // U+D0A5..U+D0BF LVT
1011
+ 53440, 53440, 12, // U+D0C0..U+D0C0 LV
1012
+ 53441, 53467, 13, // U+D0C1..U+D0DB LVT
1013
+ 53468, 53468, 12, // U+D0DC..U+D0DC LV
1014
+ 53469, 53495, 13, // U+D0DD..U+D0F7 LVT
1015
+ 53496, 53496, 12, // U+D0F8..U+D0F8 LV
1016
+ 53497, 53523, 13, // U+D0F9..U+D113 LVT
1017
+ 53524, 53524, 12, // U+D114..U+D114 LV
1018
+ 53525, 53551, 13, // U+D115..U+D12F LVT
1019
+ 53552, 53552, 12, // U+D130..U+D130 LV
1020
+ 53553, 53579, 13, // U+D131..U+D14B LVT
1021
+ 53580, 53580, 12, // U+D14C..U+D14C LV
1022
+ 53581, 53607, 13, // U+D14D..U+D167 LVT
1023
+ 53608, 53608, 12, // U+D168..U+D168 LV
1024
+ 53609, 53635, 13, // U+D169..U+D183 LVT
1025
+ 53636, 53636, 12, // U+D184..U+D184 LV
1026
+ 53637, 53663, 13, // U+D185..U+D19F LVT
1027
+ 53664, 53664, 12, // U+D1A0..U+D1A0 LV
1028
+ 53665, 53691, 13, // U+D1A1..U+D1BB LVT
1029
+ 53692, 53692, 12, // U+D1BC..U+D1BC LV
1030
+ 53693, 53719, 13, // U+D1BD..U+D1D7 LVT
1031
+ 53720, 53720, 12, // U+D1D8..U+D1D8 LV
1032
+ 53721, 53747, 13, // U+D1D9..U+D1F3 LVT
1033
+ 53748, 53748, 12, // U+D1F4..U+D1F4 LV
1034
+ 53749, 53775, 13, // U+D1F5..U+D20F LVT
1035
+ 53776, 53776, 12, // U+D210..U+D210 LV
1036
+ 53777, 53803, 13, // U+D211..U+D22B LVT
1037
+ 53804, 53804, 12, // U+D22C..U+D22C LV
1038
+ 53805, 53831, 13, // U+D22D..U+D247 LVT
1039
+ 53832, 53832, 12, // U+D248..U+D248 LV
1040
+ 53833, 53859, 13, // U+D249..U+D263 LVT
1041
+ 53860, 53860, 12, // U+D264..U+D264 LV
1042
+ 53861, 53887, 13, // U+D265..U+D27F LVT
1043
+ 53888, 53888, 12, // U+D280..U+D280 LV
1044
+ 53889, 53915, 13, // U+D281..U+D29B LVT
1045
+ 53916, 53916, 12, // U+D29C..U+D29C LV
1046
+ 53917, 53943, 13, // U+D29D..U+D2B7 LVT
1047
+ 53944, 53944, 12, // U+D2B8..U+D2B8 LV
1048
+ 53945, 53971, 13, // U+D2B9..U+D2D3 LVT
1049
+ 53972, 53972, 12, // U+D2D4..U+D2D4 LV
1050
+ 53973, 53999, 13, // U+D2D5..U+D2EF LVT
1051
+ 54000, 54000, 12, // U+D2F0..U+D2F0 LV
1052
+ 54001, 54027, 13, // U+D2F1..U+D30B LVT
1053
+ 54028, 54028, 12, // U+D30C..U+D30C LV
1054
+ 54029, 54055, 13, // U+D30D..U+D327 LVT
1055
+ 54056, 54056, 12, // U+D328..U+D328 LV
1056
+ 54057, 54083, 13, // U+D329..U+D343 LVT
1057
+ 54084, 54084, 12, // U+D344..U+D344 LV
1058
+ 54085, 54111, 13, // U+D345..U+D35F LVT
1059
+ 54112, 54112, 12, // U+D360..U+D360 LV
1060
+ 54113, 54139, 13, // U+D361..U+D37B LVT
1061
+ 54140, 54140, 12, // U+D37C..U+D37C LV
1062
+ 54141, 54167, 13, // U+D37D..U+D397 LVT
1063
+ 54168, 54168, 12, // U+D398..U+D398 LV
1064
+ 54169, 54195, 13, // U+D399..U+D3B3 LVT
1065
+ 54196, 54196, 12, // U+D3B4..U+D3B4 LV
1066
+ 54197, 54223, 13, // U+D3B5..U+D3CF LVT
1067
+ 54224, 54224, 12, // U+D3D0..U+D3D0 LV
1068
+ 54225, 54251, 13, // U+D3D1..U+D3EB LVT
1069
+ 54252, 54252, 12, // U+D3EC..U+D3EC LV
1070
+ 54253, 54279, 13, // U+D3ED..U+D407 LVT
1071
+ 54280, 54280, 12, // U+D408..U+D408 LV
1072
+ 54281, 54307, 13, // U+D409..U+D423 LVT
1073
+ 54308, 54308, 12, // U+D424..U+D424 LV
1074
+ 54309, 54335, 13, // U+D425..U+D43F LVT
1075
+ 54336, 54336, 12, // U+D440..U+D440 LV
1076
+ 54337, 54363, 13, // U+D441..U+D45B LVT
1077
+ 54364, 54364, 12, // U+D45C..U+D45C LV
1078
+ 54365, 54391, 13, // U+D45D..U+D477 LVT
1079
+ 54392, 54392, 12, // U+D478..U+D478 LV
1080
+ 54393, 54419, 13, // U+D479..U+D493 LVT
1081
+ 54420, 54420, 12, // U+D494..U+D494 LV
1082
+ 54421, 54447, 13, // U+D495..U+D4AF LVT
1083
+ 54448, 54448, 12, // U+D4B0..U+D4B0 LV
1084
+ 54449, 54475, 13, // U+D4B1..U+D4CB LVT
1085
+ 54476, 54476, 12, // U+D4CC..U+D4CC LV
1086
+ 54477, 54503, 13, // U+D4CD..U+D4E7 LVT
1087
+ 54504, 54504, 12, // U+D4E8..U+D4E8 LV
1088
+ 54505, 54531, 13, // U+D4E9..U+D503 LVT
1089
+ 54532, 54532, 12, // U+D504..U+D504 LV
1090
+ 54533, 54559, 13, // U+D505..U+D51F LVT
1091
+ 54560, 54560, 12, // U+D520..U+D520 LV
1092
+ 54561, 54587, 13, // U+D521..U+D53B LVT
1093
+ 54588, 54588, 12, // U+D53C..U+D53C LV
1094
+ 54589, 54615, 13, // U+D53D..U+D557 LVT
1095
+ 54616, 54616, 12, // U+D558..U+D558 LV
1096
+ 54617, 54643, 13, // U+D559..U+D573 LVT
1097
+ 54644, 54644, 12, // U+D574..U+D574 LV
1098
+ 54645, 54671, 13, // U+D575..U+D58F LVT
1099
+ 54672, 54672, 12, // U+D590..U+D590 LV
1100
+ 54673, 54699, 13, // U+D591..U+D5AB LVT
1101
+ 54700, 54700, 12, // U+D5AC..U+D5AC LV
1102
+ 54701, 54727, 13, // U+D5AD..U+D5C7 LVT
1103
+ 54728, 54728, 12, // U+D5C8..U+D5C8 LV
1104
+ 54729, 54755, 13, // U+D5C9..U+D5E3 LVT
1105
+ 54756, 54756, 12, // U+D5E4..U+D5E4 LV
1106
+ 54757, 54783, 13, // U+D5E5..U+D5FF LVT
1107
+ 54784, 54784, 12, // U+D600..U+D600 LV
1108
+ 54785, 54811, 13, // U+D601..U+D61B LVT
1109
+ 54812, 54812, 12, // U+D61C..U+D61C LV
1110
+ 54813, 54839, 13, // U+D61D..U+D637 LVT
1111
+ 54840, 54840, 12, // U+D638..U+D638 LV
1112
+ 54841, 54867, 13, // U+D639..U+D653 LVT
1113
+ 54868, 54868, 12, // U+D654..U+D654 LV
1114
+ 54869, 54895, 13, // U+D655..U+D66F LVT
1115
+ 54896, 54896, 12, // U+D670..U+D670 LV
1116
+ 54897, 54923, 13, // U+D671..U+D68B LVT
1117
+ 54924, 54924, 12, // U+D68C..U+D68C LV
1118
+ 54925, 54951, 13, // U+D68D..U+D6A7 LVT
1119
+ 54952, 54952, 12, // U+D6A8..U+D6A8 LV
1120
+ 54953, 54979, 13, // U+D6A9..U+D6C3 LVT
1121
+ 54980, 54980, 12, // U+D6C4..U+D6C4 LV
1122
+ 54981, 55007, 13, // U+D6C5..U+D6DF LVT
1123
+ 55008, 55008, 12, // U+D6E0..U+D6E0 LV
1124
+ 55009, 55035, 13, // U+D6E1..U+D6FB LVT
1125
+ 55036, 55036, 12, // U+D6FC..U+D6FC LV
1126
+ 55037, 55063, 13, // U+D6FD..U+D717 LVT
1127
+ 55064, 55064, 12, // U+D718..U+D718 LV
1128
+ 55065, 55091, 13, // U+D719..U+D733 LVT
1129
+ 55092, 55092, 12, // U+D734..U+D734 LV
1130
+ 55093, 55119, 13, // U+D735..U+D74F LVT
1131
+ 55120, 55120, 12, // U+D750..U+D750 LV
1132
+ 55121, 55147, 13, // U+D751..U+D76B LVT
1133
+ 55148, 55148, 12, // U+D76C..U+D76C LV
1134
+ 55149, 55175, 13, // U+D76D..U+D787 LVT
1135
+ 55176, 55176, 12, // U+D788..U+D788 LV
1136
+ 55177, 55203, 13, // U+D789..U+D7A3 LVT
1137
+ 55216, 55238, 10, // U+D7B0..U+D7C6 V
1138
+ 55243, 55291, 11, // U+D7CB..U+D7FB T
1139
+ 64286, 64286, 4, // U+FB1E..U+FB1E Extend
1140
+ 65024, 65039, 4, // U+FE00..U+FE0F Extend
1141
+ 65056, 65071, 4, // U+FE20..U+FE2F Extend
1142
+ 65279, 65279, 3, // U+FEFF..U+FEFF Control
1143
+ 65438, 65439, 4, // U+FF9E..U+FF9F Extend
1144
+ 65520, 65531, 3, // U+FFF0..U+FFFB Control
1145
+ 66045, 66045, 4, // U+101FD..U+101FD Extend
1146
+ 66272, 66272, 4, // U+102E0..U+102E0 Extend
1147
+ 66422, 66426, 4, // U+10376..U+1037A Extend
1148
+ 68097, 68099, 4, // U+10A01..U+10A03 Extend
1149
+ 68101, 68102, 4, // U+10A05..U+10A06 Extend
1150
+ 68108, 68111, 4, // U+10A0C..U+10A0F Extend
1151
+ 68152, 68154, 4, // U+10A38..U+10A3A Extend
1152
+ 68159, 68159, 4, // U+10A3F..U+10A3F Extend
1153
+ 68325, 68326, 4, // U+10AE5..U+10AE6 Extend
1154
+ 68900, 68903, 4, // U+10D24..U+10D27 Extend
1155
+ 68969, 68973, 4, // U+10D69..U+10D6D Extend
1156
+ 69291, 69292, 4, // U+10EAB..U+10EAC Extend
1157
+ 69372, 69375, 4, // U+10EFC..U+10EFF Extend
1158
+ 69446, 69456, 4, // U+10F46..U+10F50 Extend
1159
+ 69506, 69509, 4, // U+10F82..U+10F85 Extend
1160
+ 69632, 69632, 8, // U+11000..U+11000 SpacingMark
1161
+ 69633, 69633, 4, // U+11001..U+11001 Extend
1162
+ 69634, 69634, 8, // U+11002..U+11002 SpacingMark
1163
+ 69688, 69702, 4, // U+11038..U+11046 Extend
1164
+ 69744, 69744, 4, // U+11070..U+11070 Extend
1165
+ 69747, 69748, 4, // U+11073..U+11074 Extend
1166
+ 69759, 69761, 4, // U+1107F..U+11081 Extend
1167
+ 69762, 69762, 8, // U+11082..U+11082 SpacingMark
1168
+ 69808, 69810, 8, // U+110B0..U+110B2 SpacingMark
1169
+ 69811, 69814, 4, // U+110B3..U+110B6 Extend
1170
+ 69815, 69816, 8, // U+110B7..U+110B8 SpacingMark
1171
+ 69817, 69818, 4, // U+110B9..U+110BA Extend
1172
+ 69821, 69821, 7, // U+110BD..U+110BD Prepend
1173
+ 69826, 69826, 4, // U+110C2..U+110C2 Extend
1174
+ 69837, 69837, 7, // U+110CD..U+110CD Prepend
1175
+ 69888, 69890, 4, // U+11100..U+11102 Extend
1176
+ 69927, 69931, 4, // U+11127..U+1112B Extend
1177
+ 69932, 69932, 8, // U+1112C..U+1112C SpacingMark
1178
+ 69933, 69940, 4, // U+1112D..U+11134 Extend
1179
+ 69957, 69958, 8, // U+11145..U+11146 SpacingMark
1180
+ 70003, 70003, 4, // U+11173..U+11173 Extend
1181
+ 70016, 70017, 4, // U+11180..U+11181 Extend
1182
+ 70018, 70018, 8, // U+11182..U+11182 SpacingMark
1183
+ 70067, 70069, 8, // U+111B3..U+111B5 SpacingMark
1184
+ 70070, 70078, 4, // U+111B6..U+111BE Extend
1185
+ 70079, 70079, 8, // U+111BF..U+111BF SpacingMark
1186
+ 70080, 70080, 4, // U+111C0..U+111C0 Extend
1187
+ 70082, 70083, 7, // U+111C2..U+111C3 Prepend
1188
+ 70089, 70092, 4, // U+111C9..U+111CC Extend
1189
+ 70094, 70094, 8, // U+111CE..U+111CE SpacingMark
1190
+ 70095, 70095, 4, // U+111CF..U+111CF Extend
1191
+ 70188, 70190, 8, // U+1122C..U+1122E SpacingMark
1192
+ 70191, 70193, 4, // U+1122F..U+11231 Extend
1193
+ 70194, 70195, 8, // U+11232..U+11233 SpacingMark
1194
+ 70196, 70199, 4, // U+11234..U+11237 Extend
1195
+ 70206, 70206, 4, // U+1123E..U+1123E Extend
1196
+ 70209, 70209, 4, // U+11241..U+11241 Extend
1197
+ 70367, 70367, 4, // U+112DF..U+112DF Extend
1198
+ 70368, 70370, 8, // U+112E0..U+112E2 SpacingMark
1199
+ 70371, 70378, 4, // U+112E3..U+112EA Extend
1200
+ 70400, 70401, 4, // U+11300..U+11301 Extend
1201
+ 70402, 70403, 8, // U+11302..U+11303 SpacingMark
1202
+ 70459, 70460, 4, // U+1133B..U+1133C Extend
1203
+ 70462, 70462, 4, // U+1133E..U+1133E Extend
1204
+ 70463, 70463, 8, // U+1133F..U+1133F SpacingMark
1205
+ 70464, 70464, 4, // U+11340..U+11340 Extend
1206
+ 70465, 70468, 8, // U+11341..U+11344 SpacingMark
1207
+ 70471, 70472, 8, // U+11347..U+11348 SpacingMark
1208
+ 70475, 70476, 8, // U+1134B..U+1134C SpacingMark
1209
+ 70477, 70477, 4, // U+1134D..U+1134D Extend
1210
+ 70487, 70487, 4, // U+11357..U+11357 Extend
1211
+ 70498, 70499, 8, // U+11362..U+11363 SpacingMark
1212
+ 70502, 70508, 4, // U+11366..U+1136C Extend
1213
+ 70512, 70516, 4, // U+11370..U+11374 Extend
1214
+ 70584, 70584, 4, // U+113B8..U+113B8 Extend
1215
+ 70585, 70586, 8, // U+113B9..U+113BA SpacingMark
1216
+ 70587, 70592, 4, // U+113BB..U+113C0 Extend
1217
+ 70594, 70594, 4, // U+113C2..U+113C2 Extend
1218
+ 70597, 70597, 4, // U+113C5..U+113C5 Extend
1219
+ 70599, 70601, 4, // U+113C7..U+113C9 Extend
1220
+ 70602, 70602, 8, // U+113CA..U+113CA SpacingMark
1221
+ 70604, 70605, 8, // U+113CC..U+113CD SpacingMark
1222
+ 70606, 70608, 4, // U+113CE..U+113D0 Extend
1223
+ 70609, 70609, 7, // U+113D1..U+113D1 Prepend
1224
+ 70610, 70610, 4, // U+113D2..U+113D2 Extend
1225
+ 70625, 70626, 4, // U+113E1..U+113E2 Extend
1226
+ 70709, 70711, 8, // U+11435..U+11437 SpacingMark
1227
+ 70712, 70719, 4, // U+11438..U+1143F Extend
1228
+ 70720, 70721, 8, // U+11440..U+11441 SpacingMark
1229
+ 70722, 70724, 4, // U+11442..U+11444 Extend
1230
+ 70725, 70725, 8, // U+11445..U+11445 SpacingMark
1231
+ 70726, 70726, 4, // U+11446..U+11446 Extend
1232
+ 70750, 70750, 4, // U+1145E..U+1145E Extend
1233
+ 70832, 70832, 4, // U+114B0..U+114B0 Extend
1234
+ 70833, 70834, 8, // U+114B1..U+114B2 SpacingMark
1235
+ 70835, 70840, 4, // U+114B3..U+114B8 Extend
1236
+ 70841, 70841, 8, // U+114B9..U+114B9 SpacingMark
1237
+ 70842, 70842, 4, // U+114BA..U+114BA Extend
1238
+ 70843, 70844, 8, // U+114BB..U+114BC SpacingMark
1239
+ 70845, 70845, 4, // U+114BD..U+114BD Extend
1240
+ 70846, 70846, 8, // U+114BE..U+114BE SpacingMark
1241
+ 70847, 70848, 4, // U+114BF..U+114C0 Extend
1242
+ 70849, 70849, 8, // U+114C1..U+114C1 SpacingMark
1243
+ 70850, 70851, 4, // U+114C2..U+114C3 Extend
1244
+ 71087, 71087, 4, // U+115AF..U+115AF Extend
1245
+ 71088, 71089, 8, // U+115B0..U+115B1 SpacingMark
1246
+ 71090, 71093, 4, // U+115B2..U+115B5 Extend
1247
+ 71096, 71099, 8, // U+115B8..U+115BB SpacingMark
1248
+ 71100, 71101, 4, // U+115BC..U+115BD Extend
1249
+ 71102, 71102, 8, // U+115BE..U+115BE SpacingMark
1250
+ 71103, 71104, 4, // U+115BF..U+115C0 Extend
1251
+ 71132, 71133, 4, // U+115DC..U+115DD Extend
1252
+ 71216, 71218, 8, // U+11630..U+11632 SpacingMark
1253
+ 71219, 71226, 4, // U+11633..U+1163A Extend
1254
+ 71227, 71228, 8, // U+1163B..U+1163C SpacingMark
1255
+ 71229, 71229, 4, // U+1163D..U+1163D Extend
1256
+ 71230, 71230, 8, // U+1163E..U+1163E SpacingMark
1257
+ 71231, 71232, 4, // U+1163F..U+11640 Extend
1258
+ 71339, 71339, 4, // U+116AB..U+116AB Extend
1259
+ 71340, 71340, 8, // U+116AC..U+116AC SpacingMark
1260
+ 71341, 71341, 4, // U+116AD..U+116AD Extend
1261
+ 71342, 71343, 8, // U+116AE..U+116AF SpacingMark
1262
+ 71344, 71351, 4, // U+116B0..U+116B7 Extend
1263
+ 71453, 71453, 4, // U+1171D..U+1171D Extend
1264
+ 71454, 71454, 8, // U+1171E..U+1171E SpacingMark
1265
+ 71455, 71455, 4, // U+1171F..U+1171F Extend
1266
+ 71458, 71461, 4, // U+11722..U+11725 Extend
1267
+ 71462, 71462, 8, // U+11726..U+11726 SpacingMark
1268
+ 71463, 71467, 4, // U+11727..U+1172B Extend
1269
+ 71724, 71726, 8, // U+1182C..U+1182E SpacingMark
1270
+ 71727, 71735, 4, // U+1182F..U+11837 Extend
1271
+ 71736, 71736, 8, // U+11838..U+11838 SpacingMark
1272
+ 71737, 71738, 4, // U+11839..U+1183A Extend
1273
+ 71984, 71984, 4, // U+11930..U+11930 Extend
1274
+ 71985, 71989, 8, // U+11931..U+11935 SpacingMark
1275
+ 71991, 71992, 8, // U+11937..U+11938 SpacingMark
1276
+ 71995, 71998, 4, // U+1193B..U+1193E Extend
1277
+ 71999, 71999, 7, // U+1193F..U+1193F Prepend
1278
+ 72000, 72000, 8, // U+11940..U+11940 SpacingMark
1279
+ 72001, 72001, 7, // U+11941..U+11941 Prepend
1280
+ 72002, 72002, 8, // U+11942..U+11942 SpacingMark
1281
+ 72003, 72003, 4, // U+11943..U+11943 Extend
1282
+ 72145, 72147, 8, // U+119D1..U+119D3 SpacingMark
1283
+ 72148, 72151, 4, // U+119D4..U+119D7 Extend
1284
+ 72154, 72155, 4, // U+119DA..U+119DB Extend
1285
+ 72156, 72159, 8, // U+119DC..U+119DF SpacingMark
1286
+ 72160, 72160, 4, // U+119E0..U+119E0 Extend
1287
+ 72164, 72164, 8, // U+119E4..U+119E4 SpacingMark
1288
+ 72193, 72202, 4, // U+11A01..U+11A0A Extend
1289
+ 72243, 72248, 4, // U+11A33..U+11A38 Extend
1290
+ 72249, 72249, 8, // U+11A39..U+11A39 SpacingMark
1291
+ 72250, 72250, 7, // U+11A3A..U+11A3A Prepend
1292
+ 72251, 72254, 4, // U+11A3B..U+11A3E Extend
1293
+ 72263, 72263, 4, // U+11A47..U+11A47 Extend
1294
+ 72273, 72278, 4, // U+11A51..U+11A56 Extend
1295
+ 72279, 72280, 8, // U+11A57..U+11A58 SpacingMark
1296
+ 72281, 72283, 4, // U+11A59..U+11A5B Extend
1297
+ 72324, 72329, 7, // U+11A84..U+11A89 Prepend
1298
+ 72330, 72342, 4, // U+11A8A..U+11A96 Extend
1299
+ 72343, 72343, 8, // U+11A97..U+11A97 SpacingMark
1300
+ 72344, 72345, 4, // U+11A98..U+11A99 Extend
1301
+ 72751, 72751, 8, // U+11C2F..U+11C2F SpacingMark
1302
+ 72752, 72758, 4, // U+11C30..U+11C36 Extend
1303
+ 72760, 72765, 4, // U+11C38..U+11C3D Extend
1304
+ 72766, 72766, 8, // U+11C3E..U+11C3E SpacingMark
1305
+ 72767, 72767, 4, // U+11C3F..U+11C3F Extend
1306
+ 72850, 72871, 4, // U+11C92..U+11CA7 Extend
1307
+ 72873, 72873, 8, // U+11CA9..U+11CA9 SpacingMark
1308
+ 72874, 72880, 4, // U+11CAA..U+11CB0 Extend
1309
+ 72881, 72881, 8, // U+11CB1..U+11CB1 SpacingMark
1310
+ 72882, 72883, 4, // U+11CB2..U+11CB3 Extend
1311
+ 72884, 72884, 8, // U+11CB4..U+11CB4 SpacingMark
1312
+ 72885, 72886, 4, // U+11CB5..U+11CB6 Extend
1313
+ 73009, 73014, 4, // U+11D31..U+11D36 Extend
1314
+ 73018, 73018, 4, // U+11D3A..U+11D3A Extend
1315
+ 73020, 73021, 4, // U+11D3C..U+11D3D Extend
1316
+ 73023, 73029, 4, // U+11D3F..U+11D45 Extend
1317
+ 73030, 73030, 7, // U+11D46..U+11D46 Prepend
1318
+ 73031, 73031, 4, // U+11D47..U+11D47 Extend
1319
+ 73098, 73102, 8, // U+11D8A..U+11D8E SpacingMark
1320
+ 73104, 73105, 4, // U+11D90..U+11D91 Extend
1321
+ 73107, 73108, 8, // U+11D93..U+11D94 SpacingMark
1322
+ 73109, 73109, 4, // U+11D95..U+11D95 Extend
1323
+ 73110, 73110, 8, // U+11D96..U+11D96 SpacingMark
1324
+ 73111, 73111, 4, // U+11D97..U+11D97 Extend
1325
+ 73459, 73460, 4, // U+11EF3..U+11EF4 Extend
1326
+ 73461, 73462, 8, // U+11EF5..U+11EF6 SpacingMark
1327
+ 73472, 73473, 4, // U+11F00..U+11F01 Extend
1328
+ 73474, 73474, 7, // U+11F02..U+11F02 Prepend
1329
+ 73475, 73475, 8, // U+11F03..U+11F03 SpacingMark
1330
+ 73524, 73525, 8, // U+11F34..U+11F35 SpacingMark
1331
+ 73526, 73530, 4, // U+11F36..U+11F3A Extend
1332
+ 73534, 73535, 8, // U+11F3E..U+11F3F SpacingMark
1333
+ 73536, 73538, 4, // U+11F40..U+11F42 Extend
1334
+ 73562, 73562, 4, // U+11F5A..U+11F5A Extend
1335
+ 78896, 78911, 3, // U+13430..U+1343F Control
1336
+ 78912, 78912, 4, // U+13440..U+13440 Extend
1337
+ 78919, 78933, 4, // U+13447..U+13455 Extend
1338
+ 90398, 90409, 4, // U+1611E..U+16129 Extend
1339
+ 90410, 90412, 8, // U+1612A..U+1612C SpacingMark
1340
+ 90413, 90415, 4, // U+1612D..U+1612F Extend
1341
+ 92912, 92916, 4, // U+16AF0..U+16AF4 Extend
1342
+ 92976, 92982, 4, // U+16B30..U+16B36 Extend
1343
+ 93539, 93539, 10, // U+16D63..U+16D63 V
1344
+ 93543, 93546, 10, // U+16D67..U+16D6A V
1345
+ 94031, 94031, 4, // U+16F4F..U+16F4F Extend
1346
+ 94033, 94087, 8, // U+16F51..U+16F87 SpacingMark
1347
+ 94095, 94098, 4, // U+16F8F..U+16F92 Extend
1348
+ 94180, 94180, 4, // U+16FE4..U+16FE4 Extend
1349
+ 94192, 94193, 4, // U+16FF0..U+16FF1 Extend
1350
+ 113821, 113822, 4, // U+1BC9D..U+1BC9E Extend
1351
+ 113824, 113827, 3, // U+1BCA0..U+1BCA3 Control
1352
+ 118528, 118573, 4, // U+1CF00..U+1CF2D Extend
1353
+ 118576, 118598, 4, // U+1CF30..U+1CF46 Extend
1354
+ 119141, 119145, 4, // U+1D165..U+1D169 Extend
1355
+ 119149, 119154, 4, // U+1D16D..U+1D172 Extend
1356
+ 119155, 119162, 3, // U+1D173..U+1D17A Control
1357
+ 119163, 119170, 4, // U+1D17B..U+1D182 Extend
1358
+ 119173, 119179, 4, // U+1D185..U+1D18B Extend
1359
+ 119210, 119213, 4, // U+1D1AA..U+1D1AD Extend
1360
+ 119362, 119364, 4, // U+1D242..U+1D244 Extend
1361
+ 121344, 121398, 4, // U+1DA00..U+1DA36 Extend
1362
+ 121403, 121452, 4, // U+1DA3B..U+1DA6C Extend
1363
+ 121461, 121461, 4, // U+1DA75..U+1DA75 Extend
1364
+ 121476, 121476, 4, // U+1DA84..U+1DA84 Extend
1365
+ 121499, 121503, 4, // U+1DA9B..U+1DA9F Extend
1366
+ 121505, 121519, 4, // U+1DAA1..U+1DAAF Extend
1367
+ 122880, 122886, 4, // U+1E000..U+1E006 Extend
1368
+ 122888, 122904, 4, // U+1E008..U+1E018 Extend
1369
+ 122907, 122913, 4, // U+1E01B..U+1E021 Extend
1370
+ 122915, 122916, 4, // U+1E023..U+1E024 Extend
1371
+ 122918, 122922, 4, // U+1E026..U+1E02A Extend
1372
+ 123023, 123023, 4, // U+1E08F..U+1E08F Extend
1373
+ 123184, 123190, 4, // U+1E130..U+1E136 Extend
1374
+ 123566, 123566, 4, // U+1E2AE..U+1E2AE Extend
1375
+ 123628, 123631, 4, // U+1E2EC..U+1E2EF Extend
1376
+ 124140, 124143, 4, // U+1E4EC..U+1E4EF Extend
1377
+ 124398, 124399, 4, // U+1E5EE..U+1E5EF Extend
1378
+ 125136, 125142, 4, // U+1E8D0..U+1E8D6 Extend
1379
+ 125252, 125258, 4, // U+1E944..U+1E94A Extend
1380
+ 127462, 127487, 6, // U+1F1E6..U+1F1FF Regional_Indicator
1381
+ 127995, 127999, 4, // U+1F3FB..U+1F3FF Extend
1382
+ 917504, 917535, 3, // U+E0000..U+E001F Control
1383
+ 917536, 917631, 4, // U+E0020..U+E007F Extend
1384
+ 917632, 917759, 3, // U+E0080..U+E00FF Control
1385
+ 917760, 917999, 4, // U+E0100..U+E01EF Extend
1386
+ 918000, 921599, 3, // U+E01F0..U+E0FFF Control
1387
+ ];
1388
+ /**
1389
+ * 字素断点属性区间表:EXT_PICT_TABLE
1390
+ * 由 scripts/gen-break-data.mjs 从 Unicode 16.0.0 官方数据生成,请勿手工修改。
1391
+ * 扁平结构 [start, end, type, ...],按 start 升序,类型编号见 src/index.ts 常量。
1392
+ */
1393
+ const EXT_PICT_TABLE = [
1394
+ 169, 169, 1, // U+00A9..U+00A9 Extended_Pictographic
1395
+ 174, 174, 1, // U+00AE..U+00AE Extended_Pictographic
1396
+ 8252, 8252, 1, // U+203C..U+203C Extended_Pictographic
1397
+ 8265, 8265, 1, // U+2049..U+2049 Extended_Pictographic
1398
+ 8482, 8482, 1, // U+2122..U+2122 Extended_Pictographic
1399
+ 8505, 8505, 1, // U+2139..U+2139 Extended_Pictographic
1400
+ 8596, 8601, 1, // U+2194..U+2199 Extended_Pictographic
1401
+ 8617, 8618, 1, // U+21A9..U+21AA Extended_Pictographic
1402
+ 8986, 8987, 1, // U+231A..U+231B Extended_Pictographic
1403
+ 9000, 9000, 1, // U+2328..U+2328 Extended_Pictographic
1404
+ 9096, 9096, 1, // U+2388..U+2388 Extended_Pictographic
1405
+ 9167, 9167, 1, // U+23CF..U+23CF Extended_Pictographic
1406
+ 9193, 9203, 1, // U+23E9..U+23F3 Extended_Pictographic
1407
+ 9208, 9210, 1, // U+23F8..U+23FA Extended_Pictographic
1408
+ 9410, 9410, 1, // U+24C2..U+24C2 Extended_Pictographic
1409
+ 9642, 9643, 1, // U+25AA..U+25AB Extended_Pictographic
1410
+ 9654, 9654, 1, // U+25B6..U+25B6 Extended_Pictographic
1411
+ 9664, 9664, 1, // U+25C0..U+25C0 Extended_Pictographic
1412
+ 9723, 9726, 1, // U+25FB..U+25FE Extended_Pictographic
1413
+ 9728, 9733, 1, // U+2600..U+2605 Extended_Pictographic
1414
+ 9735, 9746, 1, // U+2607..U+2612 Extended_Pictographic
1415
+ 9748, 9861, 1, // U+2614..U+2685 Extended_Pictographic
1416
+ 9872, 9989, 1, // U+2690..U+2705 Extended_Pictographic
1417
+ 9992, 10002, 1, // U+2708..U+2712 Extended_Pictographic
1418
+ 10004, 10004, 1, // U+2714..U+2714 Extended_Pictographic
1419
+ 10006, 10006, 1, // U+2716..U+2716 Extended_Pictographic
1420
+ 10013, 10013, 1, // U+271D..U+271D Extended_Pictographic
1421
+ 10017, 10017, 1, // U+2721..U+2721 Extended_Pictographic
1422
+ 10024, 10024, 1, // U+2728..U+2728 Extended_Pictographic
1423
+ 10035, 10036, 1, // U+2733..U+2734 Extended_Pictographic
1424
+ 10052, 10052, 1, // U+2744..U+2744 Extended_Pictographic
1425
+ 10055, 10055, 1, // U+2747..U+2747 Extended_Pictographic
1426
+ 10060, 10060, 1, // U+274C..U+274C Extended_Pictographic
1427
+ 10062, 10062, 1, // U+274E..U+274E Extended_Pictographic
1428
+ 10067, 10069, 1, // U+2753..U+2755 Extended_Pictographic
1429
+ 10071, 10071, 1, // U+2757..U+2757 Extended_Pictographic
1430
+ 10083, 10087, 1, // U+2763..U+2767 Extended_Pictographic
1431
+ 10133, 10135, 1, // U+2795..U+2797 Extended_Pictographic
1432
+ 10145, 10145, 1, // U+27A1..U+27A1 Extended_Pictographic
1433
+ 10160, 10160, 1, // U+27B0..U+27B0 Extended_Pictographic
1434
+ 10175, 10175, 1, // U+27BF..U+27BF Extended_Pictographic
1435
+ 10548, 10549, 1, // U+2934..U+2935 Extended_Pictographic
1436
+ 11013, 11015, 1, // U+2B05..U+2B07 Extended_Pictographic
1437
+ 11035, 11036, 1, // U+2B1B..U+2B1C Extended_Pictographic
1438
+ 11088, 11088, 1, // U+2B50..U+2B50 Extended_Pictographic
1439
+ 11093, 11093, 1, // U+2B55..U+2B55 Extended_Pictographic
1440
+ 12336, 12336, 1, // U+3030..U+3030 Extended_Pictographic
1441
+ 12349, 12349, 1, // U+303D..U+303D Extended_Pictographic
1442
+ 12951, 12951, 1, // U+3297..U+3297 Extended_Pictographic
1443
+ 12953, 12953, 1, // U+3299..U+3299 Extended_Pictographic
1444
+ 126976, 127231, 1, // U+1F000..U+1F0FF Extended_Pictographic
1445
+ 127245, 127247, 1, // U+1F10D..U+1F10F Extended_Pictographic
1446
+ 127279, 127279, 1, // U+1F12F..U+1F12F Extended_Pictographic
1447
+ 127340, 127345, 1, // U+1F16C..U+1F171 Extended_Pictographic
1448
+ 127358, 127359, 1, // U+1F17E..U+1F17F Extended_Pictographic
1449
+ 127374, 127374, 1, // U+1F18E..U+1F18E Extended_Pictographic
1450
+ 127377, 127386, 1, // U+1F191..U+1F19A Extended_Pictographic
1451
+ 127405, 127461, 1, // U+1F1AD..U+1F1E5 Extended_Pictographic
1452
+ 127489, 127503, 1, // U+1F201..U+1F20F Extended_Pictographic
1453
+ 127514, 127514, 1, // U+1F21A..U+1F21A Extended_Pictographic
1454
+ 127535, 127535, 1, // U+1F22F..U+1F22F Extended_Pictographic
1455
+ 127538, 127546, 1, // U+1F232..U+1F23A Extended_Pictographic
1456
+ 127548, 127551, 1, // U+1F23C..U+1F23F Extended_Pictographic
1457
+ 127561, 127994, 1, // U+1F249..U+1F3FA Extended_Pictographic
1458
+ 128000, 128317, 1, // U+1F400..U+1F53D Extended_Pictographic
1459
+ 128326, 128591, 1, // U+1F546..U+1F64F Extended_Pictographic
1460
+ 128640, 128767, 1, // U+1F680..U+1F6FF Extended_Pictographic
1461
+ 128884, 128895, 1, // U+1F774..U+1F77F Extended_Pictographic
1462
+ 128981, 129023, 1, // U+1F7D5..U+1F7FF Extended_Pictographic
1463
+ 129036, 129039, 1, // U+1F80C..U+1F80F Extended_Pictographic
1464
+ 129096, 129103, 1, // U+1F848..U+1F84F Extended_Pictographic
1465
+ 129114, 129119, 1, // U+1F85A..U+1F85F Extended_Pictographic
1466
+ 129160, 129167, 1, // U+1F888..U+1F88F Extended_Pictographic
1467
+ 129198, 129279, 1, // U+1F8AE..U+1F8FF Extended_Pictographic
1468
+ 129292, 129338, 1, // U+1F90C..U+1F93A Extended_Pictographic
1469
+ 129340, 129349, 1, // U+1F93C..U+1F945 Extended_Pictographic
1470
+ 129351, 129791, 1, // U+1F947..U+1FAFF Extended_Pictographic
1471
+ 130048, 131069, 1, // U+1FC00..U+1FFFD Extended_Pictographic
1472
+ ];
1473
+
1474
+ /**
1475
+ * 字素簇分割(Unicode UAX #29 extended grapheme clusters)
1476
+ *
1477
+ * 断点规则按 GB1-GB999 顺序短路判定:
1478
+ * GB3 CR × LF
1479
+ * GB4 (Control | CR | LF) ÷
1480
+ * GB5 ÷ (Control | CR | LF)
1481
+ * GB6 L × (L | V | LV | LVT)
1482
+ * GB7 (LV | V) × (V | T)
1483
+ * GB8 (LVT | T) × T
1484
+ * GB9 × (Extend | ZWJ)
1485
+ * GB9a × SpacingMark
1486
+ * GB9b Prepend ×
1487
+ * GB11 ExtPict Extend* ZWJ × ExtPict
1488
+ * GB12 sot (RI RI)* RI × RI
1489
+ * GB13 [^RI] (RI RI)* RI × RI
1490
+ * GB999 Any ÷ Any
1491
+ *
1492
+ * 属性数据来自 Unicode 16.0.0 官方文件,由 scripts/gen-break-data.mjs
1493
+ * 生成 src/data.ts(Unicode 版本升级时重新运行脚本即可)。
1494
+ */
1495
+ // Grapheme_Cluster_Break 属性编号(与 scripts/gen-break-data.mjs 的 TYPE_IDS 一致)
1496
+ const OTHER = 0;
1497
+ const CR = 1;
1498
+ const LF = 2;
1499
+ const CONTROL = 3;
1500
+ const EXTEND = 4;
1501
+ const ZWJ = 5;
1502
+ const REGIONAL_INDICATOR = 6;
1503
+ const PREPEND = 7;
1504
+ const SPACINGMARK = 8;
1505
+ const HANGUL_L = 9;
1506
+ const HANGUL_V = 10;
1507
+ const HANGUL_T = 11;
1508
+ const HANGUL_LV = 12;
1509
+ const HANGUL_LVT = 13;
1510
+ // GB11 匹配进度(双状态 NFA,码点可同时具备 ExtPict / Extend / ZWJ 多种属性,
1511
+ // 如 U+200D 既是 ZWJ 又是 ExtPict,肤色修饰符既是 Extend 又是 ExtPict):
1512
+ // pictChain - 后缀已匹配 ExtPict Extend*
1513
+ // pictZwj - 后缀已匹配 ExtPict Extend* ZWJ
1514
+ /** 在升序区间表中查找码点的属性,未命中返回 OTHER */
1515
+ function lookupType(table, codePoint) {
1516
+ let lo = 0;
1517
+ let hi = table.length / 3 - 1;
1518
+ while (lo <= hi) {
1519
+ const mid = (lo + hi) >> 1;
1520
+ if (codePoint < table[mid * 3]) {
1521
+ hi = mid - 1;
1522
+ }
1523
+ else if (codePoint > table[mid * 3 + 1]) {
1524
+ lo = mid + 1;
1525
+ }
1526
+ else {
1527
+ return table[mid * 3 + 2];
1528
+ }
1529
+ }
1530
+ return OTHER;
1531
+ }
1532
+ /**
1533
+ * 获取 Unicode 码点的字素断点属性
1534
+ * @param codePoint - Unicode 码点
1535
+ * @returns 属性类型编号
1536
+ */
1537
+ function getGraphemeType(codePoint) {
1538
+ return lookupType(BREAK_TABLE, codePoint);
1539
+ }
1540
+ /** 判断码点是否具有 Extended_Pictographic 属性(GB11 规则所需) */
1541
+ function isExtendedPictographic(codePoint) {
1542
+ return lookupType(EXT_PICT_TABLE, codePoint) === 1;
1543
+ }
1544
+ /** 获取 index 处码点的数值(index 须为码点起点,支持代理对) */
1545
+ function codePointAt(str, index) {
1546
+ const char = str.charCodeAt(index);
1547
+ if (char >= 0xd800 && char <= 0xdbff && index + 1 < str.length) {
1548
+ const next = str.charCodeAt(index + 1);
1549
+ if (next >= 0xdc00 && next <= 0xdfff) {
1550
+ return (char - 0xd800) * 0x400 + (next - 0xdc00) + 0x10000;
1551
+ }
1552
+ }
1553
+ return char;
1554
+ }
1555
+ /** 获取 index 处码点的 UTF-16 长度(1 或 2) */
1556
+ function codePointLength(str, index) {
1557
+ const char = str.charCodeAt(index);
1558
+ if (char >= 0xd800 && char <= 0xdbff && index + 1 < str.length) {
1559
+ const next = str.charCodeAt(index + 1);
1560
+ if (next >= 0xdc00 && next <= 0xdfff) {
1561
+ return 2;
1562
+ }
1563
+ }
1564
+ return 1;
1565
+ }
1566
+ /** 获取 index 前一个码点的起点(用于向左回溯,正确跨越代理对) */
1567
+ function prevCodePointStart(str, index) {
1568
+ const prev = str.charCodeAt(index - 1);
1569
+ if (prev >= 0xdc00 && prev <= 0xdfff && index >= 2) {
1570
+ const before = str.charCodeAt(index - 2);
1571
+ if (before >= 0xd800 && before <= 0xdbff) {
1572
+ return index - 2;
1573
+ }
1574
+ }
1575
+ return index - 1;
1576
+ }
1577
+ /** 前一码点是否为 Control / CR / LF(GB4 的判定集合) */
1578
+ function isControlLike(type) {
1579
+ return type === CR || type === LF || type === CONTROL;
1580
+ }
1581
+ /**
1582
+ * 依据 UAX #29 规则判定 prev 与 curr 之间是否为字素边界
1583
+ * @param prevType - 前一码点的属性
1584
+ * @param riOdd - 截至 prev 的连续 RI 个数是否为奇数(GB12/13)
1585
+ * @param pictZwj - GB11 链是否推进到 ExtPict Extend* ZWJ
1586
+ * @param currCP - 当前码点
1587
+ * @param currType - 当前码点的属性
1588
+ * @returns 是否为边界
1589
+ */
1590
+ function isBoundary(prevType, riOdd, pictZwj, currCP, currType) {
1591
+ // GB3: CR × LF
1592
+ if (prevType === CR && currType === LF)
1593
+ return false;
1594
+ // GB4: (Control | CR | LF) ÷ Any
1595
+ if (isControlLike(prevType))
1596
+ return true;
1597
+ // GB5: Any ÷ (Control | CR | LF)
1598
+ if (isControlLike(currType))
1599
+ return true;
1600
+ // GB6: L × (L | V | LV | LVT)
1601
+ if (prevType === HANGUL_L &&
1602
+ (currType === HANGUL_L || currType === HANGUL_V || currType === HANGUL_LV || currType === HANGUL_LVT)) {
1603
+ return false;
1604
+ }
1605
+ // GB7: (LV | V) × (V | T)
1606
+ if ((prevType === HANGUL_LV || prevType === HANGUL_V) && (currType === HANGUL_V || currType === HANGUL_T)) {
1607
+ return false;
1608
+ }
1609
+ // GB8: (LVT | T) × T
1610
+ if ((prevType === HANGUL_LVT || prevType === HANGUL_T) && currType === HANGUL_T) {
1611
+ return false;
1612
+ }
1613
+ // GB9: × (Extend | ZWJ)
1614
+ if (currType === EXTEND || currType === ZWJ)
1615
+ return false;
1616
+ // GB9a: × SpacingMark
1617
+ if (currType === SPACINGMARK)
1618
+ return false;
1619
+ // GB9b: Prepend ×
1620
+ if (prevType === PREPEND)
1621
+ return false;
1622
+ // GB11: ExtPict Extend* ZWJ × ExtPict
1623
+ if (pictZwj && isExtendedPictographic(currCP))
1624
+ return false;
1625
+ // GB12/13: 前面连续 RI 为奇数个时 RI × RI
1626
+ if (prevType === REGIONAL_INDICATOR && currType === REGIONAL_INDICATOR && riOdd)
1627
+ return false;
1628
+ // GB999: Any ÷ Any
1629
+ return true;
1630
+ }
1631
+ /** 推进 GB11 链进度(curr 已确定并入当前簇),返回 [pictChain, pictZwj] */
1632
+ function advancePictState(pictChain, currCP, currType) {
1633
+ // S2 可达:S1 && 当前是 ZWJ;S1 可达:当前是非 ZWJ 的 ExtPict(开启/重开链,
1634
+ // ZWJ 虽具 ExtPict 属性但不作链头,与 ICU/Intl.Segmenter 行为对齐)或 S1 && Extend(延续)
1635
+ const pictZwj = pictChain && currType === ZWJ;
1636
+ const chain = (isExtendedPictographic(currCP) && currType !== ZWJ) || (pictChain && currType === EXTEND);
1637
+ return [chain, pictZwj];
1638
+ }
1639
+ /**
1640
+ * 向左回溯,找到包含 start 的字素簇的起点
1641
+ * 用于支持 nextBreak 从任意位置(含簇中间)调用;
1642
+ * split 等内部调用总在簇起点,回溯立即结束
1643
+ */
1644
+ function findClusterStart(str, start) {
1645
+ while (start > 0) {
1646
+ const prevStart = prevCodePointStart(str, start);
1647
+ const prevType = getGraphemeType(codePointAt(str, prevStart));
1648
+ const currCP = codePointAt(str, start);
1649
+ const currType = getGraphemeType(currCP);
1650
+ let isStart;
1651
+ if (prevType === CR && currType === LF) {
1652
+ isStart = false; // GB3
1653
+ }
1654
+ else if (isControlLike(prevType)) {
1655
+ isStart = true; // GB4
1656
+ }
1657
+ else if (isControlLike(currType)) {
1658
+ isStart = true; // GB5
1659
+ }
1660
+ else if (prevType === HANGUL_L &&
1661
+ (currType === HANGUL_L || currType === HANGUL_V || currType === HANGUL_LV || currType === HANGUL_LVT)) {
1662
+ isStart = false; // GB6
1663
+ }
1664
+ else if ((prevType === HANGUL_LV || prevType === HANGUL_V) && (currType === HANGUL_V || currType === HANGUL_T)) {
1665
+ isStart = false; // GB7
1666
+ }
1667
+ else if ((prevType === HANGUL_LVT || prevType === HANGUL_T) && currType === HANGUL_T) {
1668
+ isStart = false; // GB8
1669
+ }
1670
+ else if (currType === EXTEND || currType === ZWJ) {
1671
+ isStart = false; // GB9
1672
+ }
1673
+ else if (currType === SPACINGMARK) {
1674
+ isStart = false; // GB9a
1675
+ }
1676
+ else if (prevType === PREPEND) {
1677
+ isStart = false; // GB9b
1678
+ }
1679
+ else if (prevType === ZWJ && isExtendedPictographic(currCP)) {
1680
+ // GB11 镜像:向左扫描,遇到非 ZWJ 的 ExtPict 则链成立不分隔;
1681
+ // 纯 Extend 继续跳过;ZWJ 与其他码点则链断裂(与正向状态机对称)
1682
+ let k = prevCodePointStart(str, prevStart);
1683
+ let chainFound = false;
1684
+ while (k >= 0) {
1685
+ const cp = codePointAt(str, k);
1686
+ const type = getGraphemeType(cp);
1687
+ if (type === ZWJ)
1688
+ break;
1689
+ if (isExtendedPictographic(cp)) {
1690
+ chainFound = true;
1691
+ break;
1692
+ }
1693
+ if (type !== EXTEND)
1694
+ break;
1695
+ k = prevCodePointStart(str, k);
1696
+ }
1697
+ isStart = !chainFound;
1698
+ }
1699
+ else if (prevType === REGIONAL_INDICATOR && currType === REGIONAL_INDICATOR) {
1700
+ // GB12/13:向左统计连续 RI(含 prev)个数,奇数表示 prev 未配对
1701
+ let count = 1;
1702
+ let k = prevCodePointStart(str, prevStart);
1703
+ while (k >= 0 && getGraphemeType(codePointAt(str, k)) === REGIONAL_INDICATOR) {
1704
+ count++;
1705
+ k = prevCodePointStart(str, k);
1706
+ }
1707
+ isStart = count % 2 === 0;
1708
+ }
1709
+ else {
1710
+ isStart = true; // GB999
1711
+ }
1712
+ if (isStart)
1713
+ return start;
1714
+ start = prevStart;
1715
+ }
1716
+ return start;
1717
+ }
1718
+ /**
1719
+ * 计算字符串的字素数量
1720
+ * @param str - 要计算的字符串
1721
+ * @returns 字素数量
1722
+ */
1723
+ function GetLength(str) {
1724
+ if (str.length === 0)
1725
+ return 0;
1726
+ let count = 0;
1727
+ let index = 0;
1728
+ while (index < str.length) {
1729
+ const breakIndex = NextBreak(str, index);
1730
+ count++;
1731
+ index = breakIndex;
1732
+ }
1733
+ return count;
1734
+ }
1735
+ /**
1736
+ * 查找下一个字素边界位置(严格大于 index 的最小边界)
1737
+ * @param str - 字符串
1738
+ * @param index - 当前位置,允许落在字素簇中间(内部会回溯到簇起点)
1739
+ * @returns 下一个字素边界位置
1740
+ */
1741
+ function NextBreak(str, index = 0) {
1742
+ if (index < 0)
1743
+ return 0;
1744
+ if (index >= str.length)
1745
+ return str.length;
1746
+ // 落在代理对中间时回退到码点起点
1747
+ let start = index;
1748
+ if (start > 0) {
1749
+ const prev = str.charCodeAt(start - 1);
1750
+ if (prev >= 0xd800 && prev <= 0xdbff) {
1751
+ const curr = str.charCodeAt(start);
1752
+ if (curr >= 0xdc00 && curr <= 0xdfff) {
1753
+ start -= 1;
1754
+ }
1755
+ }
1756
+ }
1757
+ // 回溯到包含 index 的字素簇的起点,从起点运行状态机
1758
+ start = findClusterStart(str, start);
1759
+ const firstCP = codePointAt(str, start);
1760
+ let prevType = getGraphemeType(firstCP);
1761
+ let riOdd = prevType === REGIONAL_INDICATOR;
1762
+ let pictChain = isExtendedPictographic(firstCP);
1763
+ let pictZwj = false;
1764
+ let i = start + codePointLength(str, start);
1765
+ while (i < str.length) {
1766
+ const currCP = codePointAt(str, i);
1767
+ const currType = getGraphemeType(currCP);
1768
+ if (isBoundary(prevType, riOdd, pictZwj, currCP, currType)) {
1769
+ // start 是包含 index 的簇的起点,簇终点必然大于 index
1770
+ return i;
1771
+ }
1772
+ riOdd = currType === REGIONAL_INDICATOR && (prevType !== REGIONAL_INDICATOR || !riOdd);
1773
+ [pictChain, pictZwj] = advancePictState(pictChain, currCP, currType);
1774
+ prevType = currType;
1775
+ i += codePointLength(str, i);
1776
+ }
1777
+ return str.length;
1778
+ }
1779
+ /**
1780
+ * 将字符串拆分为字素数组
1781
+ * @param str - 要拆分的字符串
1782
+ * @returns 字素数组
1783
+ */
1784
+ function Split(str) {
1785
+ const result = [];
1786
+ let index = 0;
1787
+ while (index < str.length) {
1788
+ const breakIndex = NextBreak(str, index);
1789
+ result.push(str.slice(index, breakIndex));
1790
+ index = breakIndex;
1791
+ }
1792
+ return result;
1793
+ }
1794
+ /**
1795
+ * 截取字符串
1796
+ * @param str - 字符串
1797
+ * @param start - 起始位置
1798
+ * @param end - 结束位置
1799
+ * @returns 截取的字符串
1800
+ */
1801
+ function Slice(str, start = 0, end) {
1802
+ if (str.length === 0)
1803
+ return str;
1804
+ start = Math.max(0, Math.floor(start));
1805
+ end = Math.max(0, Math.floor(end !== null && end !== void 0 ? end : str.length));
1806
+ if (start > end)
1807
+ [start, end] = [end, start];
1808
+ let count = end - start;
1809
+ if (count <= 0)
1810
+ return '';
1811
+ const result = [];
1812
+ let index = 0;
1813
+ let chars = 0;
1814
+ while (index < str.length) {
1815
+ const breakIndex = NextBreak(str, index);
1816
+ if (chars++ >= start) {
1817
+ result.push(str.slice(index, breakIndex));
1818
+ if (--count <= 0)
1819
+ break;
1820
+ }
1821
+ index = breakIndex;
1822
+ }
1823
+ return result.join('');
1824
+ }
1825
+ /**
1826
+ * 获取字符串的字素迭代器
1827
+ * @param str - 字符串
1828
+ * @returns 可迭代的字素迭代器
1829
+ */
1830
+ function Iterate(str) {
1831
+ let index = 0;
1832
+ return {
1833
+ next() {
1834
+ if (index >= str.length) {
1835
+ return { value: undefined, done: true };
1836
+ }
1837
+ const breakIndex = NextBreak(str, index);
1838
+ const value = str.slice(index, breakIndex);
1839
+ index = breakIndex;
1840
+ return { value, done: false };
1841
+ },
1842
+ [Symbol.iterator]() {
1843
+ return this;
1844
+ },
1845
+ };
1846
+ }
1847
+ /**
1848
+ * 遍历字符串的每个字素
1849
+ * @param str - 字符串
1850
+ * @param callback - 回调函数
1851
+ */
1852
+ function Each(str, callback) {
1853
+ for (const grapheme of Iterate(str)) {
1854
+ callback(grapheme);
1855
+ }
1856
+ }
1857
+ /**
1858
+ * 获取字符串指定位置的字素
1859
+ * @param str - 字符串
1860
+ * @param index - 字素索引
1861
+ * @returns 指定位置的字素,如果不存在则返回 undefined
1862
+ */
1863
+ function Pick(str, index) {
1864
+ let count = 0;
1865
+ for (const grapheme of Iterate(str)) {
1866
+ if (count === index) {
1867
+ return grapheme;
1868
+ }
1869
+ count++;
1870
+ }
1871
+ return undefined;
1872
+ }
1873
+ /**
1874
+ * 截断字符串的字素
1875
+ * @param str - 字符串
1876
+ * @param length - 截断长度
1877
+ * @param ellipsis - 省略号,默认为 "..."
1878
+ * @returns 截断后的字符串
1879
+ */
1880
+ function Truncate(str, length, ellipsis = '...') {
1881
+ let result = '';
1882
+ let count = 0;
1883
+ for (const grapheme of Iterate(str)) {
1884
+ if (count >= length) {
1885
+ break;
1886
+ }
1887
+ result += grapheme;
1888
+ count++;
1889
+ }
1890
+ return result + ellipsis;
1891
+ }
1892
+
1893
+ export { Each, GetLength, Iterate, NextBreak, Pick, Slice, Split, Truncate };