]>
Commit | Line | Data |
---|---|---|
48663c56 | 1 | // Generated by scripts/mapgen.py |
e1599b0c | 2 | // 2019-08-31 |
48663c56 XL |
3 | |
4 | use super::fold::Fold; | |
5 | ||
74b04a01 | 6 | use core::char; |
48663c56 | 7 | pub fn lookup(orig: char) -> Fold { |
e1599b0c XL |
8 | // The code below is is intended to reduce the binary size from that of a simple 1:1 lookup table. |
9 | // It exploits two facts: | |
10 | // 1. Many of the mappings form ranges mapped to other ranges. | |
11 | // To benefit from this, we match on ranges instead of single numbers. | |
12 | // Alone, this decreases the binary size but results in performance regression over the simple 1:1 lookup. | |
13 | // 2. Most of the mappings are from relatively small chars (0 - 0x2CFF). | |
14 | // To benefit from this, we use a jump table based on the high byte for this range. | |
15 | // This more than recovers the performance regression from exploting fact #1, at least in the tested benchmark. | |
16 | let from = orig as u32; | |
17 | if from <= 0x2CFF { | |
18 | let from = from as u16; | |
19 | let high_byte = (from >> 8) as u8; | |
20 | let low_byte = (from & 0xff) as u8; | |
21 | let single_char: u16 = match high_byte { | |
22 | 0x00 => { | |
23 | match low_byte { | |
24 | x @ _ if 0x41 <= x && x <= 0x5a => from.wrapping_add(0x0020), | |
25 | 0xb5 => 0x03bc, | |
26 | x @ _ if 0xc0 <= x && x <= 0xd6 => from.wrapping_add(0x0020), | |
27 | x @ _ if 0xd8 <= x && x <= 0xde => from.wrapping_add(0x0020), | |
28 | 0xdf => return Fold::Two('\u{0073}', '\u{0073}',), | |
29 | _ => from | |
30 | } | |
31 | } | |
32 | 0x01 => { | |
33 | match low_byte { | |
34 | x @ _ if x <= 0x2e => (from | 1), | |
35 | 0x30 => return Fold::Two('\u{0069}', '\u{0307}',), | |
36 | x @ _ if 0x32 <= x && x <= 0x36 => (from | 1), | |
37 | x @ _ if 0x39 <= x && x <= 0x47 => ((from+1) & !1), | |
38 | 0x49 => return Fold::Two('\u{02bc}', '\u{006e}',), | |
39 | x @ _ if 0x4a <= x && x <= 0x76 => (from | 1), | |
40 | 0x78 => 0x00ff, | |
41 | x @ _ if 0x79 <= x && x <= 0x7d => ((from+1) & !1), | |
42 | 0x7f => 0x0073, | |
43 | 0x81 => 0x0253, | |
44 | x @ _ if 0x82 <= x && x <= 0x84 => (from | 1), | |
45 | 0x86 => 0x0254, | |
46 | 0x87 => 0x0188, | |
47 | x @ _ if 0x89 <= x && x <= 0x8a => from.wrapping_add(0x00cd), | |
48 | 0x8b => 0x018c, | |
49 | 0x8e => 0x01dd, | |
50 | 0x8f => 0x0259, | |
51 | 0x90 => 0x025b, | |
52 | 0x91 => 0x0192, | |
53 | 0x93 => 0x0260, | |
54 | 0x94 => 0x0263, | |
55 | 0x96 => 0x0269, | |
56 | 0x97 => 0x0268, | |
57 | 0x98 => 0x0199, | |
58 | 0x9c => 0x026f, | |
59 | 0x9d => 0x0272, | |
60 | 0x9f => 0x0275, | |
61 | x @ _ if 0xa0 <= x && x <= 0xa4 => (from | 1), | |
62 | 0xa6 => 0x0280, | |
63 | 0xa7 => 0x01a8, | |
64 | 0xa9 => 0x0283, | |
65 | 0xac => 0x01ad, | |
66 | 0xae => 0x0288, | |
67 | 0xaf => 0x01b0, | |
68 | x @ _ if 0xb1 <= x && x <= 0xb2 => from.wrapping_add(0x00d9), | |
69 | x @ _ if 0xb3 <= x && x <= 0xb5 => ((from+1) & !1), | |
70 | 0xb7 => 0x0292, | |
71 | 0xb8 => 0x01b9, | |
72 | 0xbc => 0x01bd, | |
73 | 0xc4 => 0x01c6, | |
74 | 0xc5 => 0x01c6, | |
75 | 0xc7 => 0x01c9, | |
76 | 0xc8 => 0x01c9, | |
77 | 0xca => 0x01cc, | |
78 | x @ _ if 0xcb <= x && x <= 0xdb => ((from+1) & !1), | |
79 | x @ _ if 0xde <= x && x <= 0xee => (from | 1), | |
80 | 0xf0 => return Fold::Two('\u{006a}', '\u{030c}',), | |
81 | 0xf1 => 0x01f3, | |
82 | x @ _ if 0xf2 <= x && x <= 0xf4 => (from | 1), | |
83 | 0xf6 => 0x0195, | |
84 | 0xf7 => 0x01bf, | |
85 | x @ _ if 0xf8 <= x => (from | 1), | |
86 | _ => from | |
87 | } | |
88 | } | |
89 | 0x02 => { | |
90 | match low_byte { | |
91 | x @ _ if x <= 0x1e => (from | 1), | |
92 | 0x20 => 0x019e, | |
93 | x @ _ if 0x22 <= x && x <= 0x32 => (from | 1), | |
94 | 0x3a => 0x2c65, | |
95 | 0x3b => 0x023c, | |
96 | 0x3d => 0x019a, | |
97 | 0x3e => 0x2c66, | |
98 | 0x41 => 0x0242, | |
99 | 0x43 => 0x0180, | |
100 | 0x44 => 0x0289, | |
101 | 0x45 => 0x028c, | |
102 | x @ _ if 0x46 <= x && x <= 0x4e => (from | 1), | |
103 | _ => from | |
104 | } | |
105 | } | |
106 | 0x03 => { | |
107 | match low_byte { | |
108 | 0x45 => 0x03b9, | |
109 | x @ _ if 0x70 <= x && x <= 0x72 => (from | 1), | |
110 | 0x76 => 0x0377, | |
111 | 0x7f => 0x03f3, | |
112 | 0x86 => 0x03ac, | |
113 | x @ _ if 0x88 <= x && x <= 0x8a => from.wrapping_add(0x0025), | |
114 | 0x8c => 0x03cc, | |
115 | x @ _ if 0x8e <= x && x <= 0x8f => from.wrapping_add(0x003f), | |
116 | 0x90 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), | |
117 | x @ _ if 0x91 <= x && x <= 0xa1 => from.wrapping_add(0x0020), | |
118 | x @ _ if 0xa3 <= x && x <= 0xab => from.wrapping_add(0x0020), | |
119 | 0xb0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), | |
120 | 0xc2 => 0x03c3, | |
121 | 0xcf => 0x03d7, | |
122 | 0xd0 => 0x03b2, | |
123 | 0xd1 => 0x03b8, | |
124 | 0xd5 => 0x03c6, | |
125 | 0xd6 => 0x03c0, | |
126 | x @ _ if 0xd8 <= x && x <= 0xee => (from | 1), | |
127 | 0xf0 => 0x03ba, | |
128 | 0xf1 => 0x03c1, | |
129 | 0xf4 => 0x03b8, | |
130 | 0xf5 => 0x03b5, | |
131 | 0xf7 => 0x03f8, | |
132 | 0xf9 => 0x03f2, | |
133 | 0xfa => 0x03fb, | |
134 | x @ _ if 0xfd <= x => from.wrapping_sub(0x0082), | |
135 | _ => from | |
136 | } | |
137 | } | |
138 | 0x04 => { | |
139 | match low_byte { | |
140 | x @ _ if x <= 0x0f => from.wrapping_add(0x0050), | |
141 | x @ _ if 0x10 <= x && x <= 0x2f => from.wrapping_add(0x0020), | |
142 | x @ _ if 0x60 <= x && x <= 0x80 => (from | 1), | |
143 | x @ _ if 0x8a <= x && x <= 0xbe => (from | 1), | |
144 | 0xc0 => 0x04cf, | |
145 | x @ _ if 0xc1 <= x && x <= 0xcd => ((from+1) & !1), | |
146 | x @ _ if 0xd0 <= x => (from | 1), | |
147 | _ => from | |
148 | } | |
149 | } | |
150 | 0x05 => { | |
151 | match low_byte { | |
152 | x @ _ if x <= 0x2e => (from | 1), | |
153 | x @ _ if 0x31 <= x && x <= 0x56 => from.wrapping_add(0x0030), | |
154 | 0x87 => return Fold::Two('\u{0565}', '\u{0582}',), | |
155 | _ => from | |
156 | } | |
157 | } | |
158 | 0x06 => { | |
159 | from | |
160 | } | |
161 | 0x07 => { | |
162 | from | |
163 | } | |
164 | 0x08 => { | |
165 | from | |
166 | } | |
167 | 0x09 => { | |
168 | from | |
169 | } | |
170 | 0x0a => { | |
171 | from | |
172 | } | |
173 | 0x0b => { | |
174 | from | |
175 | } | |
176 | 0x0c => { | |
177 | from | |
178 | } | |
179 | 0x0d => { | |
180 | from | |
181 | } | |
182 | 0x0e => { | |
183 | from | |
184 | } | |
185 | 0x0f => { | |
186 | from | |
187 | } | |
188 | 0x10 => { | |
189 | match low_byte { | |
190 | x @ _ if 0xa0 <= x && x <= 0xc5 => from.wrapping_add(0x1c60), | |
191 | 0xc7 => 0x2d27, | |
192 | 0xcd => 0x2d2d, | |
193 | _ => from | |
194 | } | |
195 | } | |
196 | 0x11 => { | |
197 | from | |
198 | } | |
199 | 0x12 => { | |
200 | from | |
201 | } | |
202 | 0x13 => { | |
203 | match low_byte { | |
204 | x @ _ if 0xf8 <= x && x <= 0xfd => from.wrapping_sub(0x0008), | |
205 | _ => from | |
206 | } | |
207 | } | |
208 | 0x14 => { | |
209 | from | |
210 | } | |
211 | 0x15 => { | |
212 | from | |
213 | } | |
214 | 0x16 => { | |
215 | from | |
216 | } | |
217 | 0x17 => { | |
218 | from | |
219 | } | |
220 | 0x18 => { | |
221 | from | |
222 | } | |
223 | 0x19 => { | |
224 | from | |
225 | } | |
226 | 0x1a => { | |
227 | from | |
228 | } | |
229 | 0x1b => { | |
230 | from | |
231 | } | |
232 | 0x1c => { | |
233 | match low_byte { | |
234 | 0x80 => 0x0432, | |
235 | 0x81 => 0x0434, | |
236 | 0x82 => 0x043e, | |
237 | x @ _ if 0x83 <= x && x <= 0x84 => from.wrapping_sub(0x1842), | |
238 | 0x85 => 0x0442, | |
239 | 0x86 => 0x044a, | |
240 | 0x87 => 0x0463, | |
241 | 0x88 => 0xa64b, | |
242 | x @ _ if 0x90 <= x && x <= 0xba => from.wrapping_sub(0x0bc0), | |
243 | x @ _ if 0xbd <= x && x <= 0xbf => from.wrapping_sub(0x0bc0), | |
244 | _ => from | |
245 | } | |
246 | } | |
247 | 0x1d => { | |
248 | from | |
249 | } | |
250 | 0x1e => { | |
251 | match low_byte { | |
252 | x @ _ if x <= 0x94 => (from | 1), | |
253 | 0x96 => return Fold::Two('\u{0068}', '\u{0331}',), | |
254 | 0x97 => return Fold::Two('\u{0074}', '\u{0308}',), | |
255 | 0x98 => return Fold::Two('\u{0077}', '\u{030a}',), | |
256 | 0x99 => return Fold::Two('\u{0079}', '\u{030a}',), | |
257 | 0x9a => return Fold::Two('\u{0061}', '\u{02be}',), | |
258 | 0x9b => 0x1e61, | |
259 | 0x9e => return Fold::Two('\u{0073}', '\u{0073}',), | |
260 | x @ _ if 0xa0 <= x && x <= 0xfe => (from | 1), | |
261 | _ => from | |
262 | } | |
263 | } | |
264 | 0x1f => { | |
265 | match low_byte { | |
266 | x @ _ if 0x08 <= x && x <= 0x0f => from.wrapping_sub(0x0008), | |
267 | x @ _ if 0x18 <= x && x <= 0x1d => from.wrapping_sub(0x0008), | |
268 | x @ _ if 0x28 <= x && x <= 0x2f => from.wrapping_sub(0x0008), | |
269 | x @ _ if 0x38 <= x && x <= 0x3f => from.wrapping_sub(0x0008), | |
270 | x @ _ if 0x48 <= x && x <= 0x4d => from.wrapping_sub(0x0008), | |
271 | 0x50 => return Fold::Two('\u{03c5}', '\u{0313}',), | |
272 | 0x52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}',), | |
273 | 0x54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}',), | |
274 | 0x56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}',), | |
275 | x @ _ if 0x59 <= x && x <= 0x5f => if (from & 1) == 1 { from.wrapping_sub(0x0008) } else { from }, | |
276 | x @ _ if 0x68 <= x && x <= 0x6f => from.wrapping_sub(0x0008), | |
277 | 0x80 => return Fold::Two('\u{1f00}', '\u{03b9}',), | |
278 | 0x81 => return Fold::Two('\u{1f01}', '\u{03b9}',), | |
279 | 0x82 => return Fold::Two('\u{1f02}', '\u{03b9}',), | |
280 | 0x83 => return Fold::Two('\u{1f03}', '\u{03b9}',), | |
281 | 0x84 => return Fold::Two('\u{1f04}', '\u{03b9}',), | |
282 | 0x85 => return Fold::Two('\u{1f05}', '\u{03b9}',), | |
283 | 0x86 => return Fold::Two('\u{1f06}', '\u{03b9}',), | |
284 | 0x87 => return Fold::Two('\u{1f07}', '\u{03b9}',), | |
285 | 0x88 => return Fold::Two('\u{1f00}', '\u{03b9}',), | |
286 | 0x89 => return Fold::Two('\u{1f01}', '\u{03b9}',), | |
287 | 0x8a => return Fold::Two('\u{1f02}', '\u{03b9}',), | |
288 | 0x8b => return Fold::Two('\u{1f03}', '\u{03b9}',), | |
289 | 0x8c => return Fold::Two('\u{1f04}', '\u{03b9}',), | |
290 | 0x8d => return Fold::Two('\u{1f05}', '\u{03b9}',), | |
291 | 0x8e => return Fold::Two('\u{1f06}', '\u{03b9}',), | |
292 | 0x8f => return Fold::Two('\u{1f07}', '\u{03b9}',), | |
293 | 0x90 => return Fold::Two('\u{1f20}', '\u{03b9}',), | |
294 | 0x91 => return Fold::Two('\u{1f21}', '\u{03b9}',), | |
295 | 0x92 => return Fold::Two('\u{1f22}', '\u{03b9}',), | |
296 | 0x93 => return Fold::Two('\u{1f23}', '\u{03b9}',), | |
297 | 0x94 => return Fold::Two('\u{1f24}', '\u{03b9}',), | |
298 | 0x95 => return Fold::Two('\u{1f25}', '\u{03b9}',), | |
299 | 0x96 => return Fold::Two('\u{1f26}', '\u{03b9}',), | |
300 | 0x97 => return Fold::Two('\u{1f27}', '\u{03b9}',), | |
301 | 0x98 => return Fold::Two('\u{1f20}', '\u{03b9}',), | |
302 | 0x99 => return Fold::Two('\u{1f21}', '\u{03b9}',), | |
303 | 0x9a => return Fold::Two('\u{1f22}', '\u{03b9}',), | |
304 | 0x9b => return Fold::Two('\u{1f23}', '\u{03b9}',), | |
305 | 0x9c => return Fold::Two('\u{1f24}', '\u{03b9}',), | |
306 | 0x9d => return Fold::Two('\u{1f25}', '\u{03b9}',), | |
307 | 0x9e => return Fold::Two('\u{1f26}', '\u{03b9}',), | |
308 | 0x9f => return Fold::Two('\u{1f27}', '\u{03b9}',), | |
309 | 0xa0 => return Fold::Two('\u{1f60}', '\u{03b9}',), | |
310 | 0xa1 => return Fold::Two('\u{1f61}', '\u{03b9}',), | |
311 | 0xa2 => return Fold::Two('\u{1f62}', '\u{03b9}',), | |
312 | 0xa3 => return Fold::Two('\u{1f63}', '\u{03b9}',), | |
313 | 0xa4 => return Fold::Two('\u{1f64}', '\u{03b9}',), | |
314 | 0xa5 => return Fold::Two('\u{1f65}', '\u{03b9}',), | |
315 | 0xa6 => return Fold::Two('\u{1f66}', '\u{03b9}',), | |
316 | 0xa7 => return Fold::Two('\u{1f67}', '\u{03b9}',), | |
317 | 0xa8 => return Fold::Two('\u{1f60}', '\u{03b9}',), | |
318 | 0xa9 => return Fold::Two('\u{1f61}', '\u{03b9}',), | |
319 | 0xaa => return Fold::Two('\u{1f62}', '\u{03b9}',), | |
320 | 0xab => return Fold::Two('\u{1f63}', '\u{03b9}',), | |
321 | 0xac => return Fold::Two('\u{1f64}', '\u{03b9}',), | |
322 | 0xad => return Fold::Two('\u{1f65}', '\u{03b9}',), | |
323 | 0xae => return Fold::Two('\u{1f66}', '\u{03b9}',), | |
324 | 0xaf => return Fold::Two('\u{1f67}', '\u{03b9}',), | |
325 | 0xb2 => return Fold::Two('\u{1f70}', '\u{03b9}',), | |
326 | 0xb3 => return Fold::Two('\u{03b1}', '\u{03b9}',), | |
327 | 0xb4 => return Fold::Two('\u{03ac}', '\u{03b9}',), | |
328 | 0xb6 => return Fold::Two('\u{03b1}', '\u{0342}',), | |
329 | 0xb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}',), | |
330 | x @ _ if 0xb8 <= x && x <= 0xb9 => from.wrapping_sub(0x0008), | |
331 | x @ _ if 0xba <= x && x <= 0xbb => from.wrapping_sub(0x004a), | |
332 | 0xbc => return Fold::Two('\u{03b1}', '\u{03b9}',), | |
333 | 0xbe => 0x03b9, | |
334 | 0xc2 => return Fold::Two('\u{1f74}', '\u{03b9}',), | |
335 | 0xc3 => return Fold::Two('\u{03b7}', '\u{03b9}',), | |
336 | 0xc4 => return Fold::Two('\u{03ae}', '\u{03b9}',), | |
337 | 0xc6 => return Fold::Two('\u{03b7}', '\u{0342}',), | |
338 | 0xc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}',), | |
339 | x @ _ if 0xc8 <= x && x <= 0xcb => from.wrapping_sub(0x0056), | |
340 | 0xcc => return Fold::Two('\u{03b7}', '\u{03b9}',), | |
341 | 0xd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}',), | |
342 | 0xd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), | |
343 | 0xd6 => return Fold::Two('\u{03b9}', '\u{0342}',), | |
344 | 0xd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}',), | |
345 | x @ _ if 0xd8 <= x && x <= 0xd9 => from.wrapping_sub(0x0008), | |
346 | x @ _ if 0xda <= x && x <= 0xdb => from.wrapping_sub(0x0064), | |
347 | 0xe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}',), | |
348 | 0xe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), | |
349 | 0xe4 => return Fold::Two('\u{03c1}', '\u{0313}',), | |
350 | 0xe6 => return Fold::Two('\u{03c5}', '\u{0342}',), | |
351 | 0xe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}',), | |
352 | x @ _ if 0xe8 <= x && x <= 0xe9 => from.wrapping_sub(0x0008), | |
353 | x @ _ if 0xea <= x && x <= 0xeb => from.wrapping_sub(0x0070), | |
354 | 0xec => 0x1fe5, | |
355 | 0xf2 => return Fold::Two('\u{1f7c}', '\u{03b9}',), | |
356 | 0xf3 => return Fold::Two('\u{03c9}', '\u{03b9}',), | |
357 | 0xf4 => return Fold::Two('\u{03ce}', '\u{03b9}',), | |
358 | 0xf6 => return Fold::Two('\u{03c9}', '\u{0342}',), | |
359 | 0xf7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}',), | |
360 | x @ _ if 0xf8 <= x && x <= 0xf9 => from.wrapping_sub(0x0080), | |
361 | x @ _ if 0xfa <= x && x <= 0xfb => from.wrapping_sub(0x007e), | |
362 | 0xfc => return Fold::Two('\u{03c9}', '\u{03b9}',), | |
363 | _ => from | |
364 | } | |
365 | } | |
366 | 0x20 => { | |
367 | from | |
368 | } | |
369 | 0x21 => { | |
370 | match low_byte { | |
371 | 0x26 => 0x03c9, | |
372 | 0x2a => 0x006b, | |
373 | 0x2b => 0x00e5, | |
374 | 0x32 => 0x214e, | |
375 | x @ _ if 0x60 <= x && x <= 0x6f => from.wrapping_add(0x0010), | |
376 | 0x83 => 0x2184, | |
377 | _ => from | |
378 | } | |
379 | } | |
380 | 0x22 => { | |
381 | from | |
382 | } | |
383 | 0x23 => { | |
384 | from | |
385 | } | |
386 | 0x24 => { | |
387 | match low_byte { | |
388 | x @ _ if 0xb6 <= x && x <= 0xcf => from.wrapping_add(0x001a), | |
389 | _ => from | |
390 | } | |
391 | } | |
392 | 0x25 => { | |
393 | from | |
394 | } | |
395 | 0x26 => { | |
396 | from | |
397 | } | |
398 | 0x27 => { | |
399 | from | |
400 | } | |
401 | 0x28 => { | |
402 | from | |
403 | } | |
404 | 0x29 => { | |
405 | from | |
406 | } | |
407 | 0x2a => { | |
408 | from | |
409 | } | |
410 | 0x2b => { | |
411 | from | |
412 | } | |
413 | 0x2c => { | |
414 | match low_byte { | |
415 | x @ _ if x <= 0x2e => from.wrapping_add(0x0030), | |
416 | 0x60 => 0x2c61, | |
417 | 0x62 => 0x026b, | |
418 | 0x63 => 0x1d7d, | |
419 | 0x64 => 0x027d, | |
420 | x @ _ if 0x67 <= x && x <= 0x6b => ((from+1) & !1), | |
421 | 0x6d => 0x0251, | |
422 | 0x6e => 0x0271, | |
423 | 0x6f => 0x0250, | |
424 | 0x70 => 0x0252, | |
425 | 0x72 => 0x2c73, | |
426 | 0x75 => 0x2c76, | |
427 | x @ _ if 0x7e <= x && x <= 0x7f => from.wrapping_sub(0x2a3f), | |
428 | x @ _ if 0x80 <= x && x <= 0xe2 => (from | 1), | |
429 | x @ _ if 0xeb <= x && x <= 0xed => ((from+1) & !1), | |
430 | 0xf2 => 0x2cf3, | |
431 | _ => from | |
432 | } | |
433 | } | |
434 | _ => from | |
435 | }; | |
436 | Fold::One( char::from_u32(single_char as u32).unwrap_or(orig) ) | |
437 | } else { | |
438 | let single_char: u32 = match from { | |
439 | x @ _ if 0xa640 <= x && x <= 0xa66c => (from | 1), | |
440 | x @ _ if 0xa680 <= x && x <= 0xa69a => (from | 1), | |
441 | x @ _ if 0xa722 <= x && x <= 0xa72e => (from | 1), | |
442 | x @ _ if 0xa732 <= x && x <= 0xa76e => (from | 1), | |
443 | x @ _ if 0xa779 <= x && x <= 0xa77b => ((from+1) & !1), | |
444 | 0xa77d => 0x1d79, | |
445 | x @ _ if 0xa77e <= x && x <= 0xa786 => (from | 1), | |
446 | 0xa78b => 0xa78c, | |
447 | 0xa78d => 0x0265, | |
448 | x @ _ if 0xa790 <= x && x <= 0xa792 => (from | 1), | |
449 | x @ _ if 0xa796 <= x && x <= 0xa7a8 => (from | 1), | |
450 | 0xa7aa => 0x0266, | |
451 | 0xa7ab => 0x025c, | |
452 | 0xa7ac => 0x0261, | |
453 | 0xa7ad => 0x026c, | |
454 | 0xa7ae => 0x026a, | |
455 | 0xa7b0 => 0x029e, | |
456 | 0xa7b1 => 0x0287, | |
457 | 0xa7b2 => 0x029d, | |
458 | 0xa7b3 => 0xab53, | |
459 | x @ _ if 0xa7b4 <= x && x <= 0xa7be => (from | 1), | |
460 | 0xa7c2 => 0xa7c3, | |
461 | 0xa7c4 => 0xa794, | |
462 | 0xa7c5 => 0x0282, | |
463 | 0xa7c6 => 0x1d8e, | |
464 | x @ _ if 0xab70 <= x && x <= 0xabbf => from.wrapping_sub(0x97d0), | |
465 | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}',), | |
466 | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}',), | |
467 | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}',), | |
468 | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}',), | |
469 | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}',), | |
470 | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}',), | |
471 | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}',), | |
472 | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}',), | |
473 | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}',), | |
474 | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}',), | |
475 | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}',), | |
476 | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}',), | |
477 | x @ _ if 0xff21 <= x && x <= 0xff3a => from.wrapping_add(0x0020), | |
478 | x @ _ if 0x10400 <= x && x <= 0x10427 => from.wrapping_add(0x0028), | |
479 | x @ _ if 0x104b0 <= x && x <= 0x104d3 => from.wrapping_add(0x0028), | |
480 | x @ _ if 0x10c80 <= x && x <= 0x10cb2 => from.wrapping_add(0x0040), | |
481 | x @ _ if 0x118a0 <= x && x <= 0x118bf => from.wrapping_add(0x0020), | |
482 | x @ _ if 0x16e40 <= x && x <= 0x16e5f => from.wrapping_add(0x0020), | |
483 | x @ _ if 0x1e900 <= x && x <= 0x1e921 => from.wrapping_add(0x0022), | |
484 | _ => from | |
485 | }; | |
486 | Fold::One( char::from_u32(single_char).unwrap_or(orig) ) | |
487 | } | |
488 | } | |
489 | ||
490 | #[test] | |
491 | fn lookup_consistency() { | |
492 | fn lookup_naive(orig: char) -> Fold { | |
493 | let single_char = match orig as u32 { | |
494 | 0x0041 => 0x0061, | |
495 | 0x0042 => 0x0062, | |
496 | 0x0043 => 0x0063, | |
497 | 0x0044 => 0x0064, | |
498 | 0x0045 => 0x0065, | |
499 | 0x0046 => 0x0066, | |
500 | 0x0047 => 0x0067, | |
501 | 0x0048 => 0x0068, | |
502 | 0x0049 => 0x0069, | |
503 | 0x004a => 0x006a, | |
504 | 0x004b => 0x006b, | |
505 | 0x004c => 0x006c, | |
506 | 0x004d => 0x006d, | |
507 | 0x004e => 0x006e, | |
508 | 0x004f => 0x006f, | |
509 | 0x0050 => 0x0070, | |
510 | 0x0051 => 0x0071, | |
511 | 0x0052 => 0x0072, | |
512 | 0x0053 => 0x0073, | |
513 | 0x0054 => 0x0074, | |
514 | 0x0055 => 0x0075, | |
515 | 0x0056 => 0x0076, | |
516 | 0x0057 => 0x0077, | |
517 | 0x0058 => 0x0078, | |
518 | 0x0059 => 0x0079, | |
519 | 0x005a => 0x007a, | |
520 | 0x00b5 => 0x03bc, | |
521 | 0x00c0 => 0x00e0, | |
522 | 0x00c1 => 0x00e1, | |
523 | 0x00c2 => 0x00e2, | |
524 | 0x00c3 => 0x00e3, | |
525 | 0x00c4 => 0x00e4, | |
526 | 0x00c5 => 0x00e5, | |
527 | 0x00c6 => 0x00e6, | |
528 | 0x00c7 => 0x00e7, | |
529 | 0x00c8 => 0x00e8, | |
530 | 0x00c9 => 0x00e9, | |
531 | 0x00ca => 0x00ea, | |
532 | 0x00cb => 0x00eb, | |
533 | 0x00cc => 0x00ec, | |
534 | 0x00cd => 0x00ed, | |
535 | 0x00ce => 0x00ee, | |
536 | 0x00cf => 0x00ef, | |
537 | 0x00d0 => 0x00f0, | |
538 | 0x00d1 => 0x00f1, | |
539 | 0x00d2 => 0x00f2, | |
540 | 0x00d3 => 0x00f3, | |
541 | 0x00d4 => 0x00f4, | |
542 | 0x00d5 => 0x00f5, | |
543 | 0x00d6 => 0x00f6, | |
544 | 0x00d8 => 0x00f8, | |
545 | 0x00d9 => 0x00f9, | |
546 | 0x00da => 0x00fa, | |
547 | 0x00db => 0x00fb, | |
548 | 0x00dc => 0x00fc, | |
549 | 0x00dd => 0x00fd, | |
550 | 0x00de => 0x00fe, | |
551 | 0x00df => return Fold::Two('\u{0073}', '\u{0073}',), | |
552 | 0x0100 => 0x0101, | |
553 | 0x0102 => 0x0103, | |
554 | 0x0104 => 0x0105, | |
555 | 0x0106 => 0x0107, | |
556 | 0x0108 => 0x0109, | |
557 | 0x010a => 0x010b, | |
558 | 0x010c => 0x010d, | |
559 | 0x010e => 0x010f, | |
560 | 0x0110 => 0x0111, | |
561 | 0x0112 => 0x0113, | |
562 | 0x0114 => 0x0115, | |
563 | 0x0116 => 0x0117, | |
564 | 0x0118 => 0x0119, | |
565 | 0x011a => 0x011b, | |
566 | 0x011c => 0x011d, | |
567 | 0x011e => 0x011f, | |
568 | 0x0120 => 0x0121, | |
569 | 0x0122 => 0x0123, | |
570 | 0x0124 => 0x0125, | |
571 | 0x0126 => 0x0127, | |
572 | 0x0128 => 0x0129, | |
573 | 0x012a => 0x012b, | |
574 | 0x012c => 0x012d, | |
575 | 0x012e => 0x012f, | |
576 | 0x0130 => return Fold::Two('\u{0069}', '\u{0307}',), | |
577 | 0x0132 => 0x0133, | |
578 | 0x0134 => 0x0135, | |
579 | 0x0136 => 0x0137, | |
580 | 0x0139 => 0x013a, | |
581 | 0x013b => 0x013c, | |
582 | 0x013d => 0x013e, | |
583 | 0x013f => 0x0140, | |
584 | 0x0141 => 0x0142, | |
585 | 0x0143 => 0x0144, | |
586 | 0x0145 => 0x0146, | |
587 | 0x0147 => 0x0148, | |
588 | 0x0149 => return Fold::Two('\u{02bc}', '\u{006e}',), | |
589 | 0x014a => 0x014b, | |
590 | 0x014c => 0x014d, | |
591 | 0x014e => 0x014f, | |
592 | 0x0150 => 0x0151, | |
593 | 0x0152 => 0x0153, | |
594 | 0x0154 => 0x0155, | |
595 | 0x0156 => 0x0157, | |
596 | 0x0158 => 0x0159, | |
597 | 0x015a => 0x015b, | |
598 | 0x015c => 0x015d, | |
599 | 0x015e => 0x015f, | |
600 | 0x0160 => 0x0161, | |
601 | 0x0162 => 0x0163, | |
602 | 0x0164 => 0x0165, | |
603 | 0x0166 => 0x0167, | |
604 | 0x0168 => 0x0169, | |
605 | 0x016a => 0x016b, | |
606 | 0x016c => 0x016d, | |
607 | 0x016e => 0x016f, | |
608 | 0x0170 => 0x0171, | |
609 | 0x0172 => 0x0173, | |
610 | 0x0174 => 0x0175, | |
611 | 0x0176 => 0x0177, | |
612 | 0x0178 => 0x00ff, | |
613 | 0x0179 => 0x017a, | |
614 | 0x017b => 0x017c, | |
615 | 0x017d => 0x017e, | |
616 | 0x017f => 0x0073, | |
617 | 0x0181 => 0x0253, | |
618 | 0x0182 => 0x0183, | |
619 | 0x0184 => 0x0185, | |
620 | 0x0186 => 0x0254, | |
621 | 0x0187 => 0x0188, | |
622 | 0x0189 => 0x0256, | |
623 | 0x018a => 0x0257, | |
624 | 0x018b => 0x018c, | |
625 | 0x018e => 0x01dd, | |
626 | 0x018f => 0x0259, | |
627 | 0x0190 => 0x025b, | |
628 | 0x0191 => 0x0192, | |
629 | 0x0193 => 0x0260, | |
630 | 0x0194 => 0x0263, | |
631 | 0x0196 => 0x0269, | |
632 | 0x0197 => 0x0268, | |
633 | 0x0198 => 0x0199, | |
634 | 0x019c => 0x026f, | |
635 | 0x019d => 0x0272, | |
636 | 0x019f => 0x0275, | |
637 | 0x01a0 => 0x01a1, | |
638 | 0x01a2 => 0x01a3, | |
639 | 0x01a4 => 0x01a5, | |
640 | 0x01a6 => 0x0280, | |
641 | 0x01a7 => 0x01a8, | |
642 | 0x01a9 => 0x0283, | |
643 | 0x01ac => 0x01ad, | |
644 | 0x01ae => 0x0288, | |
645 | 0x01af => 0x01b0, | |
646 | 0x01b1 => 0x028a, | |
647 | 0x01b2 => 0x028b, | |
648 | 0x01b3 => 0x01b4, | |
649 | 0x01b5 => 0x01b6, | |
650 | 0x01b7 => 0x0292, | |
651 | 0x01b8 => 0x01b9, | |
652 | 0x01bc => 0x01bd, | |
653 | 0x01c4 => 0x01c6, | |
654 | 0x01c5 => 0x01c6, | |
655 | 0x01c7 => 0x01c9, | |
656 | 0x01c8 => 0x01c9, | |
657 | 0x01ca => 0x01cc, | |
658 | 0x01cb => 0x01cc, | |
659 | 0x01cd => 0x01ce, | |
660 | 0x01cf => 0x01d0, | |
661 | 0x01d1 => 0x01d2, | |
662 | 0x01d3 => 0x01d4, | |
663 | 0x01d5 => 0x01d6, | |
664 | 0x01d7 => 0x01d8, | |
665 | 0x01d9 => 0x01da, | |
666 | 0x01db => 0x01dc, | |
667 | 0x01de => 0x01df, | |
668 | 0x01e0 => 0x01e1, | |
669 | 0x01e2 => 0x01e3, | |
670 | 0x01e4 => 0x01e5, | |
671 | 0x01e6 => 0x01e7, | |
672 | 0x01e8 => 0x01e9, | |
673 | 0x01ea => 0x01eb, | |
674 | 0x01ec => 0x01ed, | |
675 | 0x01ee => 0x01ef, | |
676 | 0x01f0 => return Fold::Two('\u{006a}', '\u{030c}',), | |
677 | 0x01f1 => 0x01f3, | |
678 | 0x01f2 => 0x01f3, | |
679 | 0x01f4 => 0x01f5, | |
680 | 0x01f6 => 0x0195, | |
681 | 0x01f7 => 0x01bf, | |
682 | 0x01f8 => 0x01f9, | |
683 | 0x01fa => 0x01fb, | |
684 | 0x01fc => 0x01fd, | |
685 | 0x01fe => 0x01ff, | |
686 | 0x0200 => 0x0201, | |
687 | 0x0202 => 0x0203, | |
688 | 0x0204 => 0x0205, | |
689 | 0x0206 => 0x0207, | |
690 | 0x0208 => 0x0209, | |
691 | 0x020a => 0x020b, | |
692 | 0x020c => 0x020d, | |
693 | 0x020e => 0x020f, | |
694 | 0x0210 => 0x0211, | |
695 | 0x0212 => 0x0213, | |
696 | 0x0214 => 0x0215, | |
697 | 0x0216 => 0x0217, | |
698 | 0x0218 => 0x0219, | |
699 | 0x021a => 0x021b, | |
700 | 0x021c => 0x021d, | |
701 | 0x021e => 0x021f, | |
702 | 0x0220 => 0x019e, | |
703 | 0x0222 => 0x0223, | |
704 | 0x0224 => 0x0225, | |
705 | 0x0226 => 0x0227, | |
706 | 0x0228 => 0x0229, | |
707 | 0x022a => 0x022b, | |
708 | 0x022c => 0x022d, | |
709 | 0x022e => 0x022f, | |
710 | 0x0230 => 0x0231, | |
711 | 0x0232 => 0x0233, | |
712 | 0x023a => 0x2c65, | |
713 | 0x023b => 0x023c, | |
714 | 0x023d => 0x019a, | |
715 | 0x023e => 0x2c66, | |
716 | 0x0241 => 0x0242, | |
717 | 0x0243 => 0x0180, | |
718 | 0x0244 => 0x0289, | |
719 | 0x0245 => 0x028c, | |
720 | 0x0246 => 0x0247, | |
721 | 0x0248 => 0x0249, | |
722 | 0x024a => 0x024b, | |
723 | 0x024c => 0x024d, | |
724 | 0x024e => 0x024f, | |
725 | 0x0345 => 0x03b9, | |
726 | 0x0370 => 0x0371, | |
727 | 0x0372 => 0x0373, | |
728 | 0x0376 => 0x0377, | |
729 | 0x037f => 0x03f3, | |
730 | 0x0386 => 0x03ac, | |
731 | 0x0388 => 0x03ad, | |
732 | 0x0389 => 0x03ae, | |
733 | 0x038a => 0x03af, | |
734 | 0x038c => 0x03cc, | |
735 | 0x038e => 0x03cd, | |
736 | 0x038f => 0x03ce, | |
737 | 0x0390 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), | |
738 | 0x0391 => 0x03b1, | |
739 | 0x0392 => 0x03b2, | |
740 | 0x0393 => 0x03b3, | |
741 | 0x0394 => 0x03b4, | |
742 | 0x0395 => 0x03b5, | |
743 | 0x0396 => 0x03b6, | |
744 | 0x0397 => 0x03b7, | |
745 | 0x0398 => 0x03b8, | |
746 | 0x0399 => 0x03b9, | |
747 | 0x039a => 0x03ba, | |
748 | 0x039b => 0x03bb, | |
749 | 0x039c => 0x03bc, | |
750 | 0x039d => 0x03bd, | |
751 | 0x039e => 0x03be, | |
752 | 0x039f => 0x03bf, | |
753 | 0x03a0 => 0x03c0, | |
754 | 0x03a1 => 0x03c1, | |
755 | 0x03a3 => 0x03c3, | |
756 | 0x03a4 => 0x03c4, | |
757 | 0x03a5 => 0x03c5, | |
758 | 0x03a6 => 0x03c6, | |
759 | 0x03a7 => 0x03c7, | |
760 | 0x03a8 => 0x03c8, | |
761 | 0x03a9 => 0x03c9, | |
762 | 0x03aa => 0x03ca, | |
763 | 0x03ab => 0x03cb, | |
764 | 0x03b0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), | |
765 | 0x03c2 => 0x03c3, | |
766 | 0x03cf => 0x03d7, | |
767 | 0x03d0 => 0x03b2, | |
768 | 0x03d1 => 0x03b8, | |
769 | 0x03d5 => 0x03c6, | |
770 | 0x03d6 => 0x03c0, | |
771 | 0x03d8 => 0x03d9, | |
772 | 0x03da => 0x03db, | |
773 | 0x03dc => 0x03dd, | |
774 | 0x03de => 0x03df, | |
775 | 0x03e0 => 0x03e1, | |
776 | 0x03e2 => 0x03e3, | |
777 | 0x03e4 => 0x03e5, | |
778 | 0x03e6 => 0x03e7, | |
779 | 0x03e8 => 0x03e9, | |
780 | 0x03ea => 0x03eb, | |
781 | 0x03ec => 0x03ed, | |
782 | 0x03ee => 0x03ef, | |
783 | 0x03f0 => 0x03ba, | |
784 | 0x03f1 => 0x03c1, | |
785 | 0x03f4 => 0x03b8, | |
786 | 0x03f5 => 0x03b5, | |
787 | 0x03f7 => 0x03f8, | |
788 | 0x03f9 => 0x03f2, | |
789 | 0x03fa => 0x03fb, | |
790 | 0x03fd => 0x037b, | |
791 | 0x03fe => 0x037c, | |
792 | 0x03ff => 0x037d, | |
793 | 0x0400 => 0x0450, | |
794 | 0x0401 => 0x0451, | |
795 | 0x0402 => 0x0452, | |
796 | 0x0403 => 0x0453, | |
797 | 0x0404 => 0x0454, | |
798 | 0x0405 => 0x0455, | |
799 | 0x0406 => 0x0456, | |
800 | 0x0407 => 0x0457, | |
801 | 0x0408 => 0x0458, | |
802 | 0x0409 => 0x0459, | |
803 | 0x040a => 0x045a, | |
804 | 0x040b => 0x045b, | |
805 | 0x040c => 0x045c, | |
806 | 0x040d => 0x045d, | |
807 | 0x040e => 0x045e, | |
808 | 0x040f => 0x045f, | |
809 | 0x0410 => 0x0430, | |
810 | 0x0411 => 0x0431, | |
811 | 0x0412 => 0x0432, | |
812 | 0x0413 => 0x0433, | |
813 | 0x0414 => 0x0434, | |
814 | 0x0415 => 0x0435, | |
815 | 0x0416 => 0x0436, | |
816 | 0x0417 => 0x0437, | |
817 | 0x0418 => 0x0438, | |
818 | 0x0419 => 0x0439, | |
819 | 0x041a => 0x043a, | |
820 | 0x041b => 0x043b, | |
821 | 0x041c => 0x043c, | |
822 | 0x041d => 0x043d, | |
823 | 0x041e => 0x043e, | |
824 | 0x041f => 0x043f, | |
825 | 0x0420 => 0x0440, | |
826 | 0x0421 => 0x0441, | |
827 | 0x0422 => 0x0442, | |
828 | 0x0423 => 0x0443, | |
829 | 0x0424 => 0x0444, | |
830 | 0x0425 => 0x0445, | |
831 | 0x0426 => 0x0446, | |
832 | 0x0427 => 0x0447, | |
833 | 0x0428 => 0x0448, | |
834 | 0x0429 => 0x0449, | |
835 | 0x042a => 0x044a, | |
836 | 0x042b => 0x044b, | |
837 | 0x042c => 0x044c, | |
838 | 0x042d => 0x044d, | |
839 | 0x042e => 0x044e, | |
840 | 0x042f => 0x044f, | |
841 | 0x0460 => 0x0461, | |
842 | 0x0462 => 0x0463, | |
843 | 0x0464 => 0x0465, | |
844 | 0x0466 => 0x0467, | |
845 | 0x0468 => 0x0469, | |
846 | 0x046a => 0x046b, | |
847 | 0x046c => 0x046d, | |
848 | 0x046e => 0x046f, | |
849 | 0x0470 => 0x0471, | |
850 | 0x0472 => 0x0473, | |
851 | 0x0474 => 0x0475, | |
852 | 0x0476 => 0x0477, | |
853 | 0x0478 => 0x0479, | |
854 | 0x047a => 0x047b, | |
855 | 0x047c => 0x047d, | |
856 | 0x047e => 0x047f, | |
857 | 0x0480 => 0x0481, | |
858 | 0x048a => 0x048b, | |
859 | 0x048c => 0x048d, | |
860 | 0x048e => 0x048f, | |
861 | 0x0490 => 0x0491, | |
862 | 0x0492 => 0x0493, | |
863 | 0x0494 => 0x0495, | |
864 | 0x0496 => 0x0497, | |
865 | 0x0498 => 0x0499, | |
866 | 0x049a => 0x049b, | |
867 | 0x049c => 0x049d, | |
868 | 0x049e => 0x049f, | |
869 | 0x04a0 => 0x04a1, | |
870 | 0x04a2 => 0x04a3, | |
871 | 0x04a4 => 0x04a5, | |
872 | 0x04a6 => 0x04a7, | |
873 | 0x04a8 => 0x04a9, | |
874 | 0x04aa => 0x04ab, | |
875 | 0x04ac => 0x04ad, | |
876 | 0x04ae => 0x04af, | |
877 | 0x04b0 => 0x04b1, | |
878 | 0x04b2 => 0x04b3, | |
879 | 0x04b4 => 0x04b5, | |
880 | 0x04b6 => 0x04b7, | |
881 | 0x04b8 => 0x04b9, | |
882 | 0x04ba => 0x04bb, | |
883 | 0x04bc => 0x04bd, | |
884 | 0x04be => 0x04bf, | |
885 | 0x04c0 => 0x04cf, | |
886 | 0x04c1 => 0x04c2, | |
887 | 0x04c3 => 0x04c4, | |
888 | 0x04c5 => 0x04c6, | |
889 | 0x04c7 => 0x04c8, | |
890 | 0x04c9 => 0x04ca, | |
891 | 0x04cb => 0x04cc, | |
892 | 0x04cd => 0x04ce, | |
893 | 0x04d0 => 0x04d1, | |
894 | 0x04d2 => 0x04d3, | |
895 | 0x04d4 => 0x04d5, | |
896 | 0x04d6 => 0x04d7, | |
897 | 0x04d8 => 0x04d9, | |
898 | 0x04da => 0x04db, | |
899 | 0x04dc => 0x04dd, | |
900 | 0x04de => 0x04df, | |
901 | 0x04e0 => 0x04e1, | |
902 | 0x04e2 => 0x04e3, | |
903 | 0x04e4 => 0x04e5, | |
904 | 0x04e6 => 0x04e7, | |
905 | 0x04e8 => 0x04e9, | |
906 | 0x04ea => 0x04eb, | |
907 | 0x04ec => 0x04ed, | |
908 | 0x04ee => 0x04ef, | |
909 | 0x04f0 => 0x04f1, | |
910 | 0x04f2 => 0x04f3, | |
911 | 0x04f4 => 0x04f5, | |
912 | 0x04f6 => 0x04f7, | |
913 | 0x04f8 => 0x04f9, | |
914 | 0x04fa => 0x04fb, | |
915 | 0x04fc => 0x04fd, | |
916 | 0x04fe => 0x04ff, | |
917 | 0x0500 => 0x0501, | |
918 | 0x0502 => 0x0503, | |
919 | 0x0504 => 0x0505, | |
920 | 0x0506 => 0x0507, | |
921 | 0x0508 => 0x0509, | |
922 | 0x050a => 0x050b, | |
923 | 0x050c => 0x050d, | |
924 | 0x050e => 0x050f, | |
925 | 0x0510 => 0x0511, | |
926 | 0x0512 => 0x0513, | |
927 | 0x0514 => 0x0515, | |
928 | 0x0516 => 0x0517, | |
929 | 0x0518 => 0x0519, | |
930 | 0x051a => 0x051b, | |
931 | 0x051c => 0x051d, | |
932 | 0x051e => 0x051f, | |
933 | 0x0520 => 0x0521, | |
934 | 0x0522 => 0x0523, | |
935 | 0x0524 => 0x0525, | |
936 | 0x0526 => 0x0527, | |
937 | 0x0528 => 0x0529, | |
938 | 0x052a => 0x052b, | |
939 | 0x052c => 0x052d, | |
940 | 0x052e => 0x052f, | |
941 | 0x0531 => 0x0561, | |
942 | 0x0532 => 0x0562, | |
943 | 0x0533 => 0x0563, | |
944 | 0x0534 => 0x0564, | |
945 | 0x0535 => 0x0565, | |
946 | 0x0536 => 0x0566, | |
947 | 0x0537 => 0x0567, | |
948 | 0x0538 => 0x0568, | |
949 | 0x0539 => 0x0569, | |
950 | 0x053a => 0x056a, | |
951 | 0x053b => 0x056b, | |
952 | 0x053c => 0x056c, | |
953 | 0x053d => 0x056d, | |
954 | 0x053e => 0x056e, | |
955 | 0x053f => 0x056f, | |
956 | 0x0540 => 0x0570, | |
957 | 0x0541 => 0x0571, | |
958 | 0x0542 => 0x0572, | |
959 | 0x0543 => 0x0573, | |
960 | 0x0544 => 0x0574, | |
961 | 0x0545 => 0x0575, | |
962 | 0x0546 => 0x0576, | |
963 | 0x0547 => 0x0577, | |
964 | 0x0548 => 0x0578, | |
965 | 0x0549 => 0x0579, | |
966 | 0x054a => 0x057a, | |
967 | 0x054b => 0x057b, | |
968 | 0x054c => 0x057c, | |
969 | 0x054d => 0x057d, | |
970 | 0x054e => 0x057e, | |
971 | 0x054f => 0x057f, | |
972 | 0x0550 => 0x0580, | |
973 | 0x0551 => 0x0581, | |
974 | 0x0552 => 0x0582, | |
975 | 0x0553 => 0x0583, | |
976 | 0x0554 => 0x0584, | |
977 | 0x0555 => 0x0585, | |
978 | 0x0556 => 0x0586, | |
979 | 0x0587 => return Fold::Two('\u{0565}', '\u{0582}',), | |
980 | 0x10a0 => 0x2d00, | |
981 | 0x10a1 => 0x2d01, | |
982 | 0x10a2 => 0x2d02, | |
983 | 0x10a3 => 0x2d03, | |
984 | 0x10a4 => 0x2d04, | |
985 | 0x10a5 => 0x2d05, | |
986 | 0x10a6 => 0x2d06, | |
987 | 0x10a7 => 0x2d07, | |
988 | 0x10a8 => 0x2d08, | |
989 | 0x10a9 => 0x2d09, | |
990 | 0x10aa => 0x2d0a, | |
991 | 0x10ab => 0x2d0b, | |
992 | 0x10ac => 0x2d0c, | |
993 | 0x10ad => 0x2d0d, | |
994 | 0x10ae => 0x2d0e, | |
995 | 0x10af => 0x2d0f, | |
996 | 0x10b0 => 0x2d10, | |
997 | 0x10b1 => 0x2d11, | |
998 | 0x10b2 => 0x2d12, | |
999 | 0x10b3 => 0x2d13, | |
1000 | 0x10b4 => 0x2d14, | |
1001 | 0x10b5 => 0x2d15, | |
1002 | 0x10b6 => 0x2d16, | |
1003 | 0x10b7 => 0x2d17, | |
1004 | 0x10b8 => 0x2d18, | |
1005 | 0x10b9 => 0x2d19, | |
1006 | 0x10ba => 0x2d1a, | |
1007 | 0x10bb => 0x2d1b, | |
1008 | 0x10bc => 0x2d1c, | |
1009 | 0x10bd => 0x2d1d, | |
1010 | 0x10be => 0x2d1e, | |
1011 | 0x10bf => 0x2d1f, | |
1012 | 0x10c0 => 0x2d20, | |
1013 | 0x10c1 => 0x2d21, | |
1014 | 0x10c2 => 0x2d22, | |
1015 | 0x10c3 => 0x2d23, | |
1016 | 0x10c4 => 0x2d24, | |
1017 | 0x10c5 => 0x2d25, | |
1018 | 0x10c7 => 0x2d27, | |
1019 | 0x10cd => 0x2d2d, | |
1020 | 0x13f8 => 0x13f0, | |
1021 | 0x13f9 => 0x13f1, | |
1022 | 0x13fa => 0x13f2, | |
1023 | 0x13fb => 0x13f3, | |
1024 | 0x13fc => 0x13f4, | |
1025 | 0x13fd => 0x13f5, | |
1026 | 0x1c80 => 0x0432, | |
1027 | 0x1c81 => 0x0434, | |
1028 | 0x1c82 => 0x043e, | |
1029 | 0x1c83 => 0x0441, | |
1030 | 0x1c84 => 0x0442, | |
1031 | 0x1c85 => 0x0442, | |
1032 | 0x1c86 => 0x044a, | |
1033 | 0x1c87 => 0x0463, | |
1034 | 0x1c88 => 0xa64b, | |
1035 | 0x1c90 => 0x10d0, | |
1036 | 0x1c91 => 0x10d1, | |
1037 | 0x1c92 => 0x10d2, | |
1038 | 0x1c93 => 0x10d3, | |
1039 | 0x1c94 => 0x10d4, | |
1040 | 0x1c95 => 0x10d5, | |
1041 | 0x1c96 => 0x10d6, | |
1042 | 0x1c97 => 0x10d7, | |
1043 | 0x1c98 => 0x10d8, | |
1044 | 0x1c99 => 0x10d9, | |
1045 | 0x1c9a => 0x10da, | |
1046 | 0x1c9b => 0x10db, | |
1047 | 0x1c9c => 0x10dc, | |
1048 | 0x1c9d => 0x10dd, | |
1049 | 0x1c9e => 0x10de, | |
1050 | 0x1c9f => 0x10df, | |
1051 | 0x1ca0 => 0x10e0, | |
1052 | 0x1ca1 => 0x10e1, | |
1053 | 0x1ca2 => 0x10e2, | |
1054 | 0x1ca3 => 0x10e3, | |
1055 | 0x1ca4 => 0x10e4, | |
1056 | 0x1ca5 => 0x10e5, | |
1057 | 0x1ca6 => 0x10e6, | |
1058 | 0x1ca7 => 0x10e7, | |
1059 | 0x1ca8 => 0x10e8, | |
1060 | 0x1ca9 => 0x10e9, | |
1061 | 0x1caa => 0x10ea, | |
1062 | 0x1cab => 0x10eb, | |
1063 | 0x1cac => 0x10ec, | |
1064 | 0x1cad => 0x10ed, | |
1065 | 0x1cae => 0x10ee, | |
1066 | 0x1caf => 0x10ef, | |
1067 | 0x1cb0 => 0x10f0, | |
1068 | 0x1cb1 => 0x10f1, | |
1069 | 0x1cb2 => 0x10f2, | |
1070 | 0x1cb3 => 0x10f3, | |
1071 | 0x1cb4 => 0x10f4, | |
1072 | 0x1cb5 => 0x10f5, | |
1073 | 0x1cb6 => 0x10f6, | |
1074 | 0x1cb7 => 0x10f7, | |
1075 | 0x1cb8 => 0x10f8, | |
1076 | 0x1cb9 => 0x10f9, | |
1077 | 0x1cba => 0x10fa, | |
1078 | 0x1cbd => 0x10fd, | |
1079 | 0x1cbe => 0x10fe, | |
1080 | 0x1cbf => 0x10ff, | |
1081 | 0x1e00 => 0x1e01, | |
1082 | 0x1e02 => 0x1e03, | |
1083 | 0x1e04 => 0x1e05, | |
1084 | 0x1e06 => 0x1e07, | |
1085 | 0x1e08 => 0x1e09, | |
1086 | 0x1e0a => 0x1e0b, | |
1087 | 0x1e0c => 0x1e0d, | |
1088 | 0x1e0e => 0x1e0f, | |
1089 | 0x1e10 => 0x1e11, | |
1090 | 0x1e12 => 0x1e13, | |
1091 | 0x1e14 => 0x1e15, | |
1092 | 0x1e16 => 0x1e17, | |
1093 | 0x1e18 => 0x1e19, | |
1094 | 0x1e1a => 0x1e1b, | |
1095 | 0x1e1c => 0x1e1d, | |
1096 | 0x1e1e => 0x1e1f, | |
1097 | 0x1e20 => 0x1e21, | |
1098 | 0x1e22 => 0x1e23, | |
1099 | 0x1e24 => 0x1e25, | |
1100 | 0x1e26 => 0x1e27, | |
1101 | 0x1e28 => 0x1e29, | |
1102 | 0x1e2a => 0x1e2b, | |
1103 | 0x1e2c => 0x1e2d, | |
1104 | 0x1e2e => 0x1e2f, | |
1105 | 0x1e30 => 0x1e31, | |
1106 | 0x1e32 => 0x1e33, | |
1107 | 0x1e34 => 0x1e35, | |
1108 | 0x1e36 => 0x1e37, | |
1109 | 0x1e38 => 0x1e39, | |
1110 | 0x1e3a => 0x1e3b, | |
1111 | 0x1e3c => 0x1e3d, | |
1112 | 0x1e3e => 0x1e3f, | |
1113 | 0x1e40 => 0x1e41, | |
1114 | 0x1e42 => 0x1e43, | |
1115 | 0x1e44 => 0x1e45, | |
1116 | 0x1e46 => 0x1e47, | |
1117 | 0x1e48 => 0x1e49, | |
1118 | 0x1e4a => 0x1e4b, | |
1119 | 0x1e4c => 0x1e4d, | |
1120 | 0x1e4e => 0x1e4f, | |
1121 | 0x1e50 => 0x1e51, | |
1122 | 0x1e52 => 0x1e53, | |
1123 | 0x1e54 => 0x1e55, | |
1124 | 0x1e56 => 0x1e57, | |
1125 | 0x1e58 => 0x1e59, | |
1126 | 0x1e5a => 0x1e5b, | |
1127 | 0x1e5c => 0x1e5d, | |
1128 | 0x1e5e => 0x1e5f, | |
1129 | 0x1e60 => 0x1e61, | |
1130 | 0x1e62 => 0x1e63, | |
1131 | 0x1e64 => 0x1e65, | |
1132 | 0x1e66 => 0x1e67, | |
1133 | 0x1e68 => 0x1e69, | |
1134 | 0x1e6a => 0x1e6b, | |
1135 | 0x1e6c => 0x1e6d, | |
1136 | 0x1e6e => 0x1e6f, | |
1137 | 0x1e70 => 0x1e71, | |
1138 | 0x1e72 => 0x1e73, | |
1139 | 0x1e74 => 0x1e75, | |
1140 | 0x1e76 => 0x1e77, | |
1141 | 0x1e78 => 0x1e79, | |
1142 | 0x1e7a => 0x1e7b, | |
1143 | 0x1e7c => 0x1e7d, | |
1144 | 0x1e7e => 0x1e7f, | |
1145 | 0x1e80 => 0x1e81, | |
1146 | 0x1e82 => 0x1e83, | |
1147 | 0x1e84 => 0x1e85, | |
1148 | 0x1e86 => 0x1e87, | |
1149 | 0x1e88 => 0x1e89, | |
1150 | 0x1e8a => 0x1e8b, | |
1151 | 0x1e8c => 0x1e8d, | |
1152 | 0x1e8e => 0x1e8f, | |
1153 | 0x1e90 => 0x1e91, | |
1154 | 0x1e92 => 0x1e93, | |
1155 | 0x1e94 => 0x1e95, | |
1156 | 0x1e96 => return Fold::Two('\u{0068}', '\u{0331}',), | |
1157 | 0x1e97 => return Fold::Two('\u{0074}', '\u{0308}',), | |
1158 | 0x1e98 => return Fold::Two('\u{0077}', '\u{030a}',), | |
1159 | 0x1e99 => return Fold::Two('\u{0079}', '\u{030a}',), | |
1160 | 0x1e9a => return Fold::Two('\u{0061}', '\u{02be}',), | |
1161 | 0x1e9b => 0x1e61, | |
1162 | 0x1e9e => return Fold::Two('\u{0073}', '\u{0073}',), | |
1163 | 0x1ea0 => 0x1ea1, | |
1164 | 0x1ea2 => 0x1ea3, | |
1165 | 0x1ea4 => 0x1ea5, | |
1166 | 0x1ea6 => 0x1ea7, | |
1167 | 0x1ea8 => 0x1ea9, | |
1168 | 0x1eaa => 0x1eab, | |
1169 | 0x1eac => 0x1ead, | |
1170 | 0x1eae => 0x1eaf, | |
1171 | 0x1eb0 => 0x1eb1, | |
1172 | 0x1eb2 => 0x1eb3, | |
1173 | 0x1eb4 => 0x1eb5, | |
1174 | 0x1eb6 => 0x1eb7, | |
1175 | 0x1eb8 => 0x1eb9, | |
1176 | 0x1eba => 0x1ebb, | |
1177 | 0x1ebc => 0x1ebd, | |
1178 | 0x1ebe => 0x1ebf, | |
1179 | 0x1ec0 => 0x1ec1, | |
1180 | 0x1ec2 => 0x1ec3, | |
1181 | 0x1ec4 => 0x1ec5, | |
1182 | 0x1ec6 => 0x1ec7, | |
1183 | 0x1ec8 => 0x1ec9, | |
1184 | 0x1eca => 0x1ecb, | |
1185 | 0x1ecc => 0x1ecd, | |
1186 | 0x1ece => 0x1ecf, | |
1187 | 0x1ed0 => 0x1ed1, | |
1188 | 0x1ed2 => 0x1ed3, | |
1189 | 0x1ed4 => 0x1ed5, | |
1190 | 0x1ed6 => 0x1ed7, | |
1191 | 0x1ed8 => 0x1ed9, | |
1192 | 0x1eda => 0x1edb, | |
1193 | 0x1edc => 0x1edd, | |
1194 | 0x1ede => 0x1edf, | |
1195 | 0x1ee0 => 0x1ee1, | |
1196 | 0x1ee2 => 0x1ee3, | |
1197 | 0x1ee4 => 0x1ee5, | |
1198 | 0x1ee6 => 0x1ee7, | |
1199 | 0x1ee8 => 0x1ee9, | |
1200 | 0x1eea => 0x1eeb, | |
1201 | 0x1eec => 0x1eed, | |
1202 | 0x1eee => 0x1eef, | |
1203 | 0x1ef0 => 0x1ef1, | |
1204 | 0x1ef2 => 0x1ef3, | |
1205 | 0x1ef4 => 0x1ef5, | |
1206 | 0x1ef6 => 0x1ef7, | |
1207 | 0x1ef8 => 0x1ef9, | |
1208 | 0x1efa => 0x1efb, | |
1209 | 0x1efc => 0x1efd, | |
1210 | 0x1efe => 0x1eff, | |
1211 | 0x1f08 => 0x1f00, | |
1212 | 0x1f09 => 0x1f01, | |
1213 | 0x1f0a => 0x1f02, | |
1214 | 0x1f0b => 0x1f03, | |
1215 | 0x1f0c => 0x1f04, | |
1216 | 0x1f0d => 0x1f05, | |
1217 | 0x1f0e => 0x1f06, | |
1218 | 0x1f0f => 0x1f07, | |
1219 | 0x1f18 => 0x1f10, | |
1220 | 0x1f19 => 0x1f11, | |
1221 | 0x1f1a => 0x1f12, | |
1222 | 0x1f1b => 0x1f13, | |
1223 | 0x1f1c => 0x1f14, | |
1224 | 0x1f1d => 0x1f15, | |
1225 | 0x1f28 => 0x1f20, | |
1226 | 0x1f29 => 0x1f21, | |
1227 | 0x1f2a => 0x1f22, | |
1228 | 0x1f2b => 0x1f23, | |
1229 | 0x1f2c => 0x1f24, | |
1230 | 0x1f2d => 0x1f25, | |
1231 | 0x1f2e => 0x1f26, | |
1232 | 0x1f2f => 0x1f27, | |
1233 | 0x1f38 => 0x1f30, | |
1234 | 0x1f39 => 0x1f31, | |
1235 | 0x1f3a => 0x1f32, | |
1236 | 0x1f3b => 0x1f33, | |
1237 | 0x1f3c => 0x1f34, | |
1238 | 0x1f3d => 0x1f35, | |
1239 | 0x1f3e => 0x1f36, | |
1240 | 0x1f3f => 0x1f37, | |
1241 | 0x1f48 => 0x1f40, | |
1242 | 0x1f49 => 0x1f41, | |
1243 | 0x1f4a => 0x1f42, | |
1244 | 0x1f4b => 0x1f43, | |
1245 | 0x1f4c => 0x1f44, | |
1246 | 0x1f4d => 0x1f45, | |
1247 | 0x1f50 => return Fold::Two('\u{03c5}', '\u{0313}',), | |
1248 | 0x1f52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}',), | |
1249 | 0x1f54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}',), | |
1250 | 0x1f56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}',), | |
1251 | 0x1f59 => 0x1f51, | |
1252 | 0x1f5b => 0x1f53, | |
1253 | 0x1f5d => 0x1f55, | |
1254 | 0x1f5f => 0x1f57, | |
1255 | 0x1f68 => 0x1f60, | |
1256 | 0x1f69 => 0x1f61, | |
1257 | 0x1f6a => 0x1f62, | |
1258 | 0x1f6b => 0x1f63, | |
1259 | 0x1f6c => 0x1f64, | |
1260 | 0x1f6d => 0x1f65, | |
1261 | 0x1f6e => 0x1f66, | |
1262 | 0x1f6f => 0x1f67, | |
1263 | 0x1f80 => return Fold::Two('\u{1f00}', '\u{03b9}',), | |
1264 | 0x1f81 => return Fold::Two('\u{1f01}', '\u{03b9}',), | |
1265 | 0x1f82 => return Fold::Two('\u{1f02}', '\u{03b9}',), | |
1266 | 0x1f83 => return Fold::Two('\u{1f03}', '\u{03b9}',), | |
1267 | 0x1f84 => return Fold::Two('\u{1f04}', '\u{03b9}',), | |
1268 | 0x1f85 => return Fold::Two('\u{1f05}', '\u{03b9}',), | |
1269 | 0x1f86 => return Fold::Two('\u{1f06}', '\u{03b9}',), | |
1270 | 0x1f87 => return Fold::Two('\u{1f07}', '\u{03b9}',), | |
1271 | 0x1f88 => return Fold::Two('\u{1f00}', '\u{03b9}',), | |
1272 | 0x1f89 => return Fold::Two('\u{1f01}', '\u{03b9}',), | |
1273 | 0x1f8a => return Fold::Two('\u{1f02}', '\u{03b9}',), | |
1274 | 0x1f8b => return Fold::Two('\u{1f03}', '\u{03b9}',), | |
1275 | 0x1f8c => return Fold::Two('\u{1f04}', '\u{03b9}',), | |
1276 | 0x1f8d => return Fold::Two('\u{1f05}', '\u{03b9}',), | |
1277 | 0x1f8e => return Fold::Two('\u{1f06}', '\u{03b9}',), | |
1278 | 0x1f8f => return Fold::Two('\u{1f07}', '\u{03b9}',), | |
1279 | 0x1f90 => return Fold::Two('\u{1f20}', '\u{03b9}',), | |
1280 | 0x1f91 => return Fold::Two('\u{1f21}', '\u{03b9}',), | |
1281 | 0x1f92 => return Fold::Two('\u{1f22}', '\u{03b9}',), | |
1282 | 0x1f93 => return Fold::Two('\u{1f23}', '\u{03b9}',), | |
1283 | 0x1f94 => return Fold::Two('\u{1f24}', '\u{03b9}',), | |
1284 | 0x1f95 => return Fold::Two('\u{1f25}', '\u{03b9}',), | |
1285 | 0x1f96 => return Fold::Two('\u{1f26}', '\u{03b9}',), | |
1286 | 0x1f97 => return Fold::Two('\u{1f27}', '\u{03b9}',), | |
1287 | 0x1f98 => return Fold::Two('\u{1f20}', '\u{03b9}',), | |
1288 | 0x1f99 => return Fold::Two('\u{1f21}', '\u{03b9}',), | |
1289 | 0x1f9a => return Fold::Two('\u{1f22}', '\u{03b9}',), | |
1290 | 0x1f9b => return Fold::Two('\u{1f23}', '\u{03b9}',), | |
1291 | 0x1f9c => return Fold::Two('\u{1f24}', '\u{03b9}',), | |
1292 | 0x1f9d => return Fold::Two('\u{1f25}', '\u{03b9}',), | |
1293 | 0x1f9e => return Fold::Two('\u{1f26}', '\u{03b9}',), | |
1294 | 0x1f9f => return Fold::Two('\u{1f27}', '\u{03b9}',), | |
1295 | 0x1fa0 => return Fold::Two('\u{1f60}', '\u{03b9}',), | |
1296 | 0x1fa1 => return Fold::Two('\u{1f61}', '\u{03b9}',), | |
1297 | 0x1fa2 => return Fold::Two('\u{1f62}', '\u{03b9}',), | |
1298 | 0x1fa3 => return Fold::Two('\u{1f63}', '\u{03b9}',), | |
1299 | 0x1fa4 => return Fold::Two('\u{1f64}', '\u{03b9}',), | |
1300 | 0x1fa5 => return Fold::Two('\u{1f65}', '\u{03b9}',), | |
1301 | 0x1fa6 => return Fold::Two('\u{1f66}', '\u{03b9}',), | |
1302 | 0x1fa7 => return Fold::Two('\u{1f67}', '\u{03b9}',), | |
1303 | 0x1fa8 => return Fold::Two('\u{1f60}', '\u{03b9}',), | |
1304 | 0x1fa9 => return Fold::Two('\u{1f61}', '\u{03b9}',), | |
1305 | 0x1faa => return Fold::Two('\u{1f62}', '\u{03b9}',), | |
1306 | 0x1fab => return Fold::Two('\u{1f63}', '\u{03b9}',), | |
1307 | 0x1fac => return Fold::Two('\u{1f64}', '\u{03b9}',), | |
1308 | 0x1fad => return Fold::Two('\u{1f65}', '\u{03b9}',), | |
1309 | 0x1fae => return Fold::Two('\u{1f66}', '\u{03b9}',), | |
1310 | 0x1faf => return Fold::Two('\u{1f67}', '\u{03b9}',), | |
1311 | 0x1fb2 => return Fold::Two('\u{1f70}', '\u{03b9}',), | |
1312 | 0x1fb3 => return Fold::Two('\u{03b1}', '\u{03b9}',), | |
1313 | 0x1fb4 => return Fold::Two('\u{03ac}', '\u{03b9}',), | |
1314 | 0x1fb6 => return Fold::Two('\u{03b1}', '\u{0342}',), | |
1315 | 0x1fb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}',), | |
1316 | 0x1fb8 => 0x1fb0, | |
1317 | 0x1fb9 => 0x1fb1, | |
1318 | 0x1fba => 0x1f70, | |
1319 | 0x1fbb => 0x1f71, | |
1320 | 0x1fbc => return Fold::Two('\u{03b1}', '\u{03b9}',), | |
1321 | 0x1fbe => 0x03b9, | |
1322 | 0x1fc2 => return Fold::Two('\u{1f74}', '\u{03b9}',), | |
1323 | 0x1fc3 => return Fold::Two('\u{03b7}', '\u{03b9}',), | |
1324 | 0x1fc4 => return Fold::Two('\u{03ae}', '\u{03b9}',), | |
1325 | 0x1fc6 => return Fold::Two('\u{03b7}', '\u{0342}',), | |
1326 | 0x1fc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}',), | |
1327 | 0x1fc8 => 0x1f72, | |
1328 | 0x1fc9 => 0x1f73, | |
1329 | 0x1fca => 0x1f74, | |
1330 | 0x1fcb => 0x1f75, | |
1331 | 0x1fcc => return Fold::Two('\u{03b7}', '\u{03b9}',), | |
1332 | 0x1fd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}',), | |
1333 | 0x1fd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), | |
1334 | 0x1fd6 => return Fold::Two('\u{03b9}', '\u{0342}',), | |
1335 | 0x1fd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}',), | |
1336 | 0x1fd8 => 0x1fd0, | |
1337 | 0x1fd9 => 0x1fd1, | |
1338 | 0x1fda => 0x1f76, | |
1339 | 0x1fdb => 0x1f77, | |
1340 | 0x1fe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}',), | |
1341 | 0x1fe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), | |
1342 | 0x1fe4 => return Fold::Two('\u{03c1}', '\u{0313}',), | |
1343 | 0x1fe6 => return Fold::Two('\u{03c5}', '\u{0342}',), | |
1344 | 0x1fe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}',), | |
1345 | 0x1fe8 => 0x1fe0, | |
1346 | 0x1fe9 => 0x1fe1, | |
1347 | 0x1fea => 0x1f7a, | |
1348 | 0x1feb => 0x1f7b, | |
1349 | 0x1fec => 0x1fe5, | |
1350 | 0x1ff2 => return Fold::Two('\u{1f7c}', '\u{03b9}',), | |
1351 | 0x1ff3 => return Fold::Two('\u{03c9}', '\u{03b9}',), | |
1352 | 0x1ff4 => return Fold::Two('\u{03ce}', '\u{03b9}',), | |
1353 | 0x1ff6 => return Fold::Two('\u{03c9}', '\u{0342}',), | |
1354 | 0x1ff7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}',), | |
1355 | 0x1ff8 => 0x1f78, | |
1356 | 0x1ff9 => 0x1f79, | |
1357 | 0x1ffa => 0x1f7c, | |
1358 | 0x1ffb => 0x1f7d, | |
1359 | 0x1ffc => return Fold::Two('\u{03c9}', '\u{03b9}',), | |
1360 | 0x2126 => 0x03c9, | |
1361 | 0x212a => 0x006b, | |
1362 | 0x212b => 0x00e5, | |
1363 | 0x2132 => 0x214e, | |
1364 | 0x2160 => 0x2170, | |
1365 | 0x2161 => 0x2171, | |
1366 | 0x2162 => 0x2172, | |
1367 | 0x2163 => 0x2173, | |
1368 | 0x2164 => 0x2174, | |
1369 | 0x2165 => 0x2175, | |
1370 | 0x2166 => 0x2176, | |
1371 | 0x2167 => 0x2177, | |
1372 | 0x2168 => 0x2178, | |
1373 | 0x2169 => 0x2179, | |
1374 | 0x216a => 0x217a, | |
1375 | 0x216b => 0x217b, | |
1376 | 0x216c => 0x217c, | |
1377 | 0x216d => 0x217d, | |
1378 | 0x216e => 0x217e, | |
1379 | 0x216f => 0x217f, | |
1380 | 0x2183 => 0x2184, | |
1381 | 0x24b6 => 0x24d0, | |
1382 | 0x24b7 => 0x24d1, | |
1383 | 0x24b8 => 0x24d2, | |
1384 | 0x24b9 => 0x24d3, | |
1385 | 0x24ba => 0x24d4, | |
1386 | 0x24bb => 0x24d5, | |
1387 | 0x24bc => 0x24d6, | |
1388 | 0x24bd => 0x24d7, | |
1389 | 0x24be => 0x24d8, | |
1390 | 0x24bf => 0x24d9, | |
1391 | 0x24c0 => 0x24da, | |
1392 | 0x24c1 => 0x24db, | |
1393 | 0x24c2 => 0x24dc, | |
1394 | 0x24c3 => 0x24dd, | |
1395 | 0x24c4 => 0x24de, | |
1396 | 0x24c5 => 0x24df, | |
1397 | 0x24c6 => 0x24e0, | |
1398 | 0x24c7 => 0x24e1, | |
1399 | 0x24c8 => 0x24e2, | |
1400 | 0x24c9 => 0x24e3, | |
1401 | 0x24ca => 0x24e4, | |
1402 | 0x24cb => 0x24e5, | |
1403 | 0x24cc => 0x24e6, | |
1404 | 0x24cd => 0x24e7, | |
1405 | 0x24ce => 0x24e8, | |
1406 | 0x24cf => 0x24e9, | |
1407 | 0x2c00 => 0x2c30, | |
1408 | 0x2c01 => 0x2c31, | |
1409 | 0x2c02 => 0x2c32, | |
1410 | 0x2c03 => 0x2c33, | |
1411 | 0x2c04 => 0x2c34, | |
1412 | 0x2c05 => 0x2c35, | |
1413 | 0x2c06 => 0x2c36, | |
1414 | 0x2c07 => 0x2c37, | |
1415 | 0x2c08 => 0x2c38, | |
1416 | 0x2c09 => 0x2c39, | |
1417 | 0x2c0a => 0x2c3a, | |
1418 | 0x2c0b => 0x2c3b, | |
1419 | 0x2c0c => 0x2c3c, | |
1420 | 0x2c0d => 0x2c3d, | |
1421 | 0x2c0e => 0x2c3e, | |
1422 | 0x2c0f => 0x2c3f, | |
1423 | 0x2c10 => 0x2c40, | |
1424 | 0x2c11 => 0x2c41, | |
1425 | 0x2c12 => 0x2c42, | |
1426 | 0x2c13 => 0x2c43, | |
1427 | 0x2c14 => 0x2c44, | |
1428 | 0x2c15 => 0x2c45, | |
1429 | 0x2c16 => 0x2c46, | |
1430 | 0x2c17 => 0x2c47, | |
1431 | 0x2c18 => 0x2c48, | |
1432 | 0x2c19 => 0x2c49, | |
1433 | 0x2c1a => 0x2c4a, | |
1434 | 0x2c1b => 0x2c4b, | |
1435 | 0x2c1c => 0x2c4c, | |
1436 | 0x2c1d => 0x2c4d, | |
1437 | 0x2c1e => 0x2c4e, | |
1438 | 0x2c1f => 0x2c4f, | |
1439 | 0x2c20 => 0x2c50, | |
1440 | 0x2c21 => 0x2c51, | |
1441 | 0x2c22 => 0x2c52, | |
1442 | 0x2c23 => 0x2c53, | |
1443 | 0x2c24 => 0x2c54, | |
1444 | 0x2c25 => 0x2c55, | |
1445 | 0x2c26 => 0x2c56, | |
1446 | 0x2c27 => 0x2c57, | |
1447 | 0x2c28 => 0x2c58, | |
1448 | 0x2c29 => 0x2c59, | |
1449 | 0x2c2a => 0x2c5a, | |
1450 | 0x2c2b => 0x2c5b, | |
1451 | 0x2c2c => 0x2c5c, | |
1452 | 0x2c2d => 0x2c5d, | |
1453 | 0x2c2e => 0x2c5e, | |
1454 | 0x2c60 => 0x2c61, | |
1455 | 0x2c62 => 0x026b, | |
1456 | 0x2c63 => 0x1d7d, | |
1457 | 0x2c64 => 0x027d, | |
1458 | 0x2c67 => 0x2c68, | |
1459 | 0x2c69 => 0x2c6a, | |
1460 | 0x2c6b => 0x2c6c, | |
1461 | 0x2c6d => 0x0251, | |
1462 | 0x2c6e => 0x0271, | |
1463 | 0x2c6f => 0x0250, | |
1464 | 0x2c70 => 0x0252, | |
1465 | 0x2c72 => 0x2c73, | |
1466 | 0x2c75 => 0x2c76, | |
1467 | 0x2c7e => 0x023f, | |
1468 | 0x2c7f => 0x0240, | |
1469 | 0x2c80 => 0x2c81, | |
1470 | 0x2c82 => 0x2c83, | |
1471 | 0x2c84 => 0x2c85, | |
1472 | 0x2c86 => 0x2c87, | |
1473 | 0x2c88 => 0x2c89, | |
1474 | 0x2c8a => 0x2c8b, | |
1475 | 0x2c8c => 0x2c8d, | |
1476 | 0x2c8e => 0x2c8f, | |
1477 | 0x2c90 => 0x2c91, | |
1478 | 0x2c92 => 0x2c93, | |
1479 | 0x2c94 => 0x2c95, | |
1480 | 0x2c96 => 0x2c97, | |
1481 | 0x2c98 => 0x2c99, | |
1482 | 0x2c9a => 0x2c9b, | |
1483 | 0x2c9c => 0x2c9d, | |
1484 | 0x2c9e => 0x2c9f, | |
1485 | 0x2ca0 => 0x2ca1, | |
1486 | 0x2ca2 => 0x2ca3, | |
1487 | 0x2ca4 => 0x2ca5, | |
1488 | 0x2ca6 => 0x2ca7, | |
1489 | 0x2ca8 => 0x2ca9, | |
1490 | 0x2caa => 0x2cab, | |
1491 | 0x2cac => 0x2cad, | |
1492 | 0x2cae => 0x2caf, | |
1493 | 0x2cb0 => 0x2cb1, | |
1494 | 0x2cb2 => 0x2cb3, | |
1495 | 0x2cb4 => 0x2cb5, | |
1496 | 0x2cb6 => 0x2cb7, | |
1497 | 0x2cb8 => 0x2cb9, | |
1498 | 0x2cba => 0x2cbb, | |
1499 | 0x2cbc => 0x2cbd, | |
1500 | 0x2cbe => 0x2cbf, | |
1501 | 0x2cc0 => 0x2cc1, | |
1502 | 0x2cc2 => 0x2cc3, | |
1503 | 0x2cc4 => 0x2cc5, | |
1504 | 0x2cc6 => 0x2cc7, | |
1505 | 0x2cc8 => 0x2cc9, | |
1506 | 0x2cca => 0x2ccb, | |
1507 | 0x2ccc => 0x2ccd, | |
1508 | 0x2cce => 0x2ccf, | |
1509 | 0x2cd0 => 0x2cd1, | |
1510 | 0x2cd2 => 0x2cd3, | |
1511 | 0x2cd4 => 0x2cd5, | |
1512 | 0x2cd6 => 0x2cd7, | |
1513 | 0x2cd8 => 0x2cd9, | |
1514 | 0x2cda => 0x2cdb, | |
1515 | 0x2cdc => 0x2cdd, | |
1516 | 0x2cde => 0x2cdf, | |
1517 | 0x2ce0 => 0x2ce1, | |
1518 | 0x2ce2 => 0x2ce3, | |
1519 | 0x2ceb => 0x2cec, | |
1520 | 0x2ced => 0x2cee, | |
1521 | 0x2cf2 => 0x2cf3, | |
1522 | 0xa640 => 0xa641, | |
1523 | 0xa642 => 0xa643, | |
1524 | 0xa644 => 0xa645, | |
1525 | 0xa646 => 0xa647, | |
1526 | 0xa648 => 0xa649, | |
1527 | 0xa64a => 0xa64b, | |
1528 | 0xa64c => 0xa64d, | |
1529 | 0xa64e => 0xa64f, | |
1530 | 0xa650 => 0xa651, | |
1531 | 0xa652 => 0xa653, | |
1532 | 0xa654 => 0xa655, | |
1533 | 0xa656 => 0xa657, | |
1534 | 0xa658 => 0xa659, | |
1535 | 0xa65a => 0xa65b, | |
1536 | 0xa65c => 0xa65d, | |
1537 | 0xa65e => 0xa65f, | |
1538 | 0xa660 => 0xa661, | |
1539 | 0xa662 => 0xa663, | |
1540 | 0xa664 => 0xa665, | |
1541 | 0xa666 => 0xa667, | |
1542 | 0xa668 => 0xa669, | |
1543 | 0xa66a => 0xa66b, | |
1544 | 0xa66c => 0xa66d, | |
1545 | 0xa680 => 0xa681, | |
1546 | 0xa682 => 0xa683, | |
1547 | 0xa684 => 0xa685, | |
1548 | 0xa686 => 0xa687, | |
1549 | 0xa688 => 0xa689, | |
1550 | 0xa68a => 0xa68b, | |
1551 | 0xa68c => 0xa68d, | |
1552 | 0xa68e => 0xa68f, | |
1553 | 0xa690 => 0xa691, | |
1554 | 0xa692 => 0xa693, | |
1555 | 0xa694 => 0xa695, | |
1556 | 0xa696 => 0xa697, | |
1557 | 0xa698 => 0xa699, | |
1558 | 0xa69a => 0xa69b, | |
1559 | 0xa722 => 0xa723, | |
1560 | 0xa724 => 0xa725, | |
1561 | 0xa726 => 0xa727, | |
1562 | 0xa728 => 0xa729, | |
1563 | 0xa72a => 0xa72b, | |
1564 | 0xa72c => 0xa72d, | |
1565 | 0xa72e => 0xa72f, | |
1566 | 0xa732 => 0xa733, | |
1567 | 0xa734 => 0xa735, | |
1568 | 0xa736 => 0xa737, | |
1569 | 0xa738 => 0xa739, | |
1570 | 0xa73a => 0xa73b, | |
1571 | 0xa73c => 0xa73d, | |
1572 | 0xa73e => 0xa73f, | |
1573 | 0xa740 => 0xa741, | |
1574 | 0xa742 => 0xa743, | |
1575 | 0xa744 => 0xa745, | |
1576 | 0xa746 => 0xa747, | |
1577 | 0xa748 => 0xa749, | |
1578 | 0xa74a => 0xa74b, | |
1579 | 0xa74c => 0xa74d, | |
1580 | 0xa74e => 0xa74f, | |
1581 | 0xa750 => 0xa751, | |
1582 | 0xa752 => 0xa753, | |
1583 | 0xa754 => 0xa755, | |
1584 | 0xa756 => 0xa757, | |
1585 | 0xa758 => 0xa759, | |
1586 | 0xa75a => 0xa75b, | |
1587 | 0xa75c => 0xa75d, | |
1588 | 0xa75e => 0xa75f, | |
1589 | 0xa760 => 0xa761, | |
1590 | 0xa762 => 0xa763, | |
1591 | 0xa764 => 0xa765, | |
1592 | 0xa766 => 0xa767, | |
1593 | 0xa768 => 0xa769, | |
1594 | 0xa76a => 0xa76b, | |
1595 | 0xa76c => 0xa76d, | |
1596 | 0xa76e => 0xa76f, | |
1597 | 0xa779 => 0xa77a, | |
1598 | 0xa77b => 0xa77c, | |
1599 | 0xa77d => 0x1d79, | |
1600 | 0xa77e => 0xa77f, | |
1601 | 0xa780 => 0xa781, | |
1602 | 0xa782 => 0xa783, | |
1603 | 0xa784 => 0xa785, | |
1604 | 0xa786 => 0xa787, | |
1605 | 0xa78b => 0xa78c, | |
1606 | 0xa78d => 0x0265, | |
1607 | 0xa790 => 0xa791, | |
1608 | 0xa792 => 0xa793, | |
1609 | 0xa796 => 0xa797, | |
1610 | 0xa798 => 0xa799, | |
1611 | 0xa79a => 0xa79b, | |
1612 | 0xa79c => 0xa79d, | |
1613 | 0xa79e => 0xa79f, | |
1614 | 0xa7a0 => 0xa7a1, | |
1615 | 0xa7a2 => 0xa7a3, | |
1616 | 0xa7a4 => 0xa7a5, | |
1617 | 0xa7a6 => 0xa7a7, | |
1618 | 0xa7a8 => 0xa7a9, | |
1619 | 0xa7aa => 0x0266, | |
1620 | 0xa7ab => 0x025c, | |
1621 | 0xa7ac => 0x0261, | |
1622 | 0xa7ad => 0x026c, | |
1623 | 0xa7ae => 0x026a, | |
1624 | 0xa7b0 => 0x029e, | |
1625 | 0xa7b1 => 0x0287, | |
1626 | 0xa7b2 => 0x029d, | |
1627 | 0xa7b3 => 0xab53, | |
1628 | 0xa7b4 => 0xa7b5, | |
1629 | 0xa7b6 => 0xa7b7, | |
1630 | 0xa7b8 => 0xa7b9, | |
1631 | 0xa7ba => 0xa7bb, | |
1632 | 0xa7bc => 0xa7bd, | |
1633 | 0xa7be => 0xa7bf, | |
1634 | 0xa7c2 => 0xa7c3, | |
1635 | 0xa7c4 => 0xa794, | |
1636 | 0xa7c5 => 0x0282, | |
1637 | 0xa7c6 => 0x1d8e, | |
1638 | 0xab70 => 0x13a0, | |
1639 | 0xab71 => 0x13a1, | |
1640 | 0xab72 => 0x13a2, | |
1641 | 0xab73 => 0x13a3, | |
1642 | 0xab74 => 0x13a4, | |
1643 | 0xab75 => 0x13a5, | |
1644 | 0xab76 => 0x13a6, | |
1645 | 0xab77 => 0x13a7, | |
1646 | 0xab78 => 0x13a8, | |
1647 | 0xab79 => 0x13a9, | |
1648 | 0xab7a => 0x13aa, | |
1649 | 0xab7b => 0x13ab, | |
1650 | 0xab7c => 0x13ac, | |
1651 | 0xab7d => 0x13ad, | |
1652 | 0xab7e => 0x13ae, | |
1653 | 0xab7f => 0x13af, | |
1654 | 0xab80 => 0x13b0, | |
1655 | 0xab81 => 0x13b1, | |
1656 | 0xab82 => 0x13b2, | |
1657 | 0xab83 => 0x13b3, | |
1658 | 0xab84 => 0x13b4, | |
1659 | 0xab85 => 0x13b5, | |
1660 | 0xab86 => 0x13b6, | |
1661 | 0xab87 => 0x13b7, | |
1662 | 0xab88 => 0x13b8, | |
1663 | 0xab89 => 0x13b9, | |
1664 | 0xab8a => 0x13ba, | |
1665 | 0xab8b => 0x13bb, | |
1666 | 0xab8c => 0x13bc, | |
1667 | 0xab8d => 0x13bd, | |
1668 | 0xab8e => 0x13be, | |
1669 | 0xab8f => 0x13bf, | |
1670 | 0xab90 => 0x13c0, | |
1671 | 0xab91 => 0x13c1, | |
1672 | 0xab92 => 0x13c2, | |
1673 | 0xab93 => 0x13c3, | |
1674 | 0xab94 => 0x13c4, | |
1675 | 0xab95 => 0x13c5, | |
1676 | 0xab96 => 0x13c6, | |
1677 | 0xab97 => 0x13c7, | |
1678 | 0xab98 => 0x13c8, | |
1679 | 0xab99 => 0x13c9, | |
1680 | 0xab9a => 0x13ca, | |
1681 | 0xab9b => 0x13cb, | |
1682 | 0xab9c => 0x13cc, | |
1683 | 0xab9d => 0x13cd, | |
1684 | 0xab9e => 0x13ce, | |
1685 | 0xab9f => 0x13cf, | |
1686 | 0xaba0 => 0x13d0, | |
1687 | 0xaba1 => 0x13d1, | |
1688 | 0xaba2 => 0x13d2, | |
1689 | 0xaba3 => 0x13d3, | |
1690 | 0xaba4 => 0x13d4, | |
1691 | 0xaba5 => 0x13d5, | |
1692 | 0xaba6 => 0x13d6, | |
1693 | 0xaba7 => 0x13d7, | |
1694 | 0xaba8 => 0x13d8, | |
1695 | 0xaba9 => 0x13d9, | |
1696 | 0xabaa => 0x13da, | |
1697 | 0xabab => 0x13db, | |
1698 | 0xabac => 0x13dc, | |
1699 | 0xabad => 0x13dd, | |
1700 | 0xabae => 0x13de, | |
1701 | 0xabaf => 0x13df, | |
1702 | 0xabb0 => 0x13e0, | |
1703 | 0xabb1 => 0x13e1, | |
1704 | 0xabb2 => 0x13e2, | |
1705 | 0xabb3 => 0x13e3, | |
1706 | 0xabb4 => 0x13e4, | |
1707 | 0xabb5 => 0x13e5, | |
1708 | 0xabb6 => 0x13e6, | |
1709 | 0xabb7 => 0x13e7, | |
1710 | 0xabb8 => 0x13e8, | |
1711 | 0xabb9 => 0x13e9, | |
1712 | 0xabba => 0x13ea, | |
1713 | 0xabbb => 0x13eb, | |
1714 | 0xabbc => 0x13ec, | |
1715 | 0xabbd => 0x13ed, | |
1716 | 0xabbe => 0x13ee, | |
1717 | 0xabbf => 0x13ef, | |
1718 | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}',), | |
1719 | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}',), | |
1720 | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}',), | |
1721 | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}',), | |
1722 | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}',), | |
1723 | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}',), | |
1724 | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}',), | |
1725 | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}',), | |
1726 | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}',), | |
1727 | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}',), | |
1728 | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}',), | |
1729 | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}',), | |
1730 | 0xff21 => 0xff41, | |
1731 | 0xff22 => 0xff42, | |
1732 | 0xff23 => 0xff43, | |
1733 | 0xff24 => 0xff44, | |
1734 | 0xff25 => 0xff45, | |
1735 | 0xff26 => 0xff46, | |
1736 | 0xff27 => 0xff47, | |
1737 | 0xff28 => 0xff48, | |
1738 | 0xff29 => 0xff49, | |
1739 | 0xff2a => 0xff4a, | |
1740 | 0xff2b => 0xff4b, | |
1741 | 0xff2c => 0xff4c, | |
1742 | 0xff2d => 0xff4d, | |
1743 | 0xff2e => 0xff4e, | |
1744 | 0xff2f => 0xff4f, | |
1745 | 0xff30 => 0xff50, | |
1746 | 0xff31 => 0xff51, | |
1747 | 0xff32 => 0xff52, | |
1748 | 0xff33 => 0xff53, | |
1749 | 0xff34 => 0xff54, | |
1750 | 0xff35 => 0xff55, | |
1751 | 0xff36 => 0xff56, | |
1752 | 0xff37 => 0xff57, | |
1753 | 0xff38 => 0xff58, | |
1754 | 0xff39 => 0xff59, | |
1755 | 0xff3a => 0xff5a, | |
1756 | 0x10400 => 0x10428, | |
1757 | 0x10401 => 0x10429, | |
1758 | 0x10402 => 0x1042a, | |
1759 | 0x10403 => 0x1042b, | |
1760 | 0x10404 => 0x1042c, | |
1761 | 0x10405 => 0x1042d, | |
1762 | 0x10406 => 0x1042e, | |
1763 | 0x10407 => 0x1042f, | |
1764 | 0x10408 => 0x10430, | |
1765 | 0x10409 => 0x10431, | |
1766 | 0x1040a => 0x10432, | |
1767 | 0x1040b => 0x10433, | |
1768 | 0x1040c => 0x10434, | |
1769 | 0x1040d => 0x10435, | |
1770 | 0x1040e => 0x10436, | |
1771 | 0x1040f => 0x10437, | |
1772 | 0x10410 => 0x10438, | |
1773 | 0x10411 => 0x10439, | |
1774 | 0x10412 => 0x1043a, | |
1775 | 0x10413 => 0x1043b, | |
1776 | 0x10414 => 0x1043c, | |
1777 | 0x10415 => 0x1043d, | |
1778 | 0x10416 => 0x1043e, | |
1779 | 0x10417 => 0x1043f, | |
1780 | 0x10418 => 0x10440, | |
1781 | 0x10419 => 0x10441, | |
1782 | 0x1041a => 0x10442, | |
1783 | 0x1041b => 0x10443, | |
1784 | 0x1041c => 0x10444, | |
1785 | 0x1041d => 0x10445, | |
1786 | 0x1041e => 0x10446, | |
1787 | 0x1041f => 0x10447, | |
1788 | 0x10420 => 0x10448, | |
1789 | 0x10421 => 0x10449, | |
1790 | 0x10422 => 0x1044a, | |
1791 | 0x10423 => 0x1044b, | |
1792 | 0x10424 => 0x1044c, | |
1793 | 0x10425 => 0x1044d, | |
1794 | 0x10426 => 0x1044e, | |
1795 | 0x10427 => 0x1044f, | |
1796 | 0x104b0 => 0x104d8, | |
1797 | 0x104b1 => 0x104d9, | |
1798 | 0x104b2 => 0x104da, | |
1799 | 0x104b3 => 0x104db, | |
1800 | 0x104b4 => 0x104dc, | |
1801 | 0x104b5 => 0x104dd, | |
1802 | 0x104b6 => 0x104de, | |
1803 | 0x104b7 => 0x104df, | |
1804 | 0x104b8 => 0x104e0, | |
1805 | 0x104b9 => 0x104e1, | |
1806 | 0x104ba => 0x104e2, | |
1807 | 0x104bb => 0x104e3, | |
1808 | 0x104bc => 0x104e4, | |
1809 | 0x104bd => 0x104e5, | |
1810 | 0x104be => 0x104e6, | |
1811 | 0x104bf => 0x104e7, | |
1812 | 0x104c0 => 0x104e8, | |
1813 | 0x104c1 => 0x104e9, | |
1814 | 0x104c2 => 0x104ea, | |
1815 | 0x104c3 => 0x104eb, | |
1816 | 0x104c4 => 0x104ec, | |
1817 | 0x104c5 => 0x104ed, | |
1818 | 0x104c6 => 0x104ee, | |
1819 | 0x104c7 => 0x104ef, | |
1820 | 0x104c8 => 0x104f0, | |
1821 | 0x104c9 => 0x104f1, | |
1822 | 0x104ca => 0x104f2, | |
1823 | 0x104cb => 0x104f3, | |
1824 | 0x104cc => 0x104f4, | |
1825 | 0x104cd => 0x104f5, | |
1826 | 0x104ce => 0x104f6, | |
1827 | 0x104cf => 0x104f7, | |
1828 | 0x104d0 => 0x104f8, | |
1829 | 0x104d1 => 0x104f9, | |
1830 | 0x104d2 => 0x104fa, | |
1831 | 0x104d3 => 0x104fb, | |
1832 | 0x10c80 => 0x10cc0, | |
1833 | 0x10c81 => 0x10cc1, | |
1834 | 0x10c82 => 0x10cc2, | |
1835 | 0x10c83 => 0x10cc3, | |
1836 | 0x10c84 => 0x10cc4, | |
1837 | 0x10c85 => 0x10cc5, | |
1838 | 0x10c86 => 0x10cc6, | |
1839 | 0x10c87 => 0x10cc7, | |
1840 | 0x10c88 => 0x10cc8, | |
1841 | 0x10c89 => 0x10cc9, | |
1842 | 0x10c8a => 0x10cca, | |
1843 | 0x10c8b => 0x10ccb, | |
1844 | 0x10c8c => 0x10ccc, | |
1845 | 0x10c8d => 0x10ccd, | |
1846 | 0x10c8e => 0x10cce, | |
1847 | 0x10c8f => 0x10ccf, | |
1848 | 0x10c90 => 0x10cd0, | |
1849 | 0x10c91 => 0x10cd1, | |
1850 | 0x10c92 => 0x10cd2, | |
1851 | 0x10c93 => 0x10cd3, | |
1852 | 0x10c94 => 0x10cd4, | |
1853 | 0x10c95 => 0x10cd5, | |
1854 | 0x10c96 => 0x10cd6, | |
1855 | 0x10c97 => 0x10cd7, | |
1856 | 0x10c98 => 0x10cd8, | |
1857 | 0x10c99 => 0x10cd9, | |
1858 | 0x10c9a => 0x10cda, | |
1859 | 0x10c9b => 0x10cdb, | |
1860 | 0x10c9c => 0x10cdc, | |
1861 | 0x10c9d => 0x10cdd, | |
1862 | 0x10c9e => 0x10cde, | |
1863 | 0x10c9f => 0x10cdf, | |
1864 | 0x10ca0 => 0x10ce0, | |
1865 | 0x10ca1 => 0x10ce1, | |
1866 | 0x10ca2 => 0x10ce2, | |
1867 | 0x10ca3 => 0x10ce3, | |
1868 | 0x10ca4 => 0x10ce4, | |
1869 | 0x10ca5 => 0x10ce5, | |
1870 | 0x10ca6 => 0x10ce6, | |
1871 | 0x10ca7 => 0x10ce7, | |
1872 | 0x10ca8 => 0x10ce8, | |
1873 | 0x10ca9 => 0x10ce9, | |
1874 | 0x10caa => 0x10cea, | |
1875 | 0x10cab => 0x10ceb, | |
1876 | 0x10cac => 0x10cec, | |
1877 | 0x10cad => 0x10ced, | |
1878 | 0x10cae => 0x10cee, | |
1879 | 0x10caf => 0x10cef, | |
1880 | 0x10cb0 => 0x10cf0, | |
1881 | 0x10cb1 => 0x10cf1, | |
1882 | 0x10cb2 => 0x10cf2, | |
1883 | 0x118a0 => 0x118c0, | |
1884 | 0x118a1 => 0x118c1, | |
1885 | 0x118a2 => 0x118c2, | |
1886 | 0x118a3 => 0x118c3, | |
1887 | 0x118a4 => 0x118c4, | |
1888 | 0x118a5 => 0x118c5, | |
1889 | 0x118a6 => 0x118c6, | |
1890 | 0x118a7 => 0x118c7, | |
1891 | 0x118a8 => 0x118c8, | |
1892 | 0x118a9 => 0x118c9, | |
1893 | 0x118aa => 0x118ca, | |
1894 | 0x118ab => 0x118cb, | |
1895 | 0x118ac => 0x118cc, | |
1896 | 0x118ad => 0x118cd, | |
1897 | 0x118ae => 0x118ce, | |
1898 | 0x118af => 0x118cf, | |
1899 | 0x118b0 => 0x118d0, | |
1900 | 0x118b1 => 0x118d1, | |
1901 | 0x118b2 => 0x118d2, | |
1902 | 0x118b3 => 0x118d3, | |
1903 | 0x118b4 => 0x118d4, | |
1904 | 0x118b5 => 0x118d5, | |
1905 | 0x118b6 => 0x118d6, | |
1906 | 0x118b7 => 0x118d7, | |
1907 | 0x118b8 => 0x118d8, | |
1908 | 0x118b9 => 0x118d9, | |
1909 | 0x118ba => 0x118da, | |
1910 | 0x118bb => 0x118db, | |
1911 | 0x118bc => 0x118dc, | |
1912 | 0x118bd => 0x118dd, | |
1913 | 0x118be => 0x118de, | |
1914 | 0x118bf => 0x118df, | |
1915 | 0x16e40 => 0x16e60, | |
1916 | 0x16e41 => 0x16e61, | |
1917 | 0x16e42 => 0x16e62, | |
1918 | 0x16e43 => 0x16e63, | |
1919 | 0x16e44 => 0x16e64, | |
1920 | 0x16e45 => 0x16e65, | |
1921 | 0x16e46 => 0x16e66, | |
1922 | 0x16e47 => 0x16e67, | |
1923 | 0x16e48 => 0x16e68, | |
1924 | 0x16e49 => 0x16e69, | |
1925 | 0x16e4a => 0x16e6a, | |
1926 | 0x16e4b => 0x16e6b, | |
1927 | 0x16e4c => 0x16e6c, | |
1928 | 0x16e4d => 0x16e6d, | |
1929 | 0x16e4e => 0x16e6e, | |
1930 | 0x16e4f => 0x16e6f, | |
1931 | 0x16e50 => 0x16e70, | |
1932 | 0x16e51 => 0x16e71, | |
1933 | 0x16e52 => 0x16e72, | |
1934 | 0x16e53 => 0x16e73, | |
1935 | 0x16e54 => 0x16e74, | |
1936 | 0x16e55 => 0x16e75, | |
1937 | 0x16e56 => 0x16e76, | |
1938 | 0x16e57 => 0x16e77, | |
1939 | 0x16e58 => 0x16e78, | |
1940 | 0x16e59 => 0x16e79, | |
1941 | 0x16e5a => 0x16e7a, | |
1942 | 0x16e5b => 0x16e7b, | |
1943 | 0x16e5c => 0x16e7c, | |
1944 | 0x16e5d => 0x16e7d, | |
1945 | 0x16e5e => 0x16e7e, | |
1946 | 0x16e5f => 0x16e7f, | |
1947 | 0x1e900 => 0x1e922, | |
1948 | 0x1e901 => 0x1e923, | |
1949 | 0x1e902 => 0x1e924, | |
1950 | 0x1e903 => 0x1e925, | |
1951 | 0x1e904 => 0x1e926, | |
1952 | 0x1e905 => 0x1e927, | |
1953 | 0x1e906 => 0x1e928, | |
1954 | 0x1e907 => 0x1e929, | |
1955 | 0x1e908 => 0x1e92a, | |
1956 | 0x1e909 => 0x1e92b, | |
1957 | 0x1e90a => 0x1e92c, | |
1958 | 0x1e90b => 0x1e92d, | |
1959 | 0x1e90c => 0x1e92e, | |
1960 | 0x1e90d => 0x1e92f, | |
1961 | 0x1e90e => 0x1e930, | |
1962 | 0x1e90f => 0x1e931, | |
1963 | 0x1e910 => 0x1e932, | |
1964 | 0x1e911 => 0x1e933, | |
1965 | 0x1e912 => 0x1e934, | |
1966 | 0x1e913 => 0x1e935, | |
1967 | 0x1e914 => 0x1e936, | |
1968 | 0x1e915 => 0x1e937, | |
1969 | 0x1e916 => 0x1e938, | |
1970 | 0x1e917 => 0x1e939, | |
1971 | 0x1e918 => 0x1e93a, | |
1972 | 0x1e919 => 0x1e93b, | |
1973 | 0x1e91a => 0x1e93c, | |
1974 | 0x1e91b => 0x1e93d, | |
1975 | 0x1e91c => 0x1e93e, | |
1976 | 0x1e91d => 0x1e93f, | |
1977 | 0x1e91e => 0x1e940, | |
1978 | 0x1e91f => 0x1e941, | |
1979 | 0x1e920 => 0x1e942, | |
1980 | 0x1e921 => 0x1e943, | |
1981 | _ => orig as u32 | |
1982 | }; | |
1983 | Fold::One( char::from_u32(single_char).unwrap() ) | |
1984 | } | |
1985 | ||
1986 | for c_index in 0..126217 { | |
1987 | if let Some(c) = char::from_u32(c_index) { | |
1988 | let reference: Vec<char> = lookup_naive(c).collect(); | |
1989 | let actual: Vec<char> = lookup(c).collect(); | |
1990 | if actual != reference { | |
1991 | assert!(false, "case-folding {:?} (#0x{:04x}) failed: Expected {:?}, got {:?}", c, c_index, reference, actual); | |
1992 | } | |
1993 | } | |
48663c56 XL |
1994 | } |
1995 | } |