OLD | NEW |
1 // Copyright 2007-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
11 // with the distribution. | 11 // with the distribution. |
12 // * Neither the name of Google Inc. nor the names of its | 12 // * Neither the name of Google Inc. nor the names of its |
13 // contributors may be used to endorse or promote products derived | 13 // contributors may be used to endorse or promote products derived |
14 // from this software without specific prior written permission. | 14 // from this software without specific prior written permission. |
15 // | 15 // |
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 // | 27 // |
28 // This file was generated at 2008-10-01 18:05:45.480436 | 28 // This file was generated at 2008-11-24 14:11:36.319039 |
29 | 29 |
30 #include "unicode-inl.h" | 30 #include "unicode-inl.h" |
31 #include <cstdlib> | 31 #include <cstdlib> |
32 #include <cstdio> | 32 #include <cstdio> |
33 | 33 |
34 namespace unibrow { | 34 namespace unibrow { |
35 | 35 |
| 36 static const int kStartBit = (1 << 30); |
| 37 static const int kChunkBits = (1 << 15); |
| 38 |
36 /** | 39 /** |
37 * \file | 40 * \file |
38 * Implementations of functions for working with unicode. | 41 * Implementations of functions for working with unicode. |
39 */ | 42 */ |
40 | 43 |
41 typedef signed short int16_t; // NOLINT | 44 typedef signed short int16_t; // NOLINT |
42 typedef unsigned short uint16_t; // NOLINT | 45 typedef unsigned short uint16_t; // NOLINT |
| 46 typedef int int32_t; // NOLINT |
43 | 47 |
44 // All access to the character table should go through this function. | 48 // All access to the character table should go through this function. |
45 template <int D> | 49 template <int D> |
46 static inline uchar TableGet(const uint16_t* table, int index) { | 50 static inline uchar TableGet(const int32_t* table, int index) { |
47 return table[D * index]; | 51 return table[D * index]; |
48 } | 52 } |
49 | 53 |
50 static inline uchar GetEntry(uint16_t entry) { | 54 static inline uchar GetEntry(int32_t entry) { |
51 return entry & 0x7fff; | 55 return entry & (kStartBit - 1); |
52 } | 56 } |
53 | 57 |
54 static inline bool IsStart(uint16_t entry) { | 58 static inline bool IsStart(int32_t entry) { |
55 return (entry & (1 << 15)) != 0; | 59 return (entry & kStartBit) != 0; |
56 } | 60 } |
57 | 61 |
58 /** | 62 /** |
59 * Look up a character in the unicode table using a mix of binary and | 63 * Look up a character in the unicode table using a mix of binary and |
60 * interpolation search. For a uniformly distributed array | 64 * interpolation search. For a uniformly distributed array |
61 * interpolation search beats binary search by a wide margin. However, | 65 * interpolation search beats binary search by a wide margin. However, |
62 * in this case interpolation search degenerates because of some very | 66 * in this case interpolation search degenerates because of some very |
63 * high values in the lower end of the table so this function uses a | 67 * high values in the lower end of the table so this function uses a |
64 * combination. The average number of steps to look up the information | 68 * combination. The average number of steps to look up the information |
65 * about a character is around 10, slightly higher if there is no | 69 * about a character is around 10, slightly higher if there is no |
66 * information available about the character. | 70 * information available about the character. |
67 */ | 71 */ |
68 static bool LookupPredicate(const uint16_t* table, uint16_t size, uchar chr) { | 72 static bool LookupPredicate(const int32_t* table, uint16_t size, uchar chr) { |
69 static const int kEntryDist = 1; | 73 static const int kEntryDist = 1; |
70 uint16_t value = chr & 0x7fff; | 74 uint16_t value = chr & (kChunkBits - 1); |
71 unsigned int low = 0; | 75 unsigned int low = 0; |
72 unsigned int high = size - 1; | 76 unsigned int high = size - 1; |
73 while (high != low) { | 77 while (high != low) { |
74 unsigned int mid = low + ((high - low) >> 1); | 78 unsigned int mid = low + ((high - low) >> 1); |
75 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid)); | 79 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid)); |
76 // If we've found an entry less than or equal to this one, and the | 80 // If we've found an entry less than or equal to this one, and the |
77 // next one is not also less than this one, we've arrived. | 81 // next one is not also less than this one, we've arrived. |
78 if ((current_value <= value) && | 82 if ((current_value <= value) && |
79 (mid + 1 == size || | 83 (mid + 1 == size || |
80 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) { | 84 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) { |
81 low = mid; | 85 low = mid; |
82 break; | 86 break; |
83 } else if (current_value < value) { | 87 } else if (current_value < value) { |
84 low = mid + 1; | 88 low = mid + 1; |
85 } else if (current_value > value) { | 89 } else if (current_value > value) { |
86 // If we've just checked the bottom-most value and it's not | 90 // If we've just checked the bottom-most value and it's not |
87 // the one we're looking for, we're done. | 91 // the one we're looking for, we're done. |
88 if (mid == 0) break; | 92 if (mid == 0) break; |
89 high = mid - 1; | 93 high = mid - 1; |
90 } | 94 } |
91 } | 95 } |
92 uint16_t field = TableGet<kEntryDist>(table, low); | 96 int32_t field = TableGet<kEntryDist>(table, low); |
93 return (GetEntry(field) == value) || | 97 uchar entry = GetEntry(field); |
94 (GetEntry(field) < value && IsStart(field)); | 98 bool is_start = IsStart(field); |
| 99 return (entry == value) || |
| 100 (entry < value && is_start); |
95 } | 101 } |
96 | 102 |
| 103 template <int kW> |
97 struct MultiCharacterSpecialCase { | 104 struct MultiCharacterSpecialCase { |
98 uint16_t length; | 105 uint16_t length; |
99 uchar chars[kMaxCaseConvertedSize]; | 106 uchar chars[kW]; |
100 }; | 107 }; |
101 | 108 |
102 // Look up the mapping for the given character in the specified table, | 109 // Look up the mapping for the given character in the specified table, |
103 // which is of the specified length and uses the specified special case | 110 // which is of the specified length and uses the specified special case |
104 // mapping for multi-char mappings. The next parameter is the character | 111 // mapping for multi-char mappings. The next parameter is the character |
105 // following the one to map. The result will be written in to the result | 112 // following the one to map. The result will be written in to the result |
106 // buffer and the number of characters written will be returned. Finally, | 113 // buffer and the number of characters written will be returned. Finally, |
107 // if the allow_caching_ptr is non-null then false will be stored in | 114 // if the allow_caching_ptr is non-null then false will be stored in |
108 // it if the result contains multiple characters or depends on the | 115 // it if the result contains multiple characters or depends on the |
109 // context. | 116 // context. |
110 static int LookupMapping(const uint16_t* table, uint16_t size, | 117 template <int kW> |
111 const MultiCharacterSpecialCase* multi_chars, uchar chr, uchar next, | 118 static int LookupMapping(const int32_t* table, |
112 uchar* result, bool* allow_caching_ptr) { | 119 uint16_t size, |
| 120 const MultiCharacterSpecialCase<kW>* multi_chars, |
| 121 uchar chr, |
| 122 uchar next, |
| 123 uchar* result, |
| 124 bool* allow_caching_ptr) { |
113 static const int kEntryDist = 2; | 125 static const int kEntryDist = 2; |
114 uint16_t value = chr & 0x7fff; | 126 uint16_t value = chr & (kChunkBits - 1); |
115 unsigned int low = 0; | 127 unsigned int low = 0; |
116 unsigned int high = size - 1; | 128 unsigned int high = size - 1; |
117 while (high != low) { | 129 while (high != low) { |
118 unsigned int mid = low + ((high - low) >> 1); | 130 unsigned int mid = low + ((high - low) >> 1); |
119 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid)); | 131 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid)); |
120 // If we've found an entry less than or equal to this one, and the next one | 132 // If we've found an entry less than or equal to this one, and the next one |
121 // is not also less than this one, we've arrived. | 133 // is not also less than this one, we've arrived. |
122 if ((current_value <= value) && | 134 if ((current_value <= value) && |
123 (mid + 1 == size || | 135 (mid + 1 == size || |
124 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) { | 136 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) { |
125 low = mid; | 137 low = mid; |
126 break; | 138 break; |
127 } else if (current_value < value) { | 139 } else if (current_value < value) { |
128 low = mid + 1; | 140 low = mid + 1; |
129 } else if (current_value > value) { | 141 } else if (current_value > value) { |
130 // If we've just checked the bottom-most value and it's not | 142 // If we've just checked the bottom-most value and it's not |
131 // the one we're looking for, we're done. | 143 // the one we're looking for, we're done. |
132 if (mid == 0) break; | 144 if (mid == 0) break; |
133 high = mid - 1; | 145 high = mid - 1; |
134 } | 146 } |
135 } | 147 } |
136 uint16_t field = TableGet<kEntryDist>(table, low); | 148 int32_t field = TableGet<kEntryDist>(table, low); |
137 bool found = (GetEntry(field) == value) || | 149 uchar entry = GetEntry(field); |
138 (GetEntry(field) < value && IsStart(field)); | 150 bool is_start = IsStart(field); |
| 151 bool found = (entry == value) || (entry < value && is_start); |
139 if (found) { | 152 if (found) { |
140 int16_t value = table[2 * low + 1]; | 153 int32_t value = table[2 * low + 1]; |
141 if (value == 0) { | 154 if (value == 0) { |
142 // 0 means not present | 155 // 0 means not present |
143 return 0; | 156 return 0; |
144 } else if ((value & 3) == 0) { | 157 } else if ((value & 3) == 0) { |
145 // Low bits 0 means a constant offset from the given character. | 158 // Low bits 0 means a constant offset from the given character. |
146 result[0] = chr + (value >> 2); | 159 result[0] = chr + (value >> 2); |
147 return 1; | 160 return 1; |
148 } else if ((value & 3) == 1) { | 161 } else if ((value & 3) == 1) { |
149 // Low bits 1 means a special case mapping | 162 // Low bits 1 means a special case mapping |
150 if (allow_caching_ptr) *allow_caching_ptr = false; | 163 if (allow_caching_ptr) *allow_caching_ptr = false; |
151 const MultiCharacterSpecialCase& mapping = multi_chars[value >> 2]; | 164 const MultiCharacterSpecialCase<kW>& mapping = multi_chars[value >> 2]; |
152 for (int i = 0; i < mapping.length; i++) | 165 for (int i = 0; i < mapping.length; i++) |
153 result[i] = mapping.chars[i]; | 166 result[i] = mapping.chars[i]; |
154 return mapping.length; | 167 return mapping.length; |
155 } else { | 168 } else { |
156 // Low bits 2 means a really really special case | 169 // Low bits 2 means a really really special case |
157 if (allow_caching_ptr) *allow_caching_ptr = false; | 170 if (allow_caching_ptr) *allow_caching_ptr = false; |
158 // The cases of this switch are defined in unicode.py in the | 171 // The cases of this switch are defined in unicode.py in the |
159 // really_special_cases mapping. | 172 // really_special_cases mapping. |
160 switch (value >> 2) { | 173 switch (value >> 2) { |
161 case 1: | 174 case 1: |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 void CharacterStream::Seek(unsigned position) { | 329 void CharacterStream::Seek(unsigned position) { |
317 Rewind(); | 330 Rewind(); |
318 for (unsigned i = 0; i < position; i++) { | 331 for (unsigned i = 0; i < position; i++) { |
319 GetNext(); | 332 GetNext(); |
320 } | 333 } |
321 } | 334 } |
322 | 335 |
323 // Uppercase: point.category == 'Lu' | 336 // Uppercase: point.category == 'Lu' |
324 | 337 |
325 static const uint16_t kUppercaseTable0Size = 509; | 338 static const uint16_t kUppercaseTable0Size = 509; |
326 static const uint16_t kUppercaseTable0[509] = { 32833, 90, 32960, 214, 32984, 22
2, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 28
6, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 313, 315, 317, 31
9, 321, 323, 325, 327, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 35
2, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 33144, 377, 379, 381,
33153, 386, 388, 33158, 391, 33161, 395, 33166, 401, 33171, 404, 33174, 408, 331
80, 413, 33183, 416, 418, 420, 33190, 423, 425, 428, 33198, 431, 33201, 435, 437
, 33207, 440, 444, 452, 455, 458, 461, 463, 465, 467, 469, 471, 473, 475, 478, 4
80, 482, 484, 486, 488, 490, 492, 494, 497, 500, 33270, 504, 506, 508, 510, 512,
514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544,
546, 548, 550, 552, 554, 556, 558, 560, 562, 33338, 571, 33341, 574, 577, 33347
, 582, 584, 586, 588, 590, 902, 33672, 906, 908, 33678, 911, 33681, 929, 33699,
939, 33746, 980, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006,
1012, 1015, 33785, 1018, 33789, 1071, 1120, 1122, 1124, 1126, 1128, 1130, 1132,
1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1162, 1164, 1166, 1
168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 119
4, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 33984, 1217, 1219
, 1221, 1223, 1225, 1227, 1229, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246,
1248, 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1272, 12
74, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298, 3409
7, 1366, 37024, 4293, 7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698
, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724,
7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 77
52, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778
, 7780, 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804,
7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7840, 78
42, 7844, 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, 7864, 7866, 7868
, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894,
7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 79
22, 7924, 7926, 7928, 40712, 7951, 40728, 7965, 40744, 7983, 40760, 7999, 40776,
8013, 8025, 8027, 8029, 8031, 40808, 8047, 40888, 8123, 40904, 8139, 40920, 815
5, 40936, 8172, 40952, 8187, 8450, 8455, 41227, 8461, 41232, 8466, 8469, 41241,
8477, 8484, 8486, 8488, 41258, 8493, 41264, 8499, 41278, 8511, 8517, 8579, 44032
, 11310, 11360, 44130, 11364, 11367, 11369, 11371, 11381, 11392, 11394, 11396, 1
1398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 1142
0, 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442,
11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 11460, 11462, 11464, 114
66, 11468, 11470, 11472, 11474, 11476, 11478, 11480, 11482, 11484, 11486, 11488,
11490 }; // NOLINT | 339 static const int32_t kUppercaseTable0[509] = { 1073741889, 90, 1073742016, 214,
1073742040, 222, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280
, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 313
, 315, 317, 319, 321, 323, 325, 327, 330, 332, 334, 336, 338, 340, 342, 344, 346
, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 10737422
00, 377, 379, 381, 1073742209, 386, 388, 1073742214, 391, 1073742217, 395, 10737
42222, 401, 1073742227, 404, 1073742230, 408, 1073742236, 413, 1073742239, 416,
418, 420, 1073742246, 423, 425, 428, 1073742254, 431, 1073742257, 435, 437, 1073
742263, 440, 444, 452, 455, 458, 461, 463, 465, 467, 469, 471, 473, 475, 478, 48
0, 482, 484, 486, 488, 490, 492, 494, 497, 500, 1073742326, 504, 506, 508, 510,
512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 1073742394, 571, 1073742397, 5
74, 577, 1073742403, 582, 584, 586, 588, 590, 902, 1073742728, 906, 908, 1073742
734, 911, 1073742737, 929, 1073742755, 939, 1073742802, 980, 984, 986, 988, 990,
992, 994, 996, 998, 1000, 1002, 1004, 1006, 1012, 1015, 1073742841, 1018, 10737
42845, 1071, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1
142, 1144, 1146, 1148, 1150, 1152, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 117
6, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202,
1204, 1206, 1208, 1210, 1212, 1214, 1073743040, 1217, 1219, 1221, 1223, 1225, 1
227, 1229, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 125
4, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280,
1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1073743153, 1366, 1073746
080, 4293, 7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 770
2, 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724, 7726, 7728,
7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 7752, 7754, 7
756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 778
2, 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808,
7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7840, 7842, 7844, 7
846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 787
2, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898,
7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7
926, 7928, 1073749768, 7951, 1073749784, 7965, 1073749800, 7983, 1073749816, 799
9, 1073749832, 8013, 8025, 8027, 8029, 8031, 1073749864, 8047, 1073749944, 8123,
1073749960, 8139, 1073749976, 8155, 1073749992, 8172, 1073750008, 8187, 8450, 8
455, 1073750283, 8461, 1073750288, 8466, 8469, 1073750297, 8477, 8484, 8486, 848
8, 1073750314, 8493, 1073750320, 8499, 1073750334, 8511, 8517, 8579, 1073753088,
11310, 11360, 1073753186, 11364, 11367, 11369, 11371, 11381, 11392, 11394, 1139
6, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418,
11420, 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 114
42, 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 11460, 11462, 11464,
11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, 11482, 11484, 11486, 11
488, 11490 }; // NOLINT |
327 static const uint16_t kUppercaseTable1Size = 2; | 340 static const uint16_t kUppercaseTable1Size = 2; |
328 static const uint16_t kUppercaseTable1[2] = { 65313, 32570 }; // NOLINT | 341 static const int32_t kUppercaseTable1[2] = { 1073774369, 32570 }; // NOLINT |
329 static const uint16_t kUppercaseTable2Size = 2; | 342 static const uint16_t kUppercaseTable2Size = 2; |
330 static const uint16_t kUppercaseTable2[2] = { 33792, 1063 }; // NOLINT | 343 static const int32_t kUppercaseTable2[2] = { 1073742848, 1063 }; // NOLINT |
331 static const uint16_t kUppercaseTable3Size = 58; | 344 static const uint16_t kUppercaseTable3Size = 58; |
332 static const uint16_t kUppercaseTable3[58] = { 54272, 21529, 54324, 21581, 54376
, 21633, 21660, 54430, 21663, 21666, 54437, 21670, 54441, 21676, 54446, 21685, 5
4480, 21737, 54532, 21765, 54535, 21770, 54541, 21780, 54550, 21788, 54584, 2181
7, 54587, 21822, 54592, 21828, 21830, 54602, 21840, 54636, 21893, 54688, 21945,
54740, 21997, 54792, 22049, 54844, 22101, 54896, 22153, 54952, 22208, 55010, 222
66, 55068, 22324, 55126, 22382, 55184, 22440, 22474 }; // NOLINT | 345 static const int32_t kUppercaseTable3[58] = { 1073763328, 21529, 1073763380, 215
81, 1073763432, 21633, 21660, 1073763486, 21663, 21666, 1073763493, 21670, 10737
63497, 21676, 1073763502, 21685, 1073763536, 21737, 1073763588, 21765, 107376359
1, 21770, 1073763597, 21780, 1073763606, 21788, 1073763640, 21817, 1073763643, 2
1822, 1073763648, 21828, 21830, 1073763658, 21840, 1073763692, 21893, 1073763744
, 21945, 1073763796, 21997, 1073763848, 22049, 1073763900, 22101, 1073763952, 22
153, 1073764008, 22208, 1073764066, 22266, 1073764124, 22324, 1073764182, 22382,
1073764240, 22440, 22474 }; // NOLINT |
333 bool Uppercase::Is(uchar c) { | 346 bool Uppercase::Is(uchar c) { |
334 int chunk_index = c >> 15; | 347 int chunk_index = c >> 15; |
335 switch (chunk_index) { | 348 switch (chunk_index) { |
336 case 0: return LookupPredicate(kUppercaseTable0, | 349 case 0: return LookupPredicate(kUppercaseTable0, |
337 kUppercaseTable0Size, | 350 kUppercaseTable0Size, |
338 c); | 351 c); |
339 case 1: return LookupPredicate(kUppercaseTable1, | 352 case 1: return LookupPredicate(kUppercaseTable1, |
340 kUppercaseTable1Size, | 353 kUppercaseTable1Size, |
341 c); | 354 c); |
342 case 2: return LookupPredicate(kUppercaseTable2, | 355 case 2: return LookupPredicate(kUppercaseTable2, |
343 kUppercaseTable2Size, | 356 kUppercaseTable2Size, |
344 c); | 357 c); |
345 case 3: return LookupPredicate(kUppercaseTable3, | 358 case 3: return LookupPredicate(kUppercaseTable3, |
346 kUppercaseTable3Size, | 359 kUppercaseTable3Size, |
347 c); | 360 c); |
348 default: return false; | 361 default: return false; |
349 } | 362 } |
350 } | 363 } |
351 | 364 |
352 // Lowercase: point.category == 'Ll' | 365 // Lowercase: point.category == 'Ll' |
353 | 366 |
354 static const uint16_t kLowercaseTable0Size = 528; | 367 static const uint16_t kLowercaseTable0Size = 528; |
355 static const uint16_t kLowercaseTable0[528] = { 32865, 122, 170, 181, 186, 32991
, 246, 33016, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, 2
81, 283, 285, 287, 289, 291, 293, 295, 297, 299, 301, 303, 305, 307, 309, 33079,
312, 314, 316, 318, 320, 322, 324, 326, 33096, 329, 331, 333, 335, 337, 339, 34
1, 343, 345, 347, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 37
3, 375, 378, 380, 33150, 384, 387, 389, 392, 33164, 397, 402, 405, 33177, 411, 4
14, 417, 419, 421, 424, 33194, 427, 429, 432, 436, 438, 33209, 442, 33213, 447,
454, 457, 460, 462, 464, 466, 468, 470, 472, 474, 33244, 477, 479, 481, 483, 485
, 487, 489, 491, 493, 33263, 496, 499, 501, 505, 507, 509, 511, 513, 515, 517, 5
19, 521, 523, 525, 527, 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, 549, 5
51, 553, 555, 557, 559, 561, 33331, 569, 572, 33343, 576, 578, 583, 585, 587, 58
9, 33359, 659, 33429, 687, 33659, 893, 912, 33708, 974, 33744, 977, 33749, 983,
985, 987, 989, 991, 993, 995, 997, 999, 1001, 1003, 1005, 33775, 1011, 1013, 101
6, 33787, 1020, 33840, 1119, 1121, 1123, 1125, 1127, 1129, 1131, 1133, 1135, 113
7, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1163, 1165, 1167, 1169, 1171,
1173, 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1
199, 1201, 1203, 1205, 1207, 1209, 1211, 1213, 1215, 1218, 1220, 1222, 1224, 122
6, 1228, 33998, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251
, 1253, 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269, 1271, 1273, 1275, 1277,
1279, 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 34145, 1415, 4
0192, 7467, 40290, 7543, 40313, 7578, 7681, 7683, 7685, 7687, 7689, 7691, 7693,
7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715, 7717, 7719, 77
21, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747
, 7749, 7751, 7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773,
7775, 7777, 7779, 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 78
01, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827
, 40597, 7835, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861,
7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7
889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 791
5, 7917, 7919, 7921, 7923, 7925, 7927, 7929, 40704, 7943, 40720, 7957, 40736, 79
75, 40752, 7991, 40768, 8005, 40784, 8023, 40800, 8039, 40816, 8061, 40832, 8071
, 40848, 8087, 40864, 8103, 40880, 8116, 40886, 8119, 8126, 40898, 8132, 40902,
8135, 40912, 8147, 40918, 8151, 40928, 8167, 40946, 8180, 40950, 8183, 8305, 831
9, 8458, 41230, 8463, 8467, 8495, 8500, 8505, 41276, 8509, 41286, 8521, 8526, 85
80, 44080, 11358, 11361, 44133, 11366, 11368, 11370, 11372, 11380, 44150, 11383,
11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413, 11
415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431, 11433, 11435, 11437
, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453, 11455, 11457, 11459, 1
1461, 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, 1148
3, 11485, 11487, 11489, 44259, 11492, 44288, 11557 }; // NOLINT | 368 static const int32_t kLowercaseTable0[528] = { 1073741921, 122, 170, 181, 186, 1
073742047, 246, 1073742072, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 27
5, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295, 297, 299, 301, 303, 305, 30
7, 309, 1073742135, 312, 314, 316, 318, 320, 322, 324, 326, 1073742152, 329, 331
, 333, 335, 337, 339, 341, 343, 345, 347, 349, 351, 353, 355, 357, 359, 361, 363
, 365, 367, 369, 371, 373, 375, 378, 380, 1073742206, 384, 387, 389, 392, 107374
2220, 397, 402, 405, 1073742233, 411, 414, 417, 419, 421, 424, 1073742250, 427,
429, 432, 436, 438, 1073742265, 442, 1073742269, 447, 454, 457, 460, 462, 464, 4
66, 468, 470, 472, 474, 1073742300, 477, 479, 481, 483, 485, 487, 489, 491, 493,
1073742319, 496, 499, 501, 505, 507, 509, 511, 513, 515, 517, 519, 521, 523, 52
5, 527, 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, 549, 551, 553, 555, 55
7, 559, 561, 1073742387, 569, 572, 1073742399, 576, 578, 583, 585, 587, 589, 107
3742415, 659, 1073742485, 687, 1073742715, 893, 912, 1073742764, 974, 1073742800
, 977, 1073742805, 983, 985, 987, 989, 991, 993, 995, 997, 999, 1001, 1003, 1005
, 1073742831, 1011, 1013, 1016, 1073742843, 1020, 1073742896, 1119, 1121, 1123,
1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 11
51, 1153, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185
, 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1203, 1205, 1207, 1209, 1211,
1213, 1215, 1218, 1220, 1222, 1224, 1226, 1228, 1073743054, 1231, 1233, 1235, 12
37, 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263
, 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1285, 1287, 1289,
1291, 1293, 1295, 1297, 1299, 1073743201, 1415, 1073749248, 7467, 1073749346, 75
43, 1073749369, 7578, 7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699
, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723, 7725,
7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751, 77
53, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779
, 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805,
7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, 1073749653, 78
35, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865
, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891,
7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 79
19, 7921, 7923, 7925, 7927, 7929, 1073749760, 7943, 1073749776, 7957, 1073749792
, 7975, 1073749808, 7991, 1073749824, 8005, 1073749840, 8023, 1073749856, 8039,
1073749872, 8061, 1073749888, 8071, 1073749904, 8087, 1073749920, 8103, 10737499
36, 8116, 1073749942, 8119, 8126, 1073749954, 8132, 1073749958, 8135, 1073749968
, 8147, 1073749974, 8151, 1073749984, 8167, 1073750002, 8180, 1073750006, 8183,
8305, 8319, 8458, 1073750286, 8463, 8467, 8495, 8500, 8505, 1073750332, 8509, 10
73750342, 8521, 8526, 8580, 1073753136, 11358, 11361, 1073753189, 11366, 11368,
11370, 11372, 11380, 1073753206, 11383, 11393, 11395, 11397, 11399, 11401, 11403
, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, 11423, 11425, 1
1427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 1144
9, 11451, 11453, 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471,
11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 1073753315, 11492
, 1073753344, 11557 }; // NOLINT |
356 static const uint16_t kLowercaseTable1Size = 6; | 369 static const uint16_t kLowercaseTable1Size = 6; |
357 static const uint16_t kLowercaseTable1[6] = { 64256, 31494, 64275, 31511, 65345,
32602 }; // NOLINT | 370 static const int32_t kLowercaseTable1[6] = { 1073773312, 31494, 1073773331, 3151
1, 1073774401, 32602 }; // NOLINT |
358 static const uint16_t kLowercaseTable2Size = 2; | 371 static const uint16_t kLowercaseTable2Size = 2; |
359 static const uint16_t kLowercaseTable2[2] = { 33832, 1103 }; // NOLINT | 372 static const int32_t kLowercaseTable2[2] = { 1073742888, 1103 }; // NOLINT |
360 static const uint16_t kLowercaseTable3Size = 54; | 373 static const uint16_t kLowercaseTable3Size = 54; |
361 static const uint16_t kLowercaseTable3[54] = { 54298, 21555, 54350, 21588, 54358
, 21607, 54402, 21659, 54454, 21689, 21691, 54461, 21699, 54469, 21711, 54506, 2
1763, 54558, 21815, 54610, 21867, 54662, 21919, 54714, 21971, 54766, 22023, 5481
8, 22075, 54870, 22127, 54922, 22181, 54978, 22234, 55004, 22241, 55036, 22292,
55062, 22299, 55094, 22350, 55120, 22357, 55152, 22408, 55178, 22415, 55210, 224
66, 55236, 22473, 22475 }; // NOLINT | 374 static const int32_t kLowercaseTable3[54] = { 1073763354, 21555, 1073763406, 215
88, 1073763414, 21607, 1073763458, 21659, 1073763510, 21689, 21691, 1073763517,
21699, 1073763525, 21711, 1073763562, 21763, 1073763614, 21815, 1073763666, 2186
7, 1073763718, 21919, 1073763770, 21971, 1073763822, 22023, 1073763874, 22075, 1
073763926, 22127, 1073763978, 22181, 1073764034, 22234, 1073764060, 22241, 10737
64092, 22292, 1073764118, 22299, 1073764150, 22350, 1073764176, 22357, 107376420
8, 22408, 1073764234, 22415, 1073764266, 22466, 1073764292, 22473, 22475 }; // N
OLINT |
362 bool Lowercase::Is(uchar c) { | 375 bool Lowercase::Is(uchar c) { |
363 int chunk_index = c >> 15; | 376 int chunk_index = c >> 15; |
364 switch (chunk_index) { | 377 switch (chunk_index) { |
365 case 0: return LookupPredicate(kLowercaseTable0, | 378 case 0: return LookupPredicate(kLowercaseTable0, |
366 kLowercaseTable0Size, | 379 kLowercaseTable0Size, |
367 c); | 380 c); |
368 case 1: return LookupPredicate(kLowercaseTable1, | 381 case 1: return LookupPredicate(kLowercaseTable1, |
369 kLowercaseTable1Size, | 382 kLowercaseTable1Size, |
370 c); | 383 c); |
371 case 2: return LookupPredicate(kLowercaseTable2, | 384 case 2: return LookupPredicate(kLowercaseTable2, |
372 kLowercaseTable2Size, | 385 kLowercaseTable2Size, |
373 c); | 386 c); |
374 case 3: return LookupPredicate(kLowercaseTable3, | 387 case 3: return LookupPredicate(kLowercaseTable3, |
375 kLowercaseTable3Size, | 388 kLowercaseTable3Size, |
376 c); | 389 c); |
377 default: return false; | 390 default: return false; |
378 } | 391 } |
379 } | 392 } |
380 | 393 |
381 // Letter: point.category in ['Lu', 'Ll', 'Lt', 'Lm', 'Lo' ] | 394 // Letter: point.category in ['Lu', 'Ll', 'Lt', 'Lm', 'Lo' ] |
382 | 395 |
383 static const uint16_t kLetterTable0Size = 476; | 396 static const uint16_t kLetterTable0Size = 476; |
384 static const uint16_t kLetterTable0[476] = { 32833, 90, 32865, 122, 170, 181, 18
6, 32960, 214, 32984, 246, 33016, 705, 33478, 721, 33504, 740, 750, 33658, 893,
902, 33672, 906, 908, 33678, 929, 33699, 974, 33744, 1013, 33783, 1153, 33930, 1
299, 34097, 1366, 1369, 34145, 1415, 34256, 1514, 34288, 1522, 34337, 1594, 3436
8, 1610, 34414, 1647, 34417, 1747, 1749, 34533, 1766, 34542, 1775, 34554, 1788,
1791, 1808, 34578, 1839, 34637, 1901, 34688, 1957, 1969, 34762, 2026, 34804, 203
7, 2042, 35076, 2361, 2365, 2384, 35160, 2401, 35195, 2431, 35205, 2444, 35215,
2448, 35219, 2472, 35242, 2480, 2482, 35254, 2489, 2493, 2510, 35292, 2525, 3529
5, 2529, 35312, 2545, 35333, 2570, 35343, 2576, 35347, 2600, 35370, 2608, 35378,
2611, 35381, 2614, 35384, 2617, 35417, 2652, 2654, 35442, 2676, 35461, 2701, 35
471, 2705, 35475, 2728, 35498, 2736, 35506, 2739, 35509, 2745, 2749, 2768, 35552
, 2785, 35589, 2828, 35599, 2832, 35603, 2856, 35626, 2864, 35634, 2867, 35637,
2873, 2877, 35676, 2909, 35679, 2913, 2929, 2947, 35717, 2954, 35726, 2960, 3573
0, 2965, 35737, 2970, 2972, 35742, 2975, 35747, 2980, 35752, 2986, 35758, 3001,
35845, 3084, 35854, 3088, 35858, 3112, 35882, 3123, 35893, 3129, 35936, 3169, 35
973, 3212, 35982, 3216, 35986, 3240, 36010, 3251, 36021, 3257, 3261, 3294, 36064
, 3297, 36101, 3340, 36110, 3344, 36114, 3368, 36138, 3385, 36192, 3425, 36229,
3478, 36250, 3505, 36275, 3515, 3517, 36288, 3526, 36353, 3632, 36402, 3635, 364
16, 3654, 36481, 3714, 3716, 36487, 3720, 3722, 3725, 36500, 3735, 36505, 3743,
36513, 3747, 3749, 3751, 36522, 3755, 36525, 3760, 36530, 3763, 3773, 36544, 378
0, 3782, 36572, 3805, 3840, 36672, 3911, 36681, 3946, 36744, 3979, 36864, 4129,
36899, 4135, 36905, 4138, 36944, 4181, 37024, 4293, 37072, 4346, 4348, 37120, 44
41, 37215, 4514, 37288, 4601, 37376, 4680, 37450, 4685, 37456, 4694, 4696, 37466
, 4701, 37472, 4744, 37514, 4749, 37520, 4784, 37554, 4789, 37560, 4798, 4800, 3
7570, 4805, 37576, 4822, 37592, 4880, 37650, 4885, 37656, 4954, 37760, 5007, 377
92, 5108, 37889, 5740, 38511, 5750, 38529, 5786, 38560, 5866, 38656, 5900, 38670
, 5905, 38688, 5937, 38720, 5969, 38752, 5996, 38766, 6000, 38784, 6067, 6103, 6
108, 38944, 6263, 39040, 6312, 39168, 6428, 39248, 6509, 39280, 6516, 39296, 656
9, 39361, 6599, 39424, 6678, 39685, 6963, 39749, 6987, 40192, 7615, 40448, 7835,
40608, 7929, 40704, 7957, 40728, 7965, 40736, 8005, 40776, 8013, 40784, 8023, 8
025, 8027, 8029, 40799, 8061, 40832, 8116, 40886, 8124, 8126, 40898, 8132, 40902
, 8140, 40912, 8147, 40918, 8155, 40928, 8172, 40946, 8180, 40950, 8188, 8305, 8
319, 41104, 8340, 8450, 8455, 41226, 8467, 8469, 41241, 8477, 8484, 8486, 8488,
41258, 8493, 41263, 8505, 41276, 8511, 41285, 8521, 8526, 41347, 8580, 44032, 11
310, 44080, 11358, 44128, 11372, 44148, 11383, 44160, 11492, 44288, 11557, 44336
, 11621, 11631, 44416, 11670, 44448, 11686, 44456, 11694, 44464, 11702, 44472, 1
1710, 44480, 11718, 44488, 11726, 44496, 11734, 44504, 11742, 45061, 12294, 4510
5, 12341, 45115, 12348, 45121, 12438, 45213, 12447, 45217, 12538, 45308, 12543,
45317, 12588, 45361, 12686, 45472, 12727, 45552, 12799, 46080, 19893, 52736, 327
67 }; // NOLINT | 397 static const int32_t kLetterTable0[476] = { 1073741889, 90, 1073741921, 122, 170
, 181, 186, 1073742016, 214, 1073742040, 246, 1073742072, 705, 1073742534, 721,
1073742560, 740, 750, 1073742714, 893, 902, 1073742728, 906, 908, 1073742734, 92
9, 1073742755, 974, 1073742800, 1013, 1073742839, 1153, 1073742986, 1299, 107374
3153, 1366, 1369, 1073743201, 1415, 1073743312, 1514, 1073743344, 1522, 10737433
93, 1594, 1073743424, 1610, 1073743470, 1647, 1073743473, 1747, 1749, 1073743589
, 1766, 1073743598, 1775, 1073743610, 1788, 1791, 1808, 1073743634, 1839, 107374
3693, 1901, 1073743744, 1957, 1969, 1073743818, 2026, 1073743860, 2037, 2042, 10
73744132, 2361, 2365, 2384, 1073744216, 2401, 1073744251, 2431, 1073744261, 2444
, 1073744271, 2448, 1073744275, 2472, 1073744298, 2480, 2482, 1073744310, 2489,
2493, 2510, 1073744348, 2525, 1073744351, 2529, 1073744368, 2545, 1073744389, 25
70, 1073744399, 2576, 1073744403, 2600, 1073744426, 2608, 1073744434, 2611, 1073
744437, 2614, 1073744440, 2617, 1073744473, 2652, 2654, 1073744498, 2676, 107374
4517, 2701, 1073744527, 2705, 1073744531, 2728, 1073744554, 2736, 1073744562, 27
39, 1073744565, 2745, 2749, 2768, 1073744608, 2785, 1073744645, 2828, 1073744655
, 2832, 1073744659, 2856, 1073744682, 2864, 1073744690, 2867, 1073744693, 2873,
2877, 1073744732, 2909, 1073744735, 2913, 2929, 2947, 1073744773, 2954, 10737447
82, 2960, 1073744786, 2965, 1073744793, 2970, 2972, 1073744798, 2975, 1073744803
, 2980, 1073744808, 2986, 1073744814, 3001, 1073744901, 3084, 1073744910, 3088,
1073744914, 3112, 1073744938, 3123, 1073744949, 3129, 1073744992, 3169, 10737450
29, 3212, 1073745038, 3216, 1073745042, 3240, 1073745066, 3251, 1073745077, 3257
, 3261, 3294, 1073745120, 3297, 1073745157, 3340, 1073745166, 3344, 1073745170,
3368, 1073745194, 3385, 1073745248, 3425, 1073745285, 3478, 1073745306, 3505, 10
73745331, 3515, 3517, 1073745344, 3526, 1073745409, 3632, 1073745458, 3635, 1073
745472, 3654, 1073745537, 3714, 3716, 1073745543, 3720, 3722, 3725, 1073745556,
3735, 1073745561, 3743, 1073745569, 3747, 3749, 3751, 1073745578, 3755, 10737455
81, 3760, 1073745586, 3763, 3773, 1073745600, 3780, 3782, 1073745628, 3805, 3840
, 1073745728, 3911, 1073745737, 3946, 1073745800, 3979, 1073745920, 4129, 107374
5955, 4135, 1073745961, 4138, 1073746000, 4181, 1073746080, 4293, 1073746128, 43
46, 4348, 1073746176, 4441, 1073746271, 4514, 1073746344, 4601, 1073746432, 4680
, 1073746506, 4685, 1073746512, 4694, 4696, 1073746522, 4701, 1073746528, 4744,
1073746570, 4749, 1073746576, 4784, 1073746610, 4789, 1073746616, 4798, 4800, 10
73746626, 4805, 1073746632, 4822, 1073746648, 4880, 1073746706, 4885, 1073746712
, 4954, 1073746816, 5007, 1073746848, 5108, 1073746945, 5740, 1073747567, 5750,
1073747585, 5786, 1073747616, 5866, 1073747712, 5900, 1073747726, 5905, 10737477
44, 5937, 1073747776, 5969, 1073747808, 5996, 1073747822, 6000, 1073747840, 6067
, 6103, 6108, 1073748000, 6263, 1073748096, 6312, 1073748224, 6428, 1073748304,
6509, 1073748336, 6516, 1073748352, 6569, 1073748417, 6599, 1073748480, 6678, 10
73748741, 6963, 1073748805, 6987, 1073749248, 7615, 1073749504, 7835, 1073749664
, 7929, 1073749760, 7957, 1073749784, 7965, 1073749792, 8005, 1073749832, 8013,
1073749840, 8023, 8025, 8027, 8029, 1073749855, 8061, 1073749888, 8116, 10737499
42, 8124, 8126, 1073749954, 8132, 1073749958, 8140, 1073749968, 8147, 1073749974
, 8155, 1073749984, 8172, 1073750002, 8180, 1073750006, 8188, 8305, 8319, 107375
0160, 8340, 8450, 8455, 1073750282, 8467, 8469, 1073750297, 8477, 8484, 8486, 84
88, 1073750314, 8493, 1073750319, 8505, 1073750332, 8511, 1073750341, 8521, 8526
, 1073750403, 8580, 1073753088, 11310, 1073753136, 11358, 1073753184, 11372, 107
3753204, 11383, 1073753216, 11492, 1073753344, 11557, 1073753392, 11621, 11631,
1073753472, 11670, 1073753504, 11686, 1073753512, 11694, 1073753520, 11702, 1073
753528, 11710, 1073753536, 11718, 1073753544, 11726, 1073753552, 11734, 10737535
60, 11742, 1073754117, 12294, 1073754161, 12341, 1073754171, 12348, 1073754177,
12438, 1073754269, 12447, 1073754273, 12538, 1073754364, 12543, 1073754373, 1258
8, 1073754417, 12686, 1073754528, 12727, 1073754608, 12799, 1073755136, 19893, 1
073761792, 32767 }; // NOLINT |
385 static const uint16_t kLetterTable1Size = 68; | 398 static const uint16_t kLetterTable1Size = 68; |
386 static const uint16_t kLetterTable1[68] = { 32768, 8123, 40960, 9356, 42775, 100
10, 43008, 10241, 43011, 10245, 43015, 10250, 43020, 10274, 43072, 10355, 44032,
22435, 63744, 31277, 64048, 31338, 64112, 31449, 64256, 31494, 64275, 31511, 31
517, 64287, 31528, 64298, 31542, 64312, 31548, 31550, 64320, 31553, 64323, 31556
, 64326, 31665, 64467, 32061, 64848, 32143, 64914, 32199, 65008, 32251, 65136, 3
2372, 65142, 32508, 65313, 32570, 65345, 32602, 65382, 32702, 65474, 32711, 6548
2, 32719, 65490, 32727, 65498, 32732 }; // NOLINT | 399 static const int32_t kLetterTable1[68] = { 1073741824, 8123, 1073750016, 9356, 1
073751831, 10010, 1073752064, 10241, 1073752067, 10245, 1073752071, 10250, 10737
52076, 10274, 1073752128, 10355, 1073753088, 22435, 1073772800, 31277, 107377310
4, 31338, 1073773168, 31449, 1073773312, 31494, 1073773331, 31511, 31517, 107377
3343, 31528, 1073773354, 31542, 1073773368, 31548, 31550, 1073773376, 31553, 107
3773379, 31556, 1073773382, 31665, 1073773523, 32061, 1073773904, 32143, 1073773
970, 32199, 1073774064, 32251, 1073774192, 32372, 1073774198, 32508, 1073774369,
32570, 1073774401, 32602, 1073774438, 32702, 1073774530, 32711, 1073774538, 327
19, 1073774546, 32727, 1073774554, 32732 }; // NOLINT |
387 static const uint16_t kLetterTable2Size = 48; | 400 static const uint16_t kLetterTable2Size = 48; |
388 static const uint16_t kLetterTable2[48] = { 32768, 11, 32781, 38, 32808, 58, 328
28, 61, 32831, 77, 32848, 93, 32896, 250, 33536, 798, 33584, 832, 33602, 841, 33
664, 925, 33696, 963, 33736, 975, 33792, 1181, 34816, 2053, 2056, 34826, 2101, 3
4871, 2104, 2108, 2111, 35072, 2325, 2560, 35344, 2579, 35349, 2583, 35353, 2611
, 40960, 9070 }; // NOLINT | 401 static const int32_t kLetterTable2[48] = { 1073741824, 11, 1073741837, 38, 10737
41864, 58, 1073741884, 61, 1073741887, 77, 1073741904, 93, 1073741952, 250, 1073
742592, 798, 1073742640, 832, 1073742658, 841, 1073742720, 925, 1073742752, 963,
1073742792, 975, 1073742848, 1181, 1073743872, 2053, 2056, 1073743882, 2101, 10
73743927, 2104, 2108, 2111, 1073744128, 2325, 2560, 1073744400, 2579, 1073744405
, 2583, 1073744409, 2611, 1073750016, 9070 }; // NOLINT |
389 static const uint16_t kLetterTable3Size = 57; | 402 static const uint16_t kLetterTable3Size = 57; |
390 static const uint16_t kLetterTable3[57] = { 54272, 21588, 54358, 21660, 54430, 2
1663, 21666, 54437, 21670, 54441, 21676, 54446, 21689, 21691, 54461, 21699, 5446
9, 21765, 54535, 21770, 54541, 21780, 54550, 21788, 54558, 21817, 54587, 21822,
54592, 21828, 21830, 54602, 21840, 54610, 22181, 54952, 22208, 54978, 22234, 550
04, 22266, 55036, 22292, 55062, 22324, 55094, 22350, 55120, 22382, 55152, 22408,
55178, 22440, 55210, 22466, 55236, 22475 }; // NOLINT | 403 static const int32_t kLetterTable3[57] = { 1073763328, 21588, 1073763414, 21660,
1073763486, 21663, 21666, 1073763493, 21670, 1073763497, 21676, 1073763502, 216
89, 21691, 1073763517, 21699, 1073763525, 21765, 1073763591, 21770, 1073763597,
21780, 1073763606, 21788, 1073763614, 21817, 1073763643, 21822, 1073763648, 2182
8, 21830, 1073763658, 21840, 1073763666, 22181, 1073764008, 22208, 1073764034, 2
2234, 1073764060, 22266, 1073764092, 22292, 1073764118, 22324, 1073764150, 22350
, 1073764176, 22382, 1073764208, 22408, 1073764234, 22440, 1073764266, 22466, 10
73764292, 22475 }; // NOLINT |
391 static const uint16_t kLetterTable4Size = 2; | 404 static const uint16_t kLetterTable4Size = 2; |
392 static const uint16_t kLetterTable4[2] = { 32768, 32767 }; // NOLINT | 405 static const int32_t kLetterTable4[2] = { 1073741824, 32767 }; // NOLINT |
393 static const uint16_t kLetterTable5Size = 4; | 406 static const uint16_t kLetterTable5Size = 4; |
394 static const uint16_t kLetterTable5[4] = { 32768, 9942, 63488, 31261 }; // NOLIN
T | 407 static const int32_t kLetterTable5[4] = { 1073741824, 9942, 1073772544, 31261 };
// NOLINT |
395 bool Letter::Is(uchar c) { | 408 bool Letter::Is(uchar c) { |
396 int chunk_index = c >> 15; | 409 int chunk_index = c >> 15; |
397 switch (chunk_index) { | 410 switch (chunk_index) { |
398 case 0: return LookupPredicate(kLetterTable0, | 411 case 0: return LookupPredicate(kLetterTable0, |
399 kLetterTable0Size, | 412 kLetterTable0Size, |
400 c); | 413 c); |
401 case 1: return LookupPredicate(kLetterTable1, | 414 case 1: return LookupPredicate(kLetterTable1, |
402 kLetterTable1Size, | 415 kLetterTable1Size, |
403 c); | 416 c); |
404 case 2: return LookupPredicate(kLetterTable2, | 417 case 2: return LookupPredicate(kLetterTable2, |
405 kLetterTable2Size, | 418 kLetterTable2Size, |
406 c); | 419 c); |
407 case 3: return LookupPredicate(kLetterTable3, | 420 case 3: return LookupPredicate(kLetterTable3, |
408 kLetterTable3Size, | 421 kLetterTable3Size, |
409 c); | 422 c); |
410 case 4: return LookupPredicate(kLetterTable4, | 423 case 4: return LookupPredicate(kLetterTable4, |
411 kLetterTable4Size, | 424 kLetterTable4Size, |
412 c); | 425 c); |
413 case 5: return LookupPredicate(kLetterTable5, | 426 case 5: return LookupPredicate(kLetterTable5, |
414 kLetterTable5Size, | 427 kLetterTable5Size, |
415 c); | 428 c); |
416 default: return false; | 429 default: return false; |
417 } | 430 } |
418 } | 431 } |
419 | 432 |
420 // Space: point.category == 'Zs' | 433 // Space: point.category == 'Zs' |
421 | 434 |
422 static const uint16_t kSpaceTable0Size = 9; | 435 static const uint16_t kSpaceTable0Size = 9; |
423 static const uint16_t kSpaceTable0[9] = { 32, 160, 5760, 6158, 40960, 8202, 8239
, 8287, 12288 }; // NOLINT | 436 static const int32_t kSpaceTable0[9] = { 32, 160, 5760, 6158, 1073750016, 8202,
8239, 8287, 12288 }; // NOLINT |
424 bool Space::Is(uchar c) { | 437 bool Space::Is(uchar c) { |
425 int chunk_index = c >> 15; | 438 int chunk_index = c >> 15; |
426 switch (chunk_index) { | 439 switch (chunk_index) { |
427 case 0: return LookupPredicate(kSpaceTable0, | 440 case 0: return LookupPredicate(kSpaceTable0, |
428 kSpaceTable0Size, | 441 kSpaceTable0Size, |
429 c); | 442 c); |
430 default: return false; | 443 default: return false; |
431 } | 444 } |
432 } | 445 } |
433 | 446 |
434 // Titlecase: point.category == 'Lt' | |
435 | |
436 static const uint16_t kTitlecaseTable0Size = 13; | |
437 static const uint16_t kTitlecaseTable0[13] = { 453, 456, 459, 498, 40840, 8079,
40856, 8095, 40872, 8111, 8124, 8140, 8188 }; // NOLINT | |
438 bool Titlecase::Is(uchar c) { | |
439 int chunk_index = c >> 15; | |
440 switch (chunk_index) { | |
441 case 0: return LookupPredicate(kTitlecaseTable0, | |
442 kTitlecaseTable0Size, | |
443 c); | |
444 default: return false; | |
445 } | |
446 } | |
447 | |
448 // Number: point.category in ['Nd', 'Nl', 'No' ] | 447 // Number: point.category in ['Nd', 'Nl', 'No' ] |
449 | 448 |
450 static const uint16_t kNumberTable0Size = 86; | 449 static const uint16_t kNumberTable0Size = 86; |
451 static const uint16_t kNumberTable0[86] = { 32816, 57, 32946, 179, 185, 32956, 1
90, 34400, 1641, 34544, 1785, 34752, 1993, 35174, 2415, 35302, 2543, 35316, 2553
, 35430, 2671, 35558, 2799, 35686, 2927, 35814, 3058, 35942, 3183, 36070, 3311,
36198, 3439, 36432, 3673, 36560, 3801, 36640, 3891, 36928, 4169, 37737, 4988, 38
638, 5872, 38880, 6121, 38896, 6137, 38928, 6169, 39238, 6479, 39376, 6617, 3976
0, 7001, 8304, 41076, 8313, 41088, 8329, 41299, 8578, 42080, 9371, 42218, 9471,
42870, 10131, 11517, 12295, 45089, 12329, 45112, 12346, 45458, 12693, 45600, 128
41, 45649, 12895, 45696, 12937, 45745, 12991 }; // NOLINT | 450 static const int32_t kNumberTable0[86] = { 1073741872, 57, 1073742002, 179, 185,
1073742012, 190, 1073743456, 1641, 1073743600, 1785, 1073743808, 1993, 10737442
30, 2415, 1073744358, 2543, 1073744372, 2553, 1073744486, 2671, 1073744614, 2799
, 1073744742, 2927, 1073744870, 3058, 1073744998, 3183, 1073745126, 3311, 107374
5254, 3439, 1073745488, 3673, 1073745616, 3801, 1073745696, 3891, 1073745984, 41
69, 1073746793, 4988, 1073747694, 5872, 1073747936, 6121, 1073747952, 6137, 1073
747984, 6169, 1073748294, 6479, 1073748432, 6617, 1073748816, 7001, 8304, 107375
0132, 8313, 1073750144, 8329, 1073750355, 8578, 1073751136, 9371, 1073751274, 94
71, 1073751926, 10131, 11517, 12295, 1073754145, 12329, 1073754168, 12346, 10737
54514, 12693, 1073754656, 12841, 1073754705, 12895, 1073754752, 12937, 107375480
1, 12991 }; // NOLINT |
452 static const uint16_t kNumberTable1Size = 2; | 451 static const uint16_t kNumberTable1Size = 2; |
453 static const uint16_t kNumberTable1[2] = { 65296, 32537 }; // NOLINT | 452 static const int32_t kNumberTable1[2] = { 1073774352, 32537 }; // NOLINT |
454 static const uint16_t kNumberTable2Size = 19; | 453 static const uint16_t kNumberTable2Size = 19; |
455 static const uint16_t kNumberTable2[19] = { 33031, 307, 33088, 376, 394, 33568,
803, 833, 842, 33745, 981, 33952, 1193, 35094, 2329, 35392, 2631, 41984, 9314 };
// NOLINT | 454 static const int32_t kNumberTable2[19] = { 1073742087, 307, 1073742144, 376, 394
, 1073742624, 803, 833, 842, 1073742801, 981, 1073743008, 1193, 1073744150, 2329
, 1073744448, 2631, 1073751040, 9314 }; // NOLINT |
456 static const uint16_t kNumberTable3Size = 4; | 455 static const uint16_t kNumberTable3Size = 4; |
457 static const uint16_t kNumberTable3[4] = { 54112, 21361, 55246, 22527 }; // NOLI
NT | 456 static const int32_t kNumberTable3[4] = { 1073763168, 21361, 1073764302, 22527 }
; // NOLINT |
458 bool Number::Is(uchar c) { | 457 bool Number::Is(uchar c) { |
459 int chunk_index = c >> 15; | 458 int chunk_index = c >> 15; |
460 switch (chunk_index) { | 459 switch (chunk_index) { |
461 case 0: return LookupPredicate(kNumberTable0, | 460 case 0: return LookupPredicate(kNumberTable0, |
462 kNumberTable0Size, | 461 kNumberTable0Size, |
463 c); | 462 c); |
464 case 1: return LookupPredicate(kNumberTable1, | 463 case 1: return LookupPredicate(kNumberTable1, |
465 kNumberTable1Size, | 464 kNumberTable1Size, |
466 c); | 465 c); |
467 case 2: return LookupPredicate(kNumberTable2, | 466 case 2: return LookupPredicate(kNumberTable2, |
468 kNumberTable2Size, | 467 kNumberTable2Size, |
469 c); | 468 c); |
470 case 3: return LookupPredicate(kNumberTable3, | 469 case 3: return LookupPredicate(kNumberTable3, |
471 kNumberTable3Size, | 470 kNumberTable3Size, |
472 c); | 471 c); |
473 default: return false; | 472 default: return false; |
474 } | 473 } |
475 } | 474 } |
476 | 475 |
477 // DecimalDigit: point.category == 'Nd' | |
478 | |
479 static const uint16_t kDecimalDigitTable0Size = 44; | |
480 static const uint16_t kDecimalDigitTable0[44] = { 32816, 57, 34400, 1641, 34544,
1785, 34752, 1993, 35174, 2415, 35302, 2543, 35430, 2671, 35558, 2799, 35686, 2
927, 35814, 3055, 35942, 3183, 36070, 3311, 36198, 3439, 36432, 3673, 36560, 380
1, 36640, 3881, 36928, 4169, 38880, 6121, 38928, 6169, 39238, 6479, 39376, 6617,
39760, 7001 }; // NOLINT | |
481 static const uint16_t kDecimalDigitTable1Size = 2; | |
482 static const uint16_t kDecimalDigitTable1[2] = { 65296, 32537 }; // NOLINT | |
483 static const uint16_t kDecimalDigitTable2Size = 2; | |
484 static const uint16_t kDecimalDigitTable2[2] = { 33952, 1193 }; // NOLINT | |
485 static const uint16_t kDecimalDigitTable3Size = 2; | |
486 static const uint16_t kDecimalDigitTable3[2] = { 55246, 22527 }; // NOLINT | |
487 bool DecimalDigit::Is(uchar c) { | |
488 int chunk_index = c >> 15; | |
489 switch (chunk_index) { | |
490 case 0: return LookupPredicate(kDecimalDigitTable0, | |
491 kDecimalDigitTable0Size, | |
492 c); | |
493 case 1: return LookupPredicate(kDecimalDigitTable1, | |
494 kDecimalDigitTable1Size, | |
495 c); | |
496 case 2: return LookupPredicate(kDecimalDigitTable2, | |
497 kDecimalDigitTable2Size, | |
498 c); | |
499 case 3: return LookupPredicate(kDecimalDigitTable3, | |
500 kDecimalDigitTable3Size, | |
501 c); | |
502 default: return false; | |
503 } | |
504 } | |
505 | |
506 // Ideographic: 'Id' in point.properties | |
507 | |
508 static const uint16_t kIdeographicTable0Size = 10; | |
509 static const uint16_t kIdeographicTable0[10] = { 45062, 12295, 45089, 12329, 451
12, 12346, 46080, 19893, 52736, 32767 }; // NOLINT | |
510 static const uint16_t kIdeographicTable1Size = 6; | |
511 static const uint16_t kIdeographicTable1[6] = { 32768, 8123, 63744, 31277, 64112
, 31449 }; // NOLINT | |
512 static const uint16_t kIdeographicTable4Size = 2; | |
513 static const uint16_t kIdeographicTable4[2] = { 32768, 32767 }; // NOLINT | |
514 static const uint16_t kIdeographicTable5Size = 4; | |
515 static const uint16_t kIdeographicTable5[4] = { 32768, 9942, 63488, 31261 }; //
NOLINT | |
516 bool Ideographic::Is(uchar c) { | |
517 int chunk_index = c >> 15; | |
518 switch (chunk_index) { | |
519 case 0: return LookupPredicate(kIdeographicTable0, | |
520 kIdeographicTable0Size, | |
521 c); | |
522 case 1: return LookupPredicate(kIdeographicTable1, | |
523 kIdeographicTable1Size, | |
524 c); | |
525 case 4: return LookupPredicate(kIdeographicTable4, | |
526 kIdeographicTable4Size, | |
527 c); | |
528 case 5: return LookupPredicate(kIdeographicTable5, | |
529 kIdeographicTable5Size, | |
530 c); | |
531 default: return false; | |
532 } | |
533 } | |
534 | |
535 // WhiteSpace: 'Ws' in point.properties | 476 // WhiteSpace: 'Ws' in point.properties |
536 | 477 |
537 static const uint16_t kWhiteSpaceTable0Size = 14; | 478 static const uint16_t kWhiteSpaceTable0Size = 14; |
538 static const uint16_t kWhiteSpaceTable0[14] = { 32777, 13, 32, 133, 160, 5760, 6
158, 40960, 8202, 41000, 8233, 8239, 8287, 12288 }; // NOLINT | 479 static const int32_t kWhiteSpaceTable0[14] = { 1073741833, 13, 32, 133, 160, 576
0, 6158, 1073750016, 8202, 1073750056, 8233, 8239, 8287, 12288 }; // NOLINT |
539 bool WhiteSpace::Is(uchar c) { | 480 bool WhiteSpace::Is(uchar c) { |
540 int chunk_index = c >> 15; | 481 int chunk_index = c >> 15; |
541 switch (chunk_index) { | 482 switch (chunk_index) { |
542 case 0: return LookupPredicate(kWhiteSpaceTable0, | 483 case 0: return LookupPredicate(kWhiteSpaceTable0, |
543 kWhiteSpaceTable0Size, | 484 kWhiteSpaceTable0Size, |
544 c); | 485 c); |
545 default: return false; | 486 default: return false; |
546 } | 487 } |
547 } | 488 } |
548 | 489 |
549 // HexDigit: 'Hd' in point.properties | |
550 | |
551 static const uint16_t kHexDigitTable0Size = 6; | |
552 static const uint16_t kHexDigitTable0[6] = { 32816, 57, 32833, 70, 32865, 102 };
// NOLINT | |
553 static const uint16_t kHexDigitTable1Size = 6; | |
554 static const uint16_t kHexDigitTable1[6] = { 65296, 32537, 65313, 32550, 65345,
32582 }; // NOLINT | |
555 bool HexDigit::Is(uchar c) { | |
556 int chunk_index = c >> 15; | |
557 switch (chunk_index) { | |
558 case 0: return LookupPredicate(kHexDigitTable0, | |
559 kHexDigitTable0Size, | |
560 c); | |
561 case 1: return LookupPredicate(kHexDigitTable1, | |
562 kHexDigitTable1Size, | |
563 c); | |
564 default: return false; | |
565 } | |
566 } | |
567 | |
568 // AsciiHexDigit: 'Ah' in point.properties | |
569 | |
570 static const uint16_t kAsciiHexDigitTable0Size = 6; | |
571 static const uint16_t kAsciiHexDigitTable0[6] = { 32816, 57, 32833, 70, 32865, 1
02 }; // NOLINT | |
572 bool AsciiHexDigit::Is(uchar c) { | |
573 int chunk_index = c >> 15; | |
574 switch (chunk_index) { | |
575 case 0: return LookupPredicate(kAsciiHexDigitTable0, | |
576 kAsciiHexDigitTable0Size, | |
577 c); | |
578 default: return false; | |
579 } | |
580 } | |
581 | |
582 // BidiControl: 'Bc' in point.properties | |
583 | |
584 static const uint16_t kBidiControlTable0Size = 4; | |
585 static const uint16_t kBidiControlTable0[4] = { 40974, 8207, 41002, 8238 }; // N
OLINT | |
586 bool BidiControl::Is(uchar c) { | |
587 int chunk_index = c >> 15; | |
588 switch (chunk_index) { | |
589 case 0: return LookupPredicate(kBidiControlTable0, | |
590 kBidiControlTable0Size, | |
591 c); | |
592 default: return false; | |
593 } | |
594 } | |
595 | |
596 // JoinControl: 'Jc' in point.properties | |
597 | |
598 static const uint16_t kJoinControlTable0Size = 2; | |
599 static const uint16_t kJoinControlTable0[2] = { 40972, 8205 }; // NOLINT | |
600 bool JoinControl::Is(uchar c) { | |
601 int chunk_index = c >> 15; | |
602 switch (chunk_index) { | |
603 case 0: return LookupPredicate(kJoinControlTable0, | |
604 kJoinControlTable0Size, | |
605 c); | |
606 default: return false; | |
607 } | |
608 } | |
609 | |
610 // Dash: 'Dh' in point.properties | |
611 | |
612 static const uint16_t kDashTable0Size = 14; | |
613 static const uint16_t kDashTable0[14] = { 45, 1418, 1470, 6150, 40976, 8213, 827
5, 8315, 8331, 8722, 11799, 12316, 12336, 12448 }; // NOLINT | |
614 static const uint16_t kDashTable1Size = 5; | |
615 static const uint16_t kDashTable1[5] = { 65073, 32306, 32344, 32355, 32525 }; //
NOLINT | |
616 bool Dash::Is(uchar c) { | |
617 int chunk_index = c >> 15; | |
618 switch (chunk_index) { | |
619 case 0: return LookupPredicate(kDashTable0, | |
620 kDashTable0Size, | |
621 c); | |
622 case 1: return LookupPredicate(kDashTable1, | |
623 kDashTable1Size, | |
624 c); | |
625 default: return false; | |
626 } | |
627 } | |
628 | |
629 // Hyphen: 'Hp' in point.properties | |
630 | |
631 static const uint16_t kHyphenTable0Size = 8; | |
632 static const uint16_t kHyphenTable0[8] = { 45, 173, 1418, 6150, 40976, 8209, 117
99, 12539 }; // NOLINT | |
633 static const uint16_t kHyphenTable1Size = 3; | |
634 static const uint16_t kHyphenTable1[3] = { 32355, 32525, 32613 }; // NOLINT | |
635 bool Hyphen::Is(uchar c) { | |
636 int chunk_index = c >> 15; | |
637 switch (chunk_index) { | |
638 case 0: return LookupPredicate(kHyphenTable0, | |
639 kHyphenTable0Size, | |
640 c); | |
641 case 1: return LookupPredicate(kHyphenTable1, | |
642 kHyphenTable1Size, | |
643 c); | |
644 default: return false; | |
645 } | |
646 } | |
647 | |
648 // LineTerminator: 'Lt' in point.properties | 490 // LineTerminator: 'Lt' in point.properties |
649 | 491 |
650 static const uint16_t kLineTerminatorTable0Size = 4; | 492 static const uint16_t kLineTerminatorTable0Size = 4; |
651 static const uint16_t kLineTerminatorTable0[4] = { 10, 13, 41000, 8233 }; // NOL
INT | 493 static const int32_t kLineTerminatorTable0[4] = { 10, 13, 1073750056, 8233 }; //
NOLINT |
652 bool LineTerminator::Is(uchar c) { | 494 bool LineTerminator::Is(uchar c) { |
653 int chunk_index = c >> 15; | 495 int chunk_index = c >> 15; |
654 switch (chunk_index) { | 496 switch (chunk_index) { |
655 case 0: return LookupPredicate(kLineTerminatorTable0, | 497 case 0: return LookupPredicate(kLineTerminatorTable0, |
656 kLineTerminatorTable0Size, | 498 kLineTerminatorTable0Size, |
657 c); | 499 c); |
658 default: return false; | 500 default: return false; |
659 } | 501 } |
660 } | 502 } |
661 | 503 |
662 // RegExpSpecialChar: 'Rx' in point.properties | |
663 | |
664 static const uint16_t kRegExpSpecialCharTable0Size = 9; | |
665 static const uint16_t kRegExpSpecialCharTable0[9] = { 36, 32808, 43, 46, 63, 328
59, 94, 32891, 125 }; // NOLINT | |
666 bool RegExpSpecialChar::Is(uchar c) { | |
667 int chunk_index = c >> 15; | |
668 switch (chunk_index) { | |
669 case 0: return LookupPredicate(kRegExpSpecialCharTable0, | |
670 kRegExpSpecialCharTable0Size, | |
671 c); | |
672 default: return false; | |
673 } | |
674 } | |
675 | |
676 // CombiningMark: point.category in ['Mn', 'Mc'] | 504 // CombiningMark: point.category in ['Mn', 'Mc'] |
677 | 505 |
678 static const uint16_t kCombiningMarkTable0Size = 214; | 506 static const uint16_t kCombiningMarkTable0Size = 214; |
679 static const uint16_t kCombiningMarkTable0[214] = { 33536, 879, 33923, 1158, 341
93, 1469, 1471, 34241, 1474, 34244, 1477, 1479, 34320, 1557, 34379, 1630, 1648,
34518, 1756, 34527, 1764, 34535, 1768, 34538, 1773, 1809, 34608, 1866, 34726, 19
68, 34795, 2035, 35073, 2307, 2364, 35134, 2381, 35153, 2388, 35170, 2403, 35201
, 2435, 2492, 35262, 2500, 35271, 2504, 35275, 2509, 2519, 35298, 2531, 35329, 2
563, 2620, 35390, 2626, 35399, 2632, 35403, 2637, 35440, 2673, 35457, 2691, 2748
, 35518, 2757, 35527, 2761, 35531, 2765, 35554, 2787, 35585, 2819, 2876, 35646,
2883, 35655, 2888, 35659, 2893, 35670, 2903, 2946, 35774, 3010, 35782, 3016, 357
86, 3021, 3031, 35841, 3075, 35902, 3140, 35910, 3144, 35914, 3149, 35925, 3158,
35970, 3203, 3260, 36030, 3268, 36038, 3272, 36042, 3277, 36053, 3286, 36066, 3
299, 36098, 3331, 36158, 3395, 36166, 3400, 36170, 3405, 3415, 36226, 3459, 3530
, 36303, 3540, 3542, 36312, 3551, 36338, 3571, 3633, 36404, 3642, 36423, 3662, 3
761, 36532, 3769, 36539, 3772, 36552, 3789, 36632, 3865, 3893, 3895, 3897, 36670
, 3903, 36721, 3972, 36742, 3975, 36752, 3991, 36761, 4028, 4038, 36908, 4146, 3
6918, 4153, 36950, 4185, 4959, 38674, 5908, 38706, 5940, 38738, 5971, 38770, 600
3, 38838, 6099, 6109, 38923, 6157, 6313, 39200, 6443, 39216, 6459, 39344, 6592,
39368, 6601, 39447, 6683, 39680, 6916, 39732, 6980, 39787, 7027, 40384, 7626, 40
446, 7679, 41168, 8412, 8417, 41189, 8431, 45098, 12335, 45209, 12442 }; // NOLI
NT | 507 static const int32_t kCombiningMarkTable0[214] = { 1073742592, 879, 1073742979,
1158, 1073743249, 1469, 1471, 1073743297, 1474, 1073743300, 1477, 1479, 10737433
76, 1557, 1073743435, 1630, 1648, 1073743574, 1756, 1073743583, 1764, 1073743591
, 1768, 1073743594, 1773, 1809, 1073743664, 1866, 1073743782, 1968, 1073743851,
2035, 1073744129, 2307, 2364, 1073744190, 2381, 1073744209, 2388, 1073744226, 24
03, 1073744257, 2435, 2492, 1073744318, 2500, 1073744327, 2504, 1073744331, 2509
, 2519, 1073744354, 2531, 1073744385, 2563, 2620, 1073744446, 2626, 1073744455,
2632, 1073744459, 2637, 1073744496, 2673, 1073744513, 2691, 2748, 1073744574, 27
57, 1073744583, 2761, 1073744587, 2765, 1073744610, 2787, 1073744641, 2819, 2876
, 1073744702, 2883, 1073744711, 2888, 1073744715, 2893, 1073744726, 2903, 2946,
1073744830, 3010, 1073744838, 3016, 1073744842, 3021, 3031, 1073744897, 3075, 10
73744958, 3140, 1073744966, 3144, 1073744970, 3149, 1073744981, 3158, 1073745026
, 3203, 3260, 1073745086, 3268, 1073745094, 3272, 1073745098, 3277, 1073745109,
3286, 1073745122, 3299, 1073745154, 3331, 1073745214, 3395, 1073745222, 3400, 10
73745226, 3405, 3415, 1073745282, 3459, 3530, 1073745359, 3540, 3542, 1073745368
, 3551, 1073745394, 3571, 3633, 1073745460, 3642, 1073745479, 3662, 3761, 107374
5588, 3769, 1073745595, 3772, 1073745608, 3789, 1073745688, 3865, 3893, 3895, 38
97, 1073745726, 3903, 1073745777, 3972, 1073745798, 3975, 1073745808, 3991, 1073
745817, 4028, 4038, 1073745964, 4146, 1073745974, 4153, 1073746006, 4185, 4959,
1073747730, 5908, 1073747762, 5940, 1073747794, 5971, 1073747826, 6003, 10737478
94, 6099, 6109, 1073747979, 6157, 6313, 1073748256, 6443, 1073748272, 6459, 1073
748400, 6592, 1073748424, 6601, 1073748503, 6683, 1073748736, 6916, 1073748788,
6980, 1073748843, 7027, 1073749440, 7626, 1073749502, 7679, 1073750224, 8412, 84
17, 1073750245, 8431, 1073754154, 12335, 1073754265, 12442 }; // NOLINT |
680 static const uint16_t kCombiningMarkTable1Size = 10; | 508 static const uint16_t kCombiningMarkTable1Size = 10; |
681 static const uint16_t kCombiningMarkTable1[10] = { 10242, 10246, 10251, 43043, 1
0279, 31518, 65024, 32271, 65056, 32291 }; // NOLINT | 509 static const int32_t kCombiningMarkTable1[10] = { 10242, 10246, 10251, 107375209
9, 10279, 31518, 1073774080, 32271, 1073774112, 32291 }; // NOLINT |
682 static const uint16_t kCombiningMarkTable2Size = 9; | 510 static const uint16_t kCombiningMarkTable2Size = 9; |
683 static const uint16_t kCombiningMarkTable2[9] = { 35329, 2563, 35333, 2566, 3534
0, 2575, 35384, 2618, 2623 }; // NOLINT | 511 static const int32_t kCombiningMarkTable2[9] = { 1073744385, 2563, 1073744389, 2
566, 1073744396, 2575, 1073744440, 2618, 2623 }; // NOLINT |
684 static const uint16_t kCombiningMarkTable3Size = 12; | 512 static const uint16_t kCombiningMarkTable3Size = 12; |
685 static const uint16_t kCombiningMarkTable3[12] = { 53605, 20841, 53613, 20850, 5
3627, 20866, 53637, 20875, 53674, 20909, 53826, 21060 }; // NOLINT | 513 static const int32_t kCombiningMarkTable3[12] = { 1073762661, 20841, 1073762669,
20850, 1073762683, 20866, 1073762693, 20875, 1073762730, 20909, 1073762882, 210
60 }; // NOLINT |
686 static const uint16_t kCombiningMarkTable28Size = 2; | 514 static const uint16_t kCombiningMarkTable28Size = 2; |
687 static const uint16_t kCombiningMarkTable28[2] = { 33024, 495 }; // NOLINT | 515 static const int32_t kCombiningMarkTable28[2] = { 1073742080, 495 }; // NOLINT |
688 bool CombiningMark::Is(uchar c) { | 516 bool CombiningMark::Is(uchar c) { |
689 int chunk_index = c >> 15; | 517 int chunk_index = c >> 15; |
690 switch (chunk_index) { | 518 switch (chunk_index) { |
691 case 0: return LookupPredicate(kCombiningMarkTable0, | 519 case 0: return LookupPredicate(kCombiningMarkTable0, |
692 kCombiningMarkTable0Size, | 520 kCombiningMarkTable0Size, |
693 c); | 521 c); |
694 case 1: return LookupPredicate(kCombiningMarkTable1, | 522 case 1: return LookupPredicate(kCombiningMarkTable1, |
695 kCombiningMarkTable1Size, | 523 kCombiningMarkTable1Size, |
696 c); | 524 c); |
697 case 2: return LookupPredicate(kCombiningMarkTable2, | 525 case 2: return LookupPredicate(kCombiningMarkTable2, |
698 kCombiningMarkTable2Size, | 526 kCombiningMarkTable2Size, |
699 c); | 527 c); |
700 case 3: return LookupPredicate(kCombiningMarkTable3, | 528 case 3: return LookupPredicate(kCombiningMarkTable3, |
701 kCombiningMarkTable3Size, | 529 kCombiningMarkTable3Size, |
702 c); | 530 c); |
703 case 28: return LookupPredicate(kCombiningMarkTable28, | 531 case 28: return LookupPredicate(kCombiningMarkTable28, |
704 kCombiningMarkTable28Size, | 532 kCombiningMarkTable28Size, |
705 c); | 533 c); |
706 default: return false; | 534 default: return false; |
707 } | 535 } |
708 } | 536 } |
709 | 537 |
710 // ConnectorPunctuation: point.category == 'Pc' | 538 // ConnectorPunctuation: point.category == 'Pc' |
711 | 539 |
712 static const uint16_t kConnectorPunctuationTable0Size = 4; | 540 static const uint16_t kConnectorPunctuationTable0Size = 4; |
713 static const uint16_t kConnectorPunctuationTable0[4] = { 95, 41023, 8256, 8276 }
; // NOLINT | 541 static const int32_t kConnectorPunctuationTable0[4] = { 95, 1073750079, 8256, 82
76 }; // NOLINT |
714 static const uint16_t kConnectorPunctuationTable1Size = 5; | 542 static const uint16_t kConnectorPunctuationTable1Size = 5; |
715 static const uint16_t kConnectorPunctuationTable1[5] = { 65075, 32308, 65101, 32
335, 32575 }; // NOLINT | 543 static const int32_t kConnectorPunctuationTable1[5] = { 1073774131, 32308, 10737
74157, 32335, 32575 }; // NOLINT |
716 bool ConnectorPunctuation::Is(uchar c) { | 544 bool ConnectorPunctuation::Is(uchar c) { |
717 int chunk_index = c >> 15; | 545 int chunk_index = c >> 15; |
718 switch (chunk_index) { | 546 switch (chunk_index) { |
719 case 0: return LookupPredicate(kConnectorPunctuationTable0, | 547 case 0: return LookupPredicate(kConnectorPunctuationTable0, |
720 kConnectorPunctuationTable0Size, | 548 kConnectorPunctuationTable0Size, |
721 c); | 549 c); |
722 case 1: return LookupPredicate(kConnectorPunctuationTable1, | 550 case 1: return LookupPredicate(kConnectorPunctuationTable1, |
723 kConnectorPunctuationTable1Size, | 551 kConnectorPunctuationTable1Size, |
724 c); | 552 c); |
725 default: return false; | 553 default: return false; |
726 } | 554 } |
727 } | 555 } |
728 | 556 |
729 static const MultiCharacterSpecialCase kToLowercaseMultiStrings0[] = { {2, {105,
775}}, {0, {0}} }; // NOLINT | 557 static const MultiCharacterSpecialCase<3> kToLowercaseMultiStrings0[] = { {2, {1
05, 775}}, {0, {0}} }; // NOLINT |
730 static const uint16_t kToLowercaseTable0Size = 531; | 558 static const uint16_t kToLowercaseTable0Size = 531; |
731 static const uint16_t kToLowercaseTable0[1062] = { 32833, 128, 90, 128, 32960, 1
28, 214, 128, 32984, 128, 222, 128, 256, 4, 258, 4, 260, 4, 262, 4, 264, 4, 266,
4, 268, 4, 270, 4, 272, 4, 274, 4, 276, 4, 278, 4, 280, 4, 282, 4, 284, 4, 286,
4, 288, 4, 290, 4, 292, 4, 294, 4, 296, 4, 298, 4, 300, 4, 302, 4, 304, 1, 306,
4, 308, 4, 310, 4, 313, 4, 315, 4, 317, 4, 319, 4, 321, 4, 323, 4, 325, 4, 327,
4, 330, 4, 332, 4, 334, 4, 336, 4, 338, 4, 340, 4, 342, 4, 344, 4, 346, 4, 348,
4, 350, 4, 352, 4, 354, 4, 356, 4, 358, 4, 360, 4, 362, 4, 364, 4, 366, 4, 368,
4, 370, 4, 372, 4, 374, 4, 376, static_cast<uint16_t>(-484), 377, 4, 379, 4, 38
1, 4, 385, 840, 386, 4, 388, 4, 390, 824, 391, 4, 33161, 820, 394, 820, 395, 4,
398, 316, 399, 808, 400, 812, 401, 4, 403, 820, 404, 828, 406, 844, 407, 836, 40
8, 4, 412, 844, 413, 852, 415, 856, 416, 4, 418, 4, 420, 4, 422, 872, 423, 4, 42
5, 872, 428, 4, 430, 872, 431, 4, 33201, 868, 434, 868, 435, 4, 437, 4, 439, 876
, 440, 4, 444, 4, 452, 8, 453, 4, 455, 8, 456, 4, 458, 8, 459, 4, 461, 4, 463, 4
, 465, 4, 467, 4, 469, 4, 471, 4, 473, 4, 475, 4, 478, 4, 480, 4, 482, 4, 484, 4
, 486, 4, 488, 4, 490, 4, 492, 4, 494, 4, 497, 8, 498, 4, 500, 4, 502, static_ca
st<uint16_t>(-388), 503, static_cast<uint16_t>(-224), 504, 4, 506, 4, 508, 4, 51
0, 4, 512, 4, 514, 4, 516, 4, 518, 4, 520, 4, 522, 4, 524, 4, 526, 4, 528, 4, 53
0, 4, 532, 4, 534, 4, 536, 4, 538, 4, 540, 4, 542, 4, 544, static_cast<uint16_t>
(-520), 546, 4, 548, 4, 550, 4, 552, 4, 554, 4, 556, 4, 558, 4, 560, 4, 562, 4,
570, 43180, 571, 4, 573, static_cast<uint16_t>(-652), 574, 43168, 577, 4, 579, s
tatic_cast<uint16_t>(-780), 580, 276, 581, 284, 582, 4, 584, 4, 586, 4, 588, 4,
590, 4, 902, 152, 33672, 148, 906, 148, 908, 256, 33678, 252, 911, 252, 33681, 1
28, 929, 128, 33699, 6, 939, 128, 984, 4, 986, 4, 988, 4, 990, 4, 992, 4, 994, 4
, 996, 4, 998, 4, 1000, 4, 1002, 4, 1004, 4, 1006, 4, 1012, static_cast<uint16_t
>(-240), 1015, 4, 1017, static_cast<uint16_t>(-28), 1018, 4, 33789, static_cast<
uint16_t>(-520), 1023, static_cast<uint16_t>(-520), 33792, 320, 1039, 320, 33808
, 128, 1071, 128, 1120, 4, 1122, 4, 1124, 4, 1126, 4, 1128, 4, 1130, 4, 1132, 4,
1134, 4, 1136, 4, 1138, 4, 1140, 4, 1142, 4, 1144, 4, 1146, 4, 1148, 4, 1150, 4
, 1152, 4, 1162, 4, 1164, 4, 1166, 4, 1168, 4, 1170, 4, 1172, 4, 1174, 4, 1176,
4, 1178, 4, 1180, 4, 1182, 4, 1184, 4, 1186, 4, 1188, 4, 1190, 4, 1192, 4, 1194,
4, 1196, 4, 1198, 4, 1200, 4, 1202, 4, 1204, 4, 1206, 4, 1208, 4, 1210, 4, 1212
, 4, 1214, 4, 1216, 60, 1217, 4, 1219, 4, 1221, 4, 1223, 4, 1225, 4, 1227, 4, 12
29, 4, 1232, 4, 1234, 4, 1236, 4, 1238, 4, 1240, 4, 1242, 4, 1244, 4, 1246, 4, 1
248, 4, 1250, 4, 1252, 4, 1254, 4, 1256, 4, 1258, 4, 1260, 4, 1262, 4, 1264, 4,
1266, 4, 1268, 4, 1270, 4, 1272, 4, 1274, 4, 1276, 4, 1278, 4, 1280, 4, 1282, 4,
1284, 4, 1286, 4, 1288, 4, 1290, 4, 1292, 4, 1294, 4, 1296, 4, 1298, 4, 34097,
192, 1366, 192, 37024, 29056, 4293, 29056, 7680, 4, 7682, 4, 7684, 4, 7686, 4, 7
688, 4, 7690, 4, 7692, 4, 7694, 4, 7696, 4, 7698, 4, 7700, 4, 7702, 4, 7704, 4,
7706, 4, 7708, 4, 7710, 4, 7712, 4, 7714, 4, 7716, 4, 7718, 4, 7720, 4, 7722, 4,
7724, 4, 7726, 4, 7728, 4, 7730, 4, 7732, 4, 7734, 4, 7736, 4, 7738, 4, 7740, 4
, 7742, 4, 7744, 4, 7746, 4, 7748, 4, 7750, 4, 7752, 4, 7754, 4, 7756, 4, 7758,
4, 7760, 4, 7762, 4, 7764, 4, 7766, 4, 7768, 4, 7770, 4, 7772, 4, 7774, 4, 7776,
4, 7778, 4, 7780, 4, 7782, 4, 7784, 4, 7786, 4, 7788, 4, 7790, 4, 7792, 4, 7794
, 4, 7796, 4, 7798, 4, 7800, 4, 7802, 4, 7804, 4, 7806, 4, 7808, 4, 7810, 4, 781
2, 4, 7814, 4, 7816, 4, 7818, 4, 7820, 4, 7822, 4, 7824, 4, 7826, 4, 7828, 4, 78
40, 4, 7842, 4, 7844, 4, 7846, 4, 7848, 4, 7850, 4, 7852, 4, 7854, 4, 7856, 4, 7
858, 4, 7860, 4, 7862, 4, 7864, 4, 7866, 4, 7868, 4, 7870, 4, 7872, 4, 7874, 4,
7876, 4, 7878, 4, 7880, 4, 7882, 4, 7884, 4, 7886, 4, 7888, 4, 7890, 4, 7892, 4,
7894, 4, 7896, 4, 7898, 4, 7900, 4, 7902, 4, 7904, 4, 7906, 4, 7908, 4, 7910, 4
, 7912, 4, 7914, 4, 7916, 4, 7918, 4, 7920, 4, 7922, 4, 7924, 4, 7926, 4, 7928,
4, 40712, static_cast<uint16_t>(-32), 7951, static_cast<uint16_t>(-32), 40728, s
tatic_cast<uint16_t>(-32), 7965, static_cast<uint16_t>(-32), 40744, static_cast<
uint16_t>(-32), 7983, static_cast<uint16_t>(-32), 40760, static_cast<uint16_t>(-
32), 7999, static_cast<uint16_t>(-32), 40776, static_cast<uint16_t>(-32), 8013,
static_cast<uint16_t>(-32), 8025, static_cast<uint16_t>(-32), 8027, static_cast<
uint16_t>(-32), 8029, static_cast<uint16_t>(-32), 8031, static_cast<uint16_t>(-3
2), 40808, static_cast<uint16_t>(-32), 8047, static_cast<uint16_t>(-32), 40840,
static_cast<uint16_t>(-32), 8079, static_cast<uint16_t>(-32), 40856, static_cast
<uint16_t>(-32), 8095, static_cast<uint16_t>(-32), 40872, static_cast<uint16_t>(
-32), 8111, static_cast<uint16_t>(-32), 40888, static_cast<uint16_t>(-32), 8121,
static_cast<uint16_t>(-32), 40890, static_cast<uint16_t>(-296), 8123, static_ca
st<uint16_t>(-296), 8124, static_cast<uint16_t>(-36), 40904, static_cast<uint16_
t>(-344), 8139, static_cast<uint16_t>(-344), 8140, static_cast<uint16_t>(-36), 4
0920, static_cast<uint16_t>(-32), 8153, static_cast<uint16_t>(-32), 40922, stati
c_cast<uint16_t>(-400), 8155, static_cast<uint16_t>(-400), 40936, static_cast<ui
nt16_t>(-32), 8169, static_cast<uint16_t>(-32), 40938, static_cast<uint16_t>(-44
8), 8171, static_cast<uint16_t>(-448), 8172, static_cast<uint16_t>(-28), 40952,
static_cast<uint16_t>(-512), 8185, static_cast<uint16_t>(-512), 40954, static_ca
st<uint16_t>(-504), 8187, static_cast<uint16_t>(-504), 8188, static_cast<uint16_
t>(-36), 8486, static_cast<uint16_t>(-30068), 8490, static_cast<uint16_t>(-33532
), 8491, static_cast<uint16_t>(-33048), 8498, 112, 41312, 64, 8559, 64, 8579, 4,
42166, 104, 9423, 104, 44032, 192, 11310, 192, 11360, 4, 11362, static_cast<uin
t16_t>(-42972), 11363, static_cast<uint16_t>(-15256), 11364, static_cast<uint16_
t>(-42908), 11367, 4, 11369, 4, 11371, 4, 11381, 4, 11392, 4, 11394, 4, 11396, 4
, 11398, 4, 11400, 4, 11402, 4, 11404, 4, 11406, 4, 11408, 4, 11410, 4, 11412, 4
, 11414, 4, 11416, 4, 11418, 4, 11420, 4, 11422, 4, 11424, 4, 11426, 4, 11428, 4
, 11430, 4, 11432, 4, 11434, 4, 11436, 4, 11438, 4, 11440, 4, 11442, 4, 11444, 4
, 11446, 4, 11448, 4, 11450, 4, 11452, 4, 11454, 4, 11456, 4, 11458, 4, 11460, 4
, 11462, 4, 11464, 4, 11466, 4, 11468, 4, 11470, 4, 11472, 4, 11474, 4, 11476, 4
, 11478, 4, 11480, 4, 11482, 4, 11484, 4, 11486, 4, 11488, 4, 11490, 4 }; // NOL
INT | 559 static const int32_t kToLowercaseTable0[1062] = { 1073741889, 128, 90, 128, 1073
742016, 128, 214, 128, 1073742040, 128, 222, 128, 256, 4, 258, 4, 260, 4, 262, 4
, 264, 4, 266, 4, 268, 4, 270, 4, 272, 4, 274, 4, 276, 4, 278, 4, 280, 4, 282, 4
, 284, 4, 286, 4, 288, 4, 290, 4, 292, 4, 294, 4, 296, 4, 298, 4, 300, 4, 302, 4
, 304, 1, 306, 4, 308, 4, 310, 4, 313, 4, 315, 4, 317, 4, 319, 4, 321, 4, 323, 4
, 325, 4, 327, 4, 330, 4, 332, 4, 334, 4, 336, 4, 338, 4, 340, 4, 342, 4, 344, 4
, 346, 4, 348, 4, 350, 4, 352, 4, 354, 4, 356, 4, 358, 4, 360, 4, 362, 4, 364, 4
, 366, 4, 368, 4, 370, 4, 372, 4, 374, 4, 376, -484, 377, 4, 379, 4, 381, 4, 385
, 840, 386, 4, 388, 4, 390, 824, 391, 4, 1073742217, 820, 394, 820, 395, 4, 398,
316, 399, 808, 400, 812, 401, 4, 403, 820, 404, 828, 406, 844, 407, 836, 408, 4
, 412, 844, 413, 852, 415, 856, 416, 4, 418, 4, 420, 4, 422, 872, 423, 4, 425, 8
72, 428, 4, 430, 872, 431, 4, 1073742257, 868, 434, 868, 435, 4, 437, 4, 439, 87
6, 440, 4, 444, 4, 452, 8, 453, 4, 455, 8, 456, 4, 458, 8, 459, 4, 461, 4, 463,
4, 465, 4, 467, 4, 469, 4, 471, 4, 473, 4, 475, 4, 478, 4, 480, 4, 482, 4, 484,
4, 486, 4, 488, 4, 490, 4, 492, 4, 494, 4, 497, 8, 498, 4, 500, 4, 502, -388, 50
3, -224, 504, 4, 506, 4, 508, 4, 510, 4, 512, 4, 514, 4, 516, 4, 518, 4, 520, 4,
522, 4, 524, 4, 526, 4, 528, 4, 530, 4, 532, 4, 534, 4, 536, 4, 538, 4, 540, 4,
542, 4, 544, -520, 546, 4, 548, 4, 550, 4, 552, 4, 554, 4, 556, 4, 558, 4, 560,
4, 562, 4, 570, 43180, 571, 4, 573, -652, 574, 43168, 577, 4, 579, -780, 580, 2
76, 581, 284, 582, 4, 584, 4, 586, 4, 588, 4, 590, 4, 902, 152, 1073742728, 148,
906, 148, 908, 256, 1073742734, 252, 911, 252, 1073742737, 128, 929, 128, 10737
42755, 6, 939, 128, 984, 4, 986, 4, 988, 4, 990, 4, 992, 4, 994, 4, 996, 4, 998,
4, 1000, 4, 1002, 4, 1004, 4, 1006, 4, 1012, -240, 1015, 4, 1017, -28, 1018, 4,
1073742845, -520, 1023, -520, 1073742848, 320, 1039, 320, 1073742864, 128, 1071
, 128, 1120, 4, 1122, 4, 1124, 4, 1126, 4, 1128, 4, 1130, 4, 1132, 4, 1134, 4, 1
136, 4, 1138, 4, 1140, 4, 1142, 4, 1144, 4, 1146, 4, 1148, 4, 1150, 4, 1152, 4,
1162, 4, 1164, 4, 1166, 4, 1168, 4, 1170, 4, 1172, 4, 1174, 4, 1176, 4, 1178, 4,
1180, 4, 1182, 4, 1184, 4, 1186, 4, 1188, 4, 1190, 4, 1192, 4, 1194, 4, 1196, 4
, 1198, 4, 1200, 4, 1202, 4, 1204, 4, 1206, 4, 1208, 4, 1210, 4, 1212, 4, 1214,
4, 1216, 60, 1217, 4, 1219, 4, 1221, 4, 1223, 4, 1225, 4, 1227, 4, 1229, 4, 1232
, 4, 1234, 4, 1236, 4, 1238, 4, 1240, 4, 1242, 4, 1244, 4, 1246, 4, 1248, 4, 125
0, 4, 1252, 4, 1254, 4, 1256, 4, 1258, 4, 1260, 4, 1262, 4, 1264, 4, 1266, 4, 12
68, 4, 1270, 4, 1272, 4, 1274, 4, 1276, 4, 1278, 4, 1280, 4, 1282, 4, 1284, 4, 1
286, 4, 1288, 4, 1290, 4, 1292, 4, 1294, 4, 1296, 4, 1298, 4, 1073743153, 192, 1
366, 192, 1073746080, 29056, 4293, 29056, 7680, 4, 7682, 4, 7684, 4, 7686, 4, 76
88, 4, 7690, 4, 7692, 4, 7694, 4, 7696, 4, 7698, 4, 7700, 4, 7702, 4, 7704, 4, 7
706, 4, 7708, 4, 7710, 4, 7712, 4, 7714, 4, 7716, 4, 7718, 4, 7720, 4, 7722, 4,
7724, 4, 7726, 4, 7728, 4, 7730, 4, 7732, 4, 7734, 4, 7736, 4, 7738, 4, 7740, 4,
7742, 4, 7744, 4, 7746, 4, 7748, 4, 7750, 4, 7752, 4, 7754, 4, 7756, 4, 7758, 4
, 7760, 4, 7762, 4, 7764, 4, 7766, 4, 7768, 4, 7770, 4, 7772, 4, 7774, 4, 7776,
4, 7778, 4, 7780, 4, 7782, 4, 7784, 4, 7786, 4, 7788, 4, 7790, 4, 7792, 4, 7794,
4, 7796, 4, 7798, 4, 7800, 4, 7802, 4, 7804, 4, 7806, 4, 7808, 4, 7810, 4, 7812
, 4, 7814, 4, 7816, 4, 7818, 4, 7820, 4, 7822, 4, 7824, 4, 7826, 4, 7828, 4, 784
0, 4, 7842, 4, 7844, 4, 7846, 4, 7848, 4, 7850, 4, 7852, 4, 7854, 4, 7856, 4, 78
58, 4, 7860, 4, 7862, 4, 7864, 4, 7866, 4, 7868, 4, 7870, 4, 7872, 4, 7874, 4, 7
876, 4, 7878, 4, 7880, 4, 7882, 4, 7884, 4, 7886, 4, 7888, 4, 7890, 4, 7892, 4,
7894, 4, 7896, 4, 7898, 4, 7900, 4, 7902, 4, 7904, 4, 7906, 4, 7908, 4, 7910, 4,
7912, 4, 7914, 4, 7916, 4, 7918, 4, 7920, 4, 7922, 4, 7924, 4, 7926, 4, 7928, 4
, 1073749768, -32, 7951, -32, 1073749784, -32, 7965, -32, 1073749800, -32, 7983,
-32, 1073749816, -32, 7999, -32, 1073749832, -32, 8013, -32, 8025, -32, 8027, -
32, 8029, -32, 8031, -32, 1073749864, -32, 8047, -32, 1073749896, -32, 8079, -32
, 1073749912, -32, 8095, -32, 1073749928, -32, 8111, -32, 1073749944, -32, 8121,
-32, 1073749946, -296, 8123, -296, 8124, -36, 1073749960, -344, 8139, -344, 814
0, -36, 1073749976, -32, 8153, -32, 1073749978, -400, 8155, -400, 1073749992, -3
2, 8169, -32, 1073749994, -448, 8171, -448, 8172, -28, 1073750008, -512, 8185, -
512, 1073750010, -504, 8187, -504, 8188, -36, 8486, -30068, 8490, -33532, 8491,
-33048, 8498, 112, 1073750368, 64, 8559, 64, 8579, 4, 1073751222, 104, 9423, 104
, 1073753088, 192, 11310, 192, 11360, 4, 11362, -42972, 11363, -15256, 11364, -4
2908, 11367, 4, 11369, 4, 11371, 4, 11381, 4, 11392, 4, 11394, 4, 11396, 4, 1139
8, 4, 11400, 4, 11402, 4, 11404, 4, 11406, 4, 11408, 4, 11410, 4, 11412, 4, 1141
4, 4, 11416, 4, 11418, 4, 11420, 4, 11422, 4, 11424, 4, 11426, 4, 11428, 4, 1143
0, 4, 11432, 4, 11434, 4, 11436, 4, 11438, 4, 11440, 4, 11442, 4, 11444, 4, 1144
6, 4, 11448, 4, 11450, 4, 11452, 4, 11454, 4, 11456, 4, 11458, 4, 11460, 4, 1146
2, 4, 11464, 4, 11466, 4, 11468, 4, 11470, 4, 11472, 4, 11474, 4, 11476, 4, 1147
8, 4, 11480, 4, 11482, 4, 11484, 4, 11486, 4, 11488, 4, 11490, 4 }; // NOLINT |
732 static const MultiCharacterSpecialCase kToLowercaseMultiStrings1[] = { {0, {0}}
}; // NOLINT | 560 static const MultiCharacterSpecialCase<3> kToLowercaseMultiStrings1[] = { {0, {0
}} }; // NOLINT |
733 static const uint16_t kToLowercaseTable1Size = 2; | 561 static const uint16_t kToLowercaseTable1Size = 2; |
734 static const uint16_t kToLowercaseTable1[4] = { 65313, 128, 32570, 128 }; // NOL
INT | 562 static const int32_t kToLowercaseTable1[4] = { 1073774369, 128, 32570, 128 }; //
NOLINT |
735 static const MultiCharacterSpecialCase kToLowercaseMultiStrings2[] = { {0, {0}}
}; // NOLINT | 563 static const MultiCharacterSpecialCase<3> kToLowercaseMultiStrings2[] = { {0, {0
}} }; // NOLINT |
736 static const uint16_t kToLowercaseTable2Size = 2; | 564 static const uint16_t kToLowercaseTable2Size = 2; |
737 static const uint16_t kToLowercaseTable2[4] = { 33792, 160, 1063, 160 }; // NOLI
NT | 565 static const int32_t kToLowercaseTable2[4] = { 1073742848, 160, 1063, 160 }; //
NOLINT |
738 int ToLowercase::Convert(uchar c, | 566 int ToLowercase::Convert(uchar c, |
739 uchar n, | 567 uchar n, |
740 uchar* result, | 568 uchar* result, |
741 bool* allow_caching_ptr) { | 569 bool* allow_caching_ptr) { |
742 int chunk_index = c >> 15; | 570 int chunk_index = c >> 15; |
743 switch (chunk_index) { | 571 switch (chunk_index) { |
744 case 0: return LookupMapping(kToLowercaseTable0, | 572 case 0: return LookupMapping(kToLowercaseTable0, |
745 kToLowercaseTable0Size, | 573 kToLowercaseTable0Size, |
746 kToLowercaseMultiStrings0, | 574 kToLowercaseMultiStrings0, |
747 c, | 575 c, |
(...skipping 11 matching lines...) Expand all Loading... |
759 kToLowercaseTable2Size, | 587 kToLowercaseTable2Size, |
760 kToLowercaseMultiStrings2, | 588 kToLowercaseMultiStrings2, |
761 c, | 589 c, |
762 n, | 590 n, |
763 result, | 591 result, |
764 allow_caching_ptr); | 592 allow_caching_ptr); |
765 default: return 0; | 593 default: return 0; |
766 } | 594 } |
767 } | 595 } |
768 | 596 |
769 static const MultiCharacterSpecialCase kToUppercaseMultiStrings0[] = { {2, {83,
83}}, {2, {700, 78}}, {2, {74, 780}}, {3, {921, 776, 769}}, {3, {933, 776, 769}}
, {2, {1333, 1362}}, {2, {72, 817}}, {2, {84, 776}}, {2, {87, 778}}, {2, {89, 77
8}}, {2, {65, 702}}, {2, {933, 787}}, {3, {933, 787, 768}}, {3, {933, 787, 769}}
, {3, {933, 787, 834}}, {2, {7944, 921}}, {2, {7945, 921}}, {2, {7946, 921}}, {2
, {7947, 921}}, {2, {7948, 921}}, {2, {7949, 921}}, {2, {7950, 921}}, {2, {7951,
921}}, {2, {7944, 921}}, {2, {7945, 921}}, {2, {7946, 921}}, {2, {7947, 921}},
{2, {7948, 921}}, {2, {7949, 921}}, {2, {7950, 921}}, {2, {7951, 921}}, {2, {797
6, 921}}, {2, {7977, 921}}, {2, {7978, 921}}, {2, {7979, 921}}, {2, {7980, 921}}
, {2, {7981, 921}}, {2, {7982, 921}}, {2, {7983, 921}}, {2, {7976, 921}}, {2, {7
977, 921}}, {2, {7978, 921}}, {2, {7979, 921}}, {2, {7980, 921}}, {2, {7981, 921
}}, {2, {7982, 921}}, {2, {7983, 921}}, {2, {8040, 921}}, {2, {8041, 921}}, {2,
{8042, 921}}, {2, {8043, 921}}, {2, {8044, 921}}, {2, {8045, 921}}, {2, {8046, 9
21}}, {2, {8047, 921}}, {2, {8040, 921}}, {2, {8041, 921}}, {2, {8042, 921}}, {2
, {8043, 921}}, {2, {8044, 921}}, {2, {8045, 921}}, {2, {8046, 921}}, {2, {8047,
921}}, {2, {8122, 921}}, {2, {913, 921}}, {2, {902, 921}}, {2, {913, 834}}, {3,
{913, 834, 921}}, {2, {913, 921}}, {2, {8138, 921}}, {2, {919, 921}}, {2, {905,
921}}, {2, {919, 834}}, {3, {919, 834, 921}}, {2, {919, 921}}, {3, {921, 776, 7
68}}, {3, {921, 776, 769}}, {2, {921, 834}}, {3, {921, 776, 834}}, {3, {933, 776
, 768}}, {3, {933, 776, 769}}, {2, {929, 787}}, {2, {933, 834}}, {3, {933, 776,
834}}, {2, {8186, 921}}, {2, {937, 921}}, {2, {911, 921}}, {2, {937, 834}}, {3,
{937, 834, 921}}, {2, {937, 921}}, {0, {0}} }; // NOLINT | 597 static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings0[] = { {2, {8
3, 83}}, {2, {700, 78}}, {2, {74, 780}}, {3, {921, 776, 769}}, {3, {933, 776, 76
9}}, {2, {1333, 1362}}, {2, {72, 817}}, {2, {84, 776}}, {2, {87, 778}}, {2, {89,
778}}, {2, {65, 702}}, {2, {933, 787}}, {3, {933, 787, 768}}, {3, {933, 787, 76
9}}, {3, {933, 787, 834}}, {2, {7944, 921}}, {2, {7945, 921}}, {2, {7946, 921}},
{2, {7947, 921}}, {2, {7948, 921}}, {2, {7949, 921}}, {2, {7950, 921}}, {2, {79
51, 921}}, {2, {7944, 921}}, {2, {7945, 921}}, {2, {7946, 921}}, {2, {7947, 921}
}, {2, {7948, 921}}, {2, {7949, 921}}, {2, {7950, 921}}, {2, {7951, 921}}, {2, {
7976, 921}}, {2, {7977, 921}}, {2, {7978, 921}}, {2, {7979, 921}}, {2, {7980, 92
1}}, {2, {7981, 921}}, {2, {7982, 921}}, {2, {7983, 921}}, {2, {7976, 921}}, {2,
{7977, 921}}, {2, {7978, 921}}, {2, {7979, 921}}, {2, {7980, 921}}, {2, {7981,
921}}, {2, {7982, 921}}, {2, {7983, 921}}, {2, {8040, 921}}, {2, {8041, 921}}, {
2, {8042, 921}}, {2, {8043, 921}}, {2, {8044, 921}}, {2, {8045, 921}}, {2, {8046
, 921}}, {2, {8047, 921}}, {2, {8040, 921}}, {2, {8041, 921}}, {2, {8042, 921}},
{2, {8043, 921}}, {2, {8044, 921}}, {2, {8045, 921}}, {2, {8046, 921}}, {2, {80
47, 921}}, {2, {8122, 921}}, {2, {913, 921}}, {2, {902, 921}}, {2, {913, 834}},
{3, {913, 834, 921}}, {2, {913, 921}}, {2, {8138, 921}}, {2, {919, 921}}, {2, {9
05, 921}}, {2, {919, 834}}, {3, {919, 834, 921}}, {2, {919, 921}}, {3, {921, 776
, 768}}, {3, {921, 776, 769}}, {2, {921, 834}}, {3, {921, 776, 834}}, {3, {933,
776, 768}}, {3, {933, 776, 769}}, {2, {929, 787}}, {2, {933, 834}}, {3, {933, 77
6, 834}}, {2, {8186, 921}}, {2, {937, 921}}, {2, {911, 921}}, {2, {937, 834}}, {
3, {937, 834, 921}}, {2, {937, 921}}, {0, {0}} }; // NOLINT |
770 static const uint16_t kToUppercaseTable0Size = 621; | 598 static const uint16_t kToUppercaseTable0Size = 621; |
771 static const uint16_t kToUppercaseTable0[1242] = { 32865, static_cast<uint16_t>(
-128), 122, static_cast<uint16_t>(-128), 181, 2972, 223, 1, 32992, static_cast<u
int16_t>(-128), 246, static_cast<uint16_t>(-128), 33016, static_cast<uint16_t>(-
128), 254, static_cast<uint16_t>(-128), 255, 484, 257, static_cast<uint16_t>(-4)
, 259, static_cast<uint16_t>(-4), 261, static_cast<uint16_t>(-4), 263, static_ca
st<uint16_t>(-4), 265, static_cast<uint16_t>(-4), 267, static_cast<uint16_t>(-4)
, 269, static_cast<uint16_t>(-4), 271, static_cast<uint16_t>(-4), 273, static_ca
st<uint16_t>(-4), 275, static_cast<uint16_t>(-4), 277, static_cast<uint16_t>(-4)
, 279, static_cast<uint16_t>(-4), 281, static_cast<uint16_t>(-4), 283, static_ca
st<uint16_t>(-4), 285, static_cast<uint16_t>(-4), 287, static_cast<uint16_t>(-4)
, 289, static_cast<uint16_t>(-4), 291, static_cast<uint16_t>(-4), 293, static_ca
st<uint16_t>(-4), 295, static_cast<uint16_t>(-4), 297, static_cast<uint16_t>(-4)
, 299, static_cast<uint16_t>(-4), 301, static_cast<uint16_t>(-4), 303, static_ca
st<uint16_t>(-4), 305, static_cast<uint16_t>(-928), 307, static_cast<uint16_t>(-
4), 309, static_cast<uint16_t>(-4), 311, static_cast<uint16_t>(-4), 314, static_
cast<uint16_t>(-4), 316, static_cast<uint16_t>(-4), 318, static_cast<uint16_t>(-
4), 320, static_cast<uint16_t>(-4), 322, static_cast<uint16_t>(-4), 324, static_
cast<uint16_t>(-4), 326, static_cast<uint16_t>(-4), 328, static_cast<uint16_t>(-
4), 329, 5, 331, static_cast<uint16_t>(-4), 333, static_cast<uint16_t>(-4), 335,
static_cast<uint16_t>(-4), 337, static_cast<uint16_t>(-4), 339, static_cast<uin
t16_t>(-4), 341, static_cast<uint16_t>(-4), 343, static_cast<uint16_t>(-4), 345,
static_cast<uint16_t>(-4), 347, static_cast<uint16_t>(-4), 349, static_cast<uin
t16_t>(-4), 351, static_cast<uint16_t>(-4), 353, static_cast<uint16_t>(-4), 355,
static_cast<uint16_t>(-4), 357, static_cast<uint16_t>(-4), 359, static_cast<uin
t16_t>(-4), 361, static_cast<uint16_t>(-4), 363, static_cast<uint16_t>(-4), 365,
static_cast<uint16_t>(-4), 367, static_cast<uint16_t>(-4), 369, static_cast<uin
t16_t>(-4), 371, static_cast<uint16_t>(-4), 373, static_cast<uint16_t>(-4), 375,
static_cast<uint16_t>(-4), 378, static_cast<uint16_t>(-4), 380, static_cast<uin
t16_t>(-4), 382, static_cast<uint16_t>(-4), 383, static_cast<uint16_t>(-1200), 3
84, 780, 387, static_cast<uint16_t>(-4), 389, static_cast<uint16_t>(-4), 392, st
atic_cast<uint16_t>(-4), 396, static_cast<uint16_t>(-4), 402, static_cast<uint16
_t>(-4), 405, 388, 409, static_cast<uint16_t>(-4), 410, 652, 414, 520, 417, stat
ic_cast<uint16_t>(-4), 419, static_cast<uint16_t>(-4), 421, static_cast<uint16_t
>(-4), 424, static_cast<uint16_t>(-4), 429, static_cast<uint16_t>(-4), 432, stat
ic_cast<uint16_t>(-4), 436, static_cast<uint16_t>(-4), 438, static_cast<uint16_t
>(-4), 441, static_cast<uint16_t>(-4), 445, static_cast<uint16_t>(-4), 447, 224,
453, static_cast<uint16_t>(-4), 454, static_cast<uint16_t>(-8), 456, static_cas
t<uint16_t>(-4), 457, static_cast<uint16_t>(-8), 459, static_cast<uint16_t>(-4),
460, static_cast<uint16_t>(-8), 462, static_cast<uint16_t>(-4), 464, static_cas
t<uint16_t>(-4), 466, static_cast<uint16_t>(-4), 468, static_cast<uint16_t>(-4),
470, static_cast<uint16_t>(-4), 472, static_cast<uint16_t>(-4), 474, static_cas
t<uint16_t>(-4), 476, static_cast<uint16_t>(-4), 477, static_cast<uint16_t>(-316
), 479, static_cast<uint16_t>(-4), 481, static_cast<uint16_t>(-4), 483, static_c
ast<uint16_t>(-4), 485, static_cast<uint16_t>(-4), 487, static_cast<uint16_t>(-4
), 489, static_cast<uint16_t>(-4), 491, static_cast<uint16_t>(-4), 493, static_c
ast<uint16_t>(-4), 495, static_cast<uint16_t>(-4), 496, 9, 498, static_cast<uint
16_t>(-4), 499, static_cast<uint16_t>(-8), 501, static_cast<uint16_t>(-4), 505,
static_cast<uint16_t>(-4), 507, static_cast<uint16_t>(-4), 509, static_cast<uint
16_t>(-4), 511, static_cast<uint16_t>(-4), 513, static_cast<uint16_t>(-4), 515,
static_cast<uint16_t>(-4), 517, static_cast<uint16_t>(-4), 519, static_cast<uint
16_t>(-4), 521, static_cast<uint16_t>(-4), 523, static_cast<uint16_t>(-4), 525,
static_cast<uint16_t>(-4), 527, static_cast<uint16_t>(-4), 529, static_cast<uint
16_t>(-4), 531, static_cast<uint16_t>(-4), 533, static_cast<uint16_t>(-4), 535,
static_cast<uint16_t>(-4), 537, static_cast<uint16_t>(-4), 539, static_cast<uint
16_t>(-4), 541, static_cast<uint16_t>(-4), 543, static_cast<uint16_t>(-4), 547,
static_cast<uint16_t>(-4), 549, static_cast<uint16_t>(-4), 551, static_cast<uint
16_t>(-4), 553, static_cast<uint16_t>(-4), 555, static_cast<uint16_t>(-4), 557,
static_cast<uint16_t>(-4), 559, static_cast<uint16_t>(-4), 561, static_cast<uint
16_t>(-4), 563, static_cast<uint16_t>(-4), 572, static_cast<uint16_t>(-4), 578,
static_cast<uint16_t>(-4), 583, static_cast<uint16_t>(-4), 585, static_cast<uint
16_t>(-4), 587, static_cast<uint16_t>(-4), 589, static_cast<uint16_t>(-4), 591,
static_cast<uint16_t>(-4), 595, static_cast<uint16_t>(-840), 596, static_cast<ui
nt16_t>(-824), 33366, static_cast<uint16_t>(-820), 599, static_cast<uint16_t>(-8
20), 601, static_cast<uint16_t>(-808), 603, static_cast<uint16_t>(-812), 608, st
atic_cast<uint16_t>(-820), 611, static_cast<uint16_t>(-828), 616, static_cast<ui
nt16_t>(-836), 617, static_cast<uint16_t>(-844), 619, 42972, 623, static_cast<ui
nt16_t>(-844), 626, static_cast<uint16_t>(-852), 629, static_cast<uint16_t>(-856
), 637, 42908, 640, static_cast<uint16_t>(-872), 643, static_cast<uint16_t>(-872
), 648, static_cast<uint16_t>(-872), 649, static_cast<uint16_t>(-276), 33418, st
atic_cast<uint16_t>(-868), 651, static_cast<uint16_t>(-868), 652, static_cast<ui
nt16_t>(-284), 658, static_cast<uint16_t>(-876), 837, 336, 33659, 520, 893, 520,
912, 13, 940, static_cast<uint16_t>(-152), 33709, static_cast<uint16_t>(-148),
943, static_cast<uint16_t>(-148), 944, 17, 33713, static_cast<uint16_t>(-128), 9
61, static_cast<uint16_t>(-128), 962, static_cast<uint16_t>(-124), 33731, static
_cast<uint16_t>(-128), 971, static_cast<uint16_t>(-128), 972, static_cast<uint16
_t>(-256), 33741, static_cast<uint16_t>(-252), 974, static_cast<uint16_t>(-252),
976, static_cast<uint16_t>(-248), 977, static_cast<uint16_t>(-228), 981, static
_cast<uint16_t>(-188), 982, static_cast<uint16_t>(-216), 985, static_cast<uint16
_t>(-4), 987, static_cast<uint16_t>(-4), 989, static_cast<uint16_t>(-4), 991, st
atic_cast<uint16_t>(-4), 993, static_cast<uint16_t>(-4), 995, static_cast<uint16
_t>(-4), 997, static_cast<uint16_t>(-4), 999, static_cast<uint16_t>(-4), 1001, s
tatic_cast<uint16_t>(-4), 1003, static_cast<uint16_t>(-4), 1005, static_cast<uin
t16_t>(-4), 1007, static_cast<uint16_t>(-4), 1008, static_cast<uint16_t>(-344),
1009, static_cast<uint16_t>(-320), 1010, 28, 1013, static_cast<uint16_t>(-384),
1016, static_cast<uint16_t>(-4), 1019, static_cast<uint16_t>(-4), 33840, static_
cast<uint16_t>(-128), 1103, static_cast<uint16_t>(-128), 33872, static_cast<uint
16_t>(-320), 1119, static_cast<uint16_t>(-320), 1121, static_cast<uint16_t>(-4),
1123, static_cast<uint16_t>(-4), 1125, static_cast<uint16_t>(-4), 1127, static_
cast<uint16_t>(-4), 1129, static_cast<uint16_t>(-4), 1131, static_cast<uint16_t>
(-4), 1133, static_cast<uint16_t>(-4), 1135, static_cast<uint16_t>(-4), 1137, st
atic_cast<uint16_t>(-4), 1139, static_cast<uint16_t>(-4), 1141, static_cast<uint
16_t>(-4), 1143, static_cast<uint16_t>(-4), 1145, static_cast<uint16_t>(-4), 114
7, static_cast<uint16_t>(-4), 1149, static_cast<uint16_t>(-4), 1151, static_cast
<uint16_t>(-4), 1153, static_cast<uint16_t>(-4), 1163, static_cast<uint16_t>(-4)
, 1165, static_cast<uint16_t>(-4), 1167, static_cast<uint16_t>(-4), 1169, static
_cast<uint16_t>(-4), 1171, static_cast<uint16_t>(-4), 1173, static_cast<uint16_t
>(-4), 1175, static_cast<uint16_t>(-4), 1177, static_cast<uint16_t>(-4), 1179, s
tatic_cast<uint16_t>(-4), 1181, static_cast<uint16_t>(-4), 1183, static_cast<uin
t16_t>(-4), 1185, static_cast<uint16_t>(-4), 1187, static_cast<uint16_t>(-4), 11
89, static_cast<uint16_t>(-4), 1191, static_cast<uint16_t>(-4), 1193, static_cas
t<uint16_t>(-4), 1195, static_cast<uint16_t>(-4), 1197, static_cast<uint16_t>(-4
), 1199, static_cast<uint16_t>(-4), 1201, static_cast<uint16_t>(-4), 1203, stati
c_cast<uint16_t>(-4), 1205, static_cast<uint16_t>(-4), 1207, static_cast<uint16_
t>(-4), 1209, static_cast<uint16_t>(-4), 1211, static_cast<uint16_t>(-4), 1213,
static_cast<uint16_t>(-4), 1215, static_cast<uint16_t>(-4), 1218, static_cast<ui
nt16_t>(-4), 1220, static_cast<uint16_t>(-4), 1222, static_cast<uint16_t>(-4), 1
224, static_cast<uint16_t>(-4), 1226, static_cast<uint16_t>(-4), 1228, static_ca
st<uint16_t>(-4), 1230, static_cast<uint16_t>(-4), 1231, static_cast<uint16_t>(-
60), 1233, static_cast<uint16_t>(-4), 1235, static_cast<uint16_t>(-4), 1237, sta
tic_cast<uint16_t>(-4), 1239, static_cast<uint16_t>(-4), 1241, static_cast<uint1
6_t>(-4), 1243, static_cast<uint16_t>(-4), 1245, static_cast<uint16_t>(-4), 1247
, static_cast<uint16_t>(-4), 1249, static_cast<uint16_t>(-4), 1251, static_cast<
uint16_t>(-4), 1253, static_cast<uint16_t>(-4), 1255, static_cast<uint16_t>(-4),
1257, static_cast<uint16_t>(-4), 1259, static_cast<uint16_t>(-4), 1261, static_
cast<uint16_t>(-4), 1263, static_cast<uint16_t>(-4), 1265, static_cast<uint16_t>
(-4), 1267, static_cast<uint16_t>(-4), 1269, static_cast<uint16_t>(-4), 1271, st
atic_cast<uint16_t>(-4), 1273, static_cast<uint16_t>(-4), 1275, static_cast<uint
16_t>(-4), 1277, static_cast<uint16_t>(-4), 1279, static_cast<uint16_t>(-4), 128
1, static_cast<uint16_t>(-4), 1283, static_cast<uint16_t>(-4), 1285, static_cast
<uint16_t>(-4), 1287, static_cast<uint16_t>(-4), 1289, static_cast<uint16_t>(-4)
, 1291, static_cast<uint16_t>(-4), 1293, static_cast<uint16_t>(-4), 1295, static
_cast<uint16_t>(-4), 1297, static_cast<uint16_t>(-4), 1299, static_cast<uint16_t
>(-4), 34145, static_cast<uint16_t>(-192), 1414, static_cast<uint16_t>(-192), 14
15, 21, 7549, 15256, 7681, static_cast<uint16_t>(-4), 7683, static_cast<uint16_t
>(-4), 7685, static_cast<uint16_t>(-4), 7687, static_cast<uint16_t>(-4), 7689, s
tatic_cast<uint16_t>(-4), 7691, static_cast<uint16_t>(-4), 7693, static_cast<uin
t16_t>(-4), 7695, static_cast<uint16_t>(-4), 7697, static_cast<uint16_t>(-4), 76
99, static_cast<uint16_t>(-4), 7701, static_cast<uint16_t>(-4), 7703, static_cas
t<uint16_t>(-4), 7705, static_cast<uint16_t>(-4), 7707, static_cast<uint16_t>(-4
), 7709, static_cast<uint16_t>(-4), 7711, static_cast<uint16_t>(-4), 7713, stati
c_cast<uint16_t>(-4), 7715, static_cast<uint16_t>(-4), 7717, static_cast<uint16_
t>(-4), 7719, static_cast<uint16_t>(-4), 7721, static_cast<uint16_t>(-4), 7723,
static_cast<uint16_t>(-4), 7725, static_cast<uint16_t>(-4), 7727, static_cast<ui
nt16_t>(-4), 7729, static_cast<uint16_t>(-4), 7731, static_cast<uint16_t>(-4), 7
733, static_cast<uint16_t>(-4), 7735, static_cast<uint16_t>(-4), 7737, static_ca
st<uint16_t>(-4), 7739, static_cast<uint16_t>(-4), 7741, static_cast<uint16_t>(-
4), 7743, static_cast<uint16_t>(-4), 7745, static_cast<uint16_t>(-4), 7747, stat
ic_cast<uint16_t>(-4), 7749, static_cast<uint16_t>(-4), 7751, static_cast<uint16
_t>(-4), 7753, static_cast<uint16_t>(-4), 7755, static_cast<uint16_t>(-4), 7757,
static_cast<uint16_t>(-4), 7759, static_cast<uint16_t>(-4), 7761, static_cast<u
int16_t>(-4), 7763, static_cast<uint16_t>(-4), 7765, static_cast<uint16_t>(-4),
7767, static_cast<uint16_t>(-4), 7769, static_cast<uint16_t>(-4), 7771, static_c
ast<uint16_t>(-4), 7773, static_cast<uint16_t>(-4), 7775, static_cast<uint16_t>(
-4), 7777, static_cast<uint16_t>(-4), 7779, static_cast<uint16_t>(-4), 7781, sta
tic_cast<uint16_t>(-4), 7783, static_cast<uint16_t>(-4), 7785, static_cast<uint1
6_t>(-4), 7787, static_cast<uint16_t>(-4), 7789, static_cast<uint16_t>(-4), 7791
, static_cast<uint16_t>(-4), 7793, static_cast<uint16_t>(-4), 7795, static_cast<
uint16_t>(-4), 7797, static_cast<uint16_t>(-4), 7799, static_cast<uint16_t>(-4),
7801, static_cast<uint16_t>(-4), 7803, static_cast<uint16_t>(-4), 7805, static_
cast<uint16_t>(-4), 7807, static_cast<uint16_t>(-4), 7809, static_cast<uint16_t>
(-4), 7811, static_cast<uint16_t>(-4), 7813, static_cast<uint16_t>(-4), 7815, st
atic_cast<uint16_t>(-4), 7817, static_cast<uint16_t>(-4), 7819, static_cast<uint
16_t>(-4), 7821, static_cast<uint16_t>(-4), 7823, static_cast<uint16_t>(-4), 782
5, static_cast<uint16_t>(-4), 7827, static_cast<uint16_t>(-4), 7829, static_cast
<uint16_t>(-4), 7830, 25, 7831, 29, 7832, 33, 7833, 37, 7834, 41, 7835, static_c
ast<uint16_t>(-236), 7841, static_cast<uint16_t>(-4), 7843, static_cast<uint16_t
>(-4), 7845, static_cast<uint16_t>(-4), 7847, static_cast<uint16_t>(-4), 7849, s
tatic_cast<uint16_t>(-4), 7851, static_cast<uint16_t>(-4), 7853, static_cast<uin
t16_t>(-4), 7855, static_cast<uint16_t>(-4), 7857, static_cast<uint16_t>(-4), 78
59, static_cast<uint16_t>(-4), 7861, static_cast<uint16_t>(-4), 7863, static_cas
t<uint16_t>(-4), 7865, static_cast<uint16_t>(-4), 7867, static_cast<uint16_t>(-4
), 7869, static_cast<uint16_t>(-4), 7871, static_cast<uint16_t>(-4), 7873, stati
c_cast<uint16_t>(-4), 7875, static_cast<uint16_t>(-4), 7877, static_cast<uint16_
t>(-4), 7879, static_cast<uint16_t>(-4), 7881, static_cast<uint16_t>(-4), 7883,
static_cast<uint16_t>(-4), 7885, static_cast<uint16_t>(-4), 7887, static_cast<ui
nt16_t>(-4), 7889, static_cast<uint16_t>(-4), 7891, static_cast<uint16_t>(-4), 7
893, static_cast<uint16_t>(-4), 7895, static_cast<uint16_t>(-4), 7897, static_ca
st<uint16_t>(-4), 7899, static_cast<uint16_t>(-4), 7901, static_cast<uint16_t>(-
4), 7903, static_cast<uint16_t>(-4), 7905, static_cast<uint16_t>(-4), 7907, stat
ic_cast<uint16_t>(-4), 7909, static_cast<uint16_t>(-4), 7911, static_cast<uint16
_t>(-4), 7913, static_cast<uint16_t>(-4), 7915, static_cast<uint16_t>(-4), 7917,
static_cast<uint16_t>(-4), 7919, static_cast<uint16_t>(-4), 7921, static_cast<u
int16_t>(-4), 7923, static_cast<uint16_t>(-4), 7925, static_cast<uint16_t>(-4),
7927, static_cast<uint16_t>(-4), 7929, static_cast<uint16_t>(-4), 40704, 32, 794
3, 32, 40720, 32, 7957, 32, 40736, 32, 7975, 32, 40752, 32, 7991, 32, 40768, 32,
8005, 32, 8016, 45, 8017, 32, 8018, 49, 8019, 32, 8020, 53, 8021, 32, 8022, 57,
8023, 32, 40800, 32, 8039, 32, 40816, 296, 8049, 296, 40818, 344, 8053, 344, 40
822, 400, 8055, 400, 40824, 512, 8057, 512, 40826, 448, 8059, 448, 40828, 504, 8
061, 504, 8064, 61, 8065, 65, 8066, 69, 8067, 73, 8068, 77, 8069, 81, 8070, 85,
8071, 89, 8072, 93, 8073, 97, 8074, 101, 8075, 105, 8076, 109, 8077, 113, 8078,
117, 8079, 121, 8080, 125, 8081, 129, 8082, 133, 8083, 137, 8084, 141, 8085, 145
, 8086, 149, 8087, 153, 8088, 157, 8089, 161, 8090, 165, 8091, 169, 8092, 173, 8
093, 177, 8094, 181, 8095, 185, 8096, 189, 8097, 193, 8098, 197, 8099, 201, 8100
, 205, 8101, 209, 8102, 213, 8103, 217, 8104, 221, 8105, 225, 8106, 229, 8107, 2
33, 8108, 237, 8109, 241, 8110, 245, 8111, 249, 40880, 32, 8113, 32, 8114, 253,
8115, 257, 8116, 261, 8118, 265, 8119, 269, 8124, 273, 8126, static_cast<uint16_
t>(-28820), 8130, 277, 8131, 281, 8132, 285, 8134, 289, 8135, 293, 8140, 297, 40
912, 32, 8145, 32, 8146, 301, 8147, 305, 8150, 309, 8151, 313, 40928, 32, 8161,
32, 8162, 317, 8163, 321, 8164, 325, 8165, 28, 8166, 329, 8167, 333, 8178, 337,
8179, 341, 8180, 345, 8182, 349, 8183, 353, 8188, 357, 8526, static_cast<uint16_
t>(-112), 41328, static_cast<uint16_t>(-64), 8575, static_cast<uint16_t>(-64), 8
580, static_cast<uint16_t>(-4), 42192, static_cast<uint16_t>(-104), 9449, static
_cast<uint16_t>(-104), 44080, static_cast<uint16_t>(-192), 11358, static_cast<ui
nt16_t>(-192), 11361, static_cast<uint16_t>(-4), 11365, static_cast<uint16_t>(-4
3180), 11366, static_cast<uint16_t>(-43168), 11368, static_cast<uint16_t>(-4), 1
1370, static_cast<uint16_t>(-4), 11372, static_cast<uint16_t>(-4), 11382, static
_cast<uint16_t>(-4), 11393, static_cast<uint16_t>(-4), 11395, static_cast<uint16
_t>(-4), 11397, static_cast<uint16_t>(-4), 11399, static_cast<uint16_t>(-4), 114
01, static_cast<uint16_t>(-4), 11403, static_cast<uint16_t>(-4), 11405, static_c
ast<uint16_t>(-4), 11407, static_cast<uint16_t>(-4), 11409, static_cast<uint16_t
>(-4), 11411, static_cast<uint16_t>(-4), 11413, static_cast<uint16_t>(-4), 11415
, static_cast<uint16_t>(-4), 11417, static_cast<uint16_t>(-4), 11419, static_cas
t<uint16_t>(-4), 11421, static_cast<uint16_t>(-4), 11423, static_cast<uint16_t>(
-4), 11425, static_cast<uint16_t>(-4), 11427, static_cast<uint16_t>(-4), 11429,
static_cast<uint16_t>(-4), 11431, static_cast<uint16_t>(-4), 11433, static_cast<
uint16_t>(-4), 11435, static_cast<uint16_t>(-4), 11437, static_cast<uint16_t>(-4
), 11439, static_cast<uint16_t>(-4), 11441, static_cast<uint16_t>(-4), 11443, st
atic_cast<uint16_t>(-4), 11445, static_cast<uint16_t>(-4), 11447, static_cast<ui
nt16_t>(-4), 11449, static_cast<uint16_t>(-4), 11451, static_cast<uint16_t>(-4),
11453, static_cast<uint16_t>(-4), 11455, static_cast<uint16_t>(-4), 11457, stat
ic_cast<uint16_t>(-4), 11459, static_cast<uint16_t>(-4), 11461, static_cast<uint
16_t>(-4), 11463, static_cast<uint16_t>(-4), 11465, static_cast<uint16_t>(-4), 1
1467, static_cast<uint16_t>(-4), 11469, static_cast<uint16_t>(-4), 11471, static
_cast<uint16_t>(-4), 11473, static_cast<uint16_t>(-4), 11475, static_cast<uint16
_t>(-4), 11477, static_cast<uint16_t>(-4), 11479, static_cast<uint16_t>(-4), 114
81, static_cast<uint16_t>(-4), 11483, static_cast<uint16_t>(-4), 11485, static_c
ast<uint16_t>(-4), 11487, static_cast<uint16_t>(-4), 11489, static_cast<uint16_t
>(-4), 11491, static_cast<uint16_t>(-4), 44288, static_cast<uint16_t>(-29056), 1
1557, static_cast<uint16_t>(-29056) }; // NOLINT | 599 static const int32_t kToUppercaseTable0[1242] = { 1073741921, -128, 122, -128, 1
81, 2972, 223, 1, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128, 255,
484, 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4, 271, -4, 27
3, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4, 287, -4, 289, -4, 2
91, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4, 303, -4, 305, -928, 307, -4
, 309, -4, 311, -4, 314, -4, 316, -4, 318, -4, 320, -4, 322, -4, 324, -4, 326, -
4, 328, -4, 329, 5, 331, -4, 333, -4, 335, -4, 337, -4, 339, -4, 341, -4, 343, -
4, 345, -4, 347, -4, 349, -4, 351, -4, 353, -4, 355, -4, 357, -4, 359, -4, 361,
-4, 363, -4, 365, -4, 367, -4, 369, -4, 371, -4, 373, -4, 375, -4, 378, -4, 380,
-4, 382, -4, 383, -1200, 384, 780, 387, -4, 389, -4, 392, -4, 396, -4, 402, -4,
405, 388, 409, -4, 410, 652, 414, 520, 417, -4, 419, -4, 421, -4, 424, -4, 429,
-4, 432, -4, 436, -4, 438, -4, 441, -4, 445, -4, 447, 224, 453, -4, 454, -8, 45
6, -4, 457, -8, 459, -4, 460, -8, 462, -4, 464, -4, 466, -4, 468, -4, 470, -4, 4
72, -4, 474, -4, 476, -4, 477, -316, 479, -4, 481, -4, 483, -4, 485, -4, 487, -4
, 489, -4, 491, -4, 493, -4, 495, -4, 496, 9, 498, -4, 499, -8, 501, -4, 505, -4
, 507, -4, 509, -4, 511, -4, 513, -4, 515, -4, 517, -4, 519, -4, 521, -4, 523, -
4, 525, -4, 527, -4, 529, -4, 531, -4, 533, -4, 535, -4, 537, -4, 539, -4, 541,
-4, 543, -4, 547, -4, 549, -4, 551, -4, 553, -4, 555, -4, 557, -4, 559, -4, 561,
-4, 563, -4, 572, -4, 578, -4, 583, -4, 585, -4, 587, -4, 589, -4, 591, -4, 595
, -840, 596, -824, 1073742422, -820, 599, -820, 601, -808, 603, -812, 608, -820,
611, -828, 616, -836, 617, -844, 619, 42972, 623, -844, 626, -852, 629, -856, 6
37, 42908, 640, -872, 643, -872, 648, -872, 649, -276, 1073742474, -868, 651, -8
68, 652, -284, 658, -876, 837, 336, 1073742715, 520, 893, 520, 912, 13, 940, -15
2, 1073742765, -148, 943, -148, 944, 17, 1073742769, -128, 961, -128, 962, -124,
1073742787, -128, 971, -128, 972, -256, 1073742797, -252, 974, -252, 976, -248,
977, -228, 981, -188, 982, -216, 985, -4, 987, -4, 989, -4, 991, -4, 993, -4, 9
95, -4, 997, -4, 999, -4, 1001, -4, 1003, -4, 1005, -4, 1007, -4, 1008, -344, 10
09, -320, 1010, 28, 1013, -384, 1016, -4, 1019, -4, 1073742896, -128, 1103, -128
, 1073742928, -320, 1119, -320, 1121, -4, 1123, -4, 1125, -4, 1127, -4, 1129, -4
, 1131, -4, 1133, -4, 1135, -4, 1137, -4, 1139, -4, 1141, -4, 1143, -4, 1145, -4
, 1147, -4, 1149, -4, 1151, -4, 1153, -4, 1163, -4, 1165, -4, 1167, -4, 1169, -4
, 1171, -4, 1173, -4, 1175, -4, 1177, -4, 1179, -4, 1181, -4, 1183, -4, 1185, -4
, 1187, -4, 1189, -4, 1191, -4, 1193, -4, 1195, -4, 1197, -4, 1199, -4, 1201, -4
, 1203, -4, 1205, -4, 1207, -4, 1209, -4, 1211, -4, 1213, -4, 1215, -4, 1218, -4
, 1220, -4, 1222, -4, 1224, -4, 1226, -4, 1228, -4, 1230, -4, 1231, -60, 1233, -
4, 1235, -4, 1237, -4, 1239, -4, 1241, -4, 1243, -4, 1245, -4, 1247, -4, 1249, -
4, 1251, -4, 1253, -4, 1255, -4, 1257, -4, 1259, -4, 1261, -4, 1263, -4, 1265, -
4, 1267, -4, 1269, -4, 1271, -4, 1273, -4, 1275, -4, 1277, -4, 1279, -4, 1281, -
4, 1283, -4, 1285, -4, 1287, -4, 1289, -4, 1291, -4, 1293, -4, 1295, -4, 1297, -
4, 1299, -4, 1073743201, -192, 1414, -192, 1415, 21, 7549, 15256, 7681, -4, 7683
, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, 7693, -4, 7695, -4, 7697, -4, 7699
, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, 7709, -4, 7711, -4, 7713, -4, 7715
, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, 7725, -4, 7727, -4, 7729, -4, 7731
, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, 7741, -4, 7743, -4, 7745, -4, 7747
, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, 7757, -4, 7759, -4, 7761, -4, 7763
, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, 7773, -4, 7775, -4, 7777, -4, 7779
, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, 7789, -4, 7791, -4, 7793, -4, 7795
, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, 7805, -4, 7807, -4, 7809, -4, 7811
, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, 7821, -4, 7823, -4, 7825, -4, 7827
, -4, 7829, -4, 7830, 25, 7831, 29, 7832, 33, 7833, 37, 7834, 41, 7835, -236, 78
41, -4, 7843, -4, 7845, -4, 7847, -4, 7849, -4, 7851, -4, 7853, -4, 7855, -4, 78
57, -4, 7859, -4, 7861, -4, 7863, -4, 7865, -4, 7867, -4, 7869, -4, 7871, -4, 78
73, -4, 7875, -4, 7877, -4, 7879, -4, 7881, -4, 7883, -4, 7885, -4, 7887, -4, 78
89, -4, 7891, -4, 7893, -4, 7895, -4, 7897, -4, 7899, -4, 7901, -4, 7903, -4, 79
05, -4, 7907, -4, 7909, -4, 7911, -4, 7913, -4, 7915, -4, 7917, -4, 7919, -4, 79
21, -4, 7923, -4, 7925, -4, 7927, -4, 7929, -4, 1073749760, 32, 7943, 32, 107374
9776, 32, 7957, 32, 1073749792, 32, 7975, 32, 1073749808, 32, 7991, 32, 10737498
24, 32, 8005, 32, 8016, 45, 8017, 32, 8018, 49, 8019, 32, 8020, 53, 8021, 32, 80
22, 57, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, 8049, 296, 10737498
74, 344, 8053, 344, 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1073
749882, 448, 8059, 448, 1073749884, 504, 8061, 504, 8064, 61, 8065, 65, 8066, 69
, 8067, 73, 8068, 77, 8069, 81, 8070, 85, 8071, 89, 8072, 93, 8073, 97, 8074, 10
1, 8075, 105, 8076, 109, 8077, 113, 8078, 117, 8079, 121, 8080, 125, 8081, 129,
8082, 133, 8083, 137, 8084, 141, 8085, 145, 8086, 149, 8087, 153, 8088, 157, 808
9, 161, 8090, 165, 8091, 169, 8092, 173, 8093, 177, 8094, 181, 8095, 185, 8096,
189, 8097, 193, 8098, 197, 8099, 201, 8100, 205, 8101, 209, 8102, 213, 8103, 217
, 8104, 221, 8105, 225, 8106, 229, 8107, 233, 8108, 237, 8109, 241, 8110, 245, 8
111, 249, 1073749936, 32, 8113, 32, 8114, 253, 8115, 257, 8116, 261, 8118, 265,
8119, 269, 8124, 273, 8126, -28820, 8130, 277, 8131, 281, 8132, 285, 8134, 289,
8135, 293, 8140, 297, 1073749968, 32, 8145, 32, 8146, 301, 8147, 305, 8150, 309,
8151, 313, 1073749984, 32, 8161, 32, 8162, 317, 8163, 321, 8164, 325, 8165, 28,
8166, 329, 8167, 333, 8178, 337, 8179, 341, 8180, 345, 8182, 349, 8183, 353, 81
88, 357, 8526, -112, 1073750384, -64, 8575, -64, 8580, -4, 1073751248, -104, 944
9, -104, 1073753136, -192, 11358, -192, 11361, -4, 11365, -43180, 11366, -43168,
11368, -4, 11370, -4, 11372, -4, 11382, -4, 11393, -4, 11395, -4, 11397, -4, 11
399, -4, 11401, -4, 11403, -4, 11405, -4, 11407, -4, 11409, -4, 11411, -4, 11413
, -4, 11415, -4, 11417, -4, 11419, -4, 11421, -4, 11423, -4, 11425, -4, 11427, -
4, 11429, -4, 11431, -4, 11433, -4, 11435, -4, 11437, -4, 11439, -4, 11441, -4,
11443, -4, 11445, -4, 11447, -4, 11449, -4, 11451, -4, 11453, -4, 11455, -4, 114
57, -4, 11459, -4, 11461, -4, 11463, -4, 11465, -4, 11467, -4, 11469, -4, 11471,
-4, 11473, -4, 11475, -4, 11477, -4, 11479, -4, 11481, -4, 11483, -4, 11485, -4
, 11487, -4, 11489, -4, 11491, -4, 1073753344, -29056, 11557, -29056 }; // NOLIN
T |
772 static const MultiCharacterSpecialCase kToUppercaseMultiStrings1[] = { {2, {70,
70}}, {2, {70, 73}}, {2, {70, 76}}, {3, {70, 70, 73}}, {3, {70, 70, 76}}, {2, {8
3, 84}}, {2, {83, 84}}, {2, {1348, 1350}}, {2, {1348, 1333}}, {2, {1348, 1339}},
{2, {1358, 1350}}, {2, {1348, 1341}}, {0, {0}} }; // NOLINT | 600 static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings1[] = { {2, {7
0, 70}}, {2, {70, 73}}, {2, {70, 76}}, {3, {70, 70, 73}}, {3, {70, 70, 76}}, {2,
{83, 84}}, {2, {83, 84}}, {2, {1348, 1350}}, {2, {1348, 1333}}, {2, {1348, 1339
}}, {2, {1358, 1350}}, {2, {1348, 1341}}, {0, {0}} }; // NOLINT |
773 static const uint16_t kToUppercaseTable1Size = 14; | 601 static const uint16_t kToUppercaseTable1Size = 14; |
774 static const uint16_t kToUppercaseTable1[28] = { 31488, 1, 31489, 5, 31490, 9, 3
1491, 13, 31492, 17, 31493, 21, 31494, 25, 31507, 29, 31508, 33, 31509, 37, 3151
0, 41, 31511, 45, 65345, static_cast<uint16_t>(-128), 32602, static_cast<uint16_
t>(-128) }; // NOLINT | 602 static const int32_t kToUppercaseTable1[28] = { 31488, 1, 31489, 5, 31490, 9, 31
491, 13, 31492, 17, 31493, 21, 31494, 25, 31507, 29, 31508, 33, 31509, 37, 31510
, 41, 31511, 45, 1073774401, -128, 32602, -128 }; // NOLINT |
775 static const MultiCharacterSpecialCase kToUppercaseMultiStrings2[] = { {0, {0}}
}; // NOLINT | 603 static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings2[] = { {0, {0
}} }; // NOLINT |
776 static const uint16_t kToUppercaseTable2Size = 2; | 604 static const uint16_t kToUppercaseTable2Size = 2; |
777 static const uint16_t kToUppercaseTable2[4] = { 33832, static_cast<uint16_t>(-16
0), 1103, static_cast<uint16_t>(-160) }; // NOLINT | 605 static const int32_t kToUppercaseTable2[4] = { 1073742888, -160, 1103, -160 }; /
/ NOLINT |
778 int ToUppercase::Convert(uchar c, | 606 int ToUppercase::Convert(uchar c, |
779 uchar n, | 607 uchar n, |
780 uchar* result, | 608 uchar* result, |
781 bool* allow_caching_ptr) { | 609 bool* allow_caching_ptr) { |
782 int chunk_index = c >> 15; | 610 int chunk_index = c >> 15; |
783 switch (chunk_index) { | 611 switch (chunk_index) { |
784 case 0: return LookupMapping(kToUppercaseTable0, | 612 case 0: return LookupMapping(kToUppercaseTable0, |
785 kToUppercaseTable0Size, | 613 kToUppercaseTable0Size, |
786 kToUppercaseMultiStrings0, | 614 kToUppercaseMultiStrings0, |
787 c, | 615 c, |
(...skipping 11 matching lines...) Expand all Loading... |
799 kToUppercaseTable2Size, | 627 kToUppercaseTable2Size, |
800 kToUppercaseMultiStrings2, | 628 kToUppercaseMultiStrings2, |
801 c, | 629 c, |
802 n, | 630 n, |
803 result, | 631 result, |
804 allow_caching_ptr); | 632 allow_caching_ptr); |
805 default: return 0; | 633 default: return 0; |
806 } | 634 } |
807 } | 635 } |
808 | 636 |
| 637 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings0[] =
{ {0, {0}} }; // NOLINT |
| 638 static const uint16_t kEcma262CanonicalizeTable0Size = 529; |
| 639 static const int32_t kEcma262CanonicalizeTable0[1058] = { 1073741921, -128, 122,
-128, 181, 2972, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128, 255,
484, 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4, 271, -4, 27
3, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4, 287, -4, 289, -4, 2
91, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4, 303, -4, 307, -4, 309, -4,
311, -4, 314, -4, 316, -4, 318, -4, 320, -4, 322, -4, 324, -4, 326, -4, 328, -4,
331, -4, 333, -4, 335, -4, 337, -4, 339, -4, 341, -4, 343, -4, 345, -4, 347, -4
, 349, -4, 351, -4, 353, -4, 355, -4, 357, -4, 359, -4, 361, -4, 363, -4, 365, -
4, 367, -4, 369, -4, 371, -4, 373, -4, 375, -4, 378, -4, 380, -4, 382, -4, 384,
780, 387, -4, 389, -4, 392, -4, 396, -4, 402, -4, 405, 388, 409, -4, 410, 652, 4
14, 520, 417, -4, 419, -4, 421, -4, 424, -4, 429, -4, 432, -4, 436, -4, 438, -4,
441, -4, 445, -4, 447, 224, 453, -4, 454, -8, 456, -4, 457, -8, 459, -4, 460, -
8, 462, -4, 464, -4, 466, -4, 468, -4, 470, -4, 472, -4, 474, -4, 476, -4, 477,
-316, 479, -4, 481, -4, 483, -4, 485, -4, 487, -4, 489, -4, 491, -4, 493, -4, 49
5, -4, 498, -4, 499, -8, 501, -4, 505, -4, 507, -4, 509, -4, 511, -4, 513, -4, 5
15, -4, 517, -4, 519, -4, 521, -4, 523, -4, 525, -4, 527, -4, 529, -4, 531, -4,
533, -4, 535, -4, 537, -4, 539, -4, 541, -4, 543, -4, 547, -4, 549, -4, 551, -4,
553, -4, 555, -4, 557, -4, 559, -4, 561, -4, 563, -4, 572, -4, 578, -4, 583, -4
, 585, -4, 587, -4, 589, -4, 591, -4, 595, -840, 596, -824, 1073742422, -820, 59
9, -820, 601, -808, 603, -812, 608, -820, 611, -828, 616, -836, 617, -844, 619,
42972, 623, -844, 626, -852, 629, -856, 637, 42908, 640, -872, 643, -872, 648, -
872, 649, -276, 1073742474, -868, 651, -868, 652, -284, 658, -876, 837, 336, 107
3742715, 520, 893, 520, 940, -152, 1073742765, -148, 943, -148, 1073742769, -128
, 961, -128, 962, -124, 1073742787, -128, 971, -128, 972, -256, 1073742797, -252
, 974, -252, 976, -248, 977, -228, 981, -188, 982, -216, 985, -4, 987, -4, 989,
-4, 991, -4, 993, -4, 995, -4, 997, -4, 999, -4, 1001, -4, 1003, -4, 1005, -4, 1
007, -4, 1008, -344, 1009, -320, 1010, 28, 1013, -384, 1016, -4, 1019, -4, 10737
42896, -128, 1103, -128, 1073742928, -320, 1119, -320, 1121, -4, 1123, -4, 1125,
-4, 1127, -4, 1129, -4, 1131, -4, 1133, -4, 1135, -4, 1137, -4, 1139, -4, 1141,
-4, 1143, -4, 1145, -4, 1147, -4, 1149, -4, 1151, -4, 1153, -4, 1163, -4, 1165,
-4, 1167, -4, 1169, -4, 1171, -4, 1173, -4, 1175, -4, 1177, -4, 1179, -4, 1181,
-4, 1183, -4, 1185, -4, 1187, -4, 1189, -4, 1191, -4, 1193, -4, 1195, -4, 1197,
-4, 1199, -4, 1201, -4, 1203, -4, 1205, -4, 1207, -4, 1209, -4, 1211, -4, 1213,
-4, 1215, -4, 1218, -4, 1220, -4, 1222, -4, 1224, -4, 1226, -4, 1228, -4, 1230,
-4, 1231, -60, 1233, -4, 1235, -4, 1237, -4, 1239, -4, 1241, -4, 1243, -4, 1245
, -4, 1247, -4, 1249, -4, 1251, -4, 1253, -4, 1255, -4, 1257, -4, 1259, -4, 1261
, -4, 1263, -4, 1265, -4, 1267, -4, 1269, -4, 1271, -4, 1273, -4, 1275, -4, 1277
, -4, 1279, -4, 1281, -4, 1283, -4, 1285, -4, 1287, -4, 1289, -4, 1291, -4, 1293
, -4, 1295, -4, 1297, -4, 1299, -4, 1073743201, -192, 1414, -192, 7549, 15256, 7
681, -4, 7683, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, 7693, -4, 7695, -4, 7
697, -4, 7699, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, 7709, -4, 7711, -4, 7
713, -4, 7715, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, 7725, -4, 7727, -4, 7
729, -4, 7731, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, 7741, -4, 7743, -4, 7
745, -4, 7747, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, 7757, -4, 7759, -4, 7
761, -4, 7763, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, 7773, -4, 7775, -4, 7
777, -4, 7779, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, 7789, -4, 7791, -4, 7
793, -4, 7795, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, 7805, -4, 7807, -4, 7
809, -4, 7811, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, 7821, -4, 7823, -4, 7
825, -4, 7827, -4, 7829, -4, 7835, -236, 7841, -4, 7843, -4, 7845, -4, 7847, -4,
7849, -4, 7851, -4, 7853, -4, 7855, -4, 7857, -4, 7859, -4, 7861, -4, 7863, -4,
7865, -4, 7867, -4, 7869, -4, 7871, -4, 7873, -4, 7875, -4, 7877, -4, 7879, -4,
7881, -4, 7883, -4, 7885, -4, 7887, -4, 7889, -4, 7891, -4, 7893, -4, 7895, -4,
7897, -4, 7899, -4, 7901, -4, 7903, -4, 7905, -4, 7907, -4, 7909, -4, 7911, -4,
7913, -4, 7915, -4, 7917, -4, 7919, -4, 7921, -4, 7923, -4, 7925, -4, 7927, -4,
7929, -4, 1073749760, 32, 7943, 32, 1073749776, 32, 7957, 32, 1073749792, 32, 7
975, 32, 1073749808, 32, 7991, 32, 1073749824, 32, 8005, 32, 8017, 32, 8019, 32,
8021, 32, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, 8049, 296, 10737
49874, 344, 8053, 344, 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1
073749882, 448, 8059, 448, 1073749884, 504, 8061, 504, 1073749936, 32, 8113, 32,
8126, -28820, 1073749968, 32, 8145, 32, 1073749984, 32, 8161, 32, 8165, 28, 852
6, -112, 1073750384, -64, 8575, -64, 8580, -4, 1073751248, -104, 9449, -104, 107
3753136, -192, 11358, -192, 11361, -4, 11365, -43180, 11366, -43168, 11368, -4,
11370, -4, 11372, -4, 11382, -4, 11393, -4, 11395, -4, 11397, -4, 11399, -4, 114
01, -4, 11403, -4, 11405, -4, 11407, -4, 11409, -4, 11411, -4, 11413, -4, 11415,
-4, 11417, -4, 11419, -4, 11421, -4, 11423, -4, 11425, -4, 11427, -4, 11429, -4
, 11431, -4, 11433, -4, 11435, -4, 11437, -4, 11439, -4, 11441, -4, 11443, -4, 1
1445, -4, 11447, -4, 11449, -4, 11451, -4, 11453, -4, 11455, -4, 11457, -4, 1145
9, -4, 11461, -4, 11463, -4, 11465, -4, 11467, -4, 11469, -4, 11471, -4, 11473,
-4, 11475, -4, 11477, -4, 11479, -4, 11481, -4, 11483, -4, 11485, -4, 11487, -4,
11489, -4, 11491, -4, 1073753344, -29056, 11557, -29056 }; // NOLINT |
| 640 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings1[] =
{ {0, {0}} }; // NOLINT |
| 641 static const uint16_t kEcma262CanonicalizeTable1Size = 2; |
| 642 static const int32_t kEcma262CanonicalizeTable1[4] = { 1073774401, -128, 32602,
-128 }; // NOLINT |
| 643 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings2[] =
{ {0, {0}} }; // NOLINT |
| 644 static const uint16_t kEcma262CanonicalizeTable2Size = 2; |
| 645 static const int32_t kEcma262CanonicalizeTable2[4] = { 1073742888, -160, 1103, -
160 }; // NOLINT |
| 646 int Ecma262Canonicalize::Convert(uchar c, |
| 647 uchar n, |
| 648 uchar* result, |
| 649 bool* allow_caching_ptr) { |
| 650 int chunk_index = c >> 15; |
| 651 switch (chunk_index) { |
| 652 case 0: return LookupMapping(kEcma262CanonicalizeTable0, |
| 653 kEcma262CanonicalizeTable0Size, |
| 654 kEcma262CanonicalizeMultiStrings0, |
| 655 c, |
| 656 n, |
| 657 result, |
| 658 allow_caching_ptr); |
| 659 case 1: return LookupMapping(kEcma262CanonicalizeTable1, |
| 660 kEcma262CanonicalizeTable1Size, |
| 661 kEcma262CanonicalizeMultiStrings1, |
| 662 c, |
| 663 n, |
| 664 result, |
| 665 allow_caching_ptr); |
| 666 case 2: return LookupMapping(kEcma262CanonicalizeTable2, |
| 667 kEcma262CanonicalizeTable2Size, |
| 668 kEcma262CanonicalizeMultiStrings2, |
| 669 c, |
| 670 n, |
| 671 result, |
| 672 allow_caching_ptr); |
| 673 default: return 0; |
| 674 } |
| 675 } |
| 676 |
| 677 static const MultiCharacterSpecialCase<4> kEcma262UnCanonicalizeMultiStrings0[]
= { {2, {65, 97}}, {2, {66, 98}}, {2, {67, 99}}, {2, {68, 100}}, {2, {69, 101}},
{2, {70, 102}}, {2, {71, 103}}, {2, {72, 104}}, {2, {73, 105}}, {2, {74, 106}},
{2, {75, 107}}, {2, {76, 108}}, {2, {77, 109}}, {2, {78, 110}}, {2, {79, 111}},
{2, {80, 112}}, {2, {81, 113}}, {2, {82, 114}}, {2, {83, 115}}, {2, {84, 116}},
{2, {85, 117}}, {2, {86, 118}}, {2, {87, 119}}, {2, {88, 120}}, {2, {89, 121}},
{2, {90, 122}}, {2, {65, 97}}, {2, {66, 98}}, {2, {67, 99}}, {2, {68, 100}}, {2
, {69, 101}}, {2, {70, 102}}, {2, {71, 103}}, {2, {72, 104}}, {2, {73, 105}}, {2
, {74, 106}}, {2, {75, 107}}, {2, {76, 108}}, {2, {77, 109}}, {2, {78, 110}}, {2
, {79, 111}}, {2, {80, 112}}, {2, {81, 113}}, {2, {82, 114}}, {2, {83, 115}}, {2
, {84, 116}}, {2, {85, 117}}, {2, {86, 118}}, {2, {87, 119}}, {2, {88, 120}}, {2
, {89, 121}}, {2, {90, 122}}, {3, {181, 924, 956}}, {2, {192, 224}}, {2, {193, 2
25}}, {2, {194, 226}}, {2, {195, 227}}, {2, {196, 228}}, {2, {197, 229}}, {2, {1
98, 230}}, {2, {199, 231}}, {2, {200, 232}}, {2, {201, 233}}, {2, {202, 234}}, {
2, {203, 235}}, {2, {204, 236}}, {2, {205, 237}}, {2, {206, 238}}, {2, {207, 239
}}, {2, {208, 240}}, {2, {209, 241}}, {2, {210, 242}}, {2, {211, 243}}, {2, {212
, 244}}, {2, {213, 245}}, {2, {214, 246}}, {2, {216, 248}}, {2, {217, 249}}, {2,
{218, 250}}, {2, {219, 251}}, {2, {220, 252}}, {2, {221, 253}}, {2, {222, 254}}
, {2, {192, 224}}, {2, {193, 225}}, {2, {194, 226}}, {2, {195, 227}}, {2, {196,
228}}, {2, {197, 229}}, {2, {198, 230}}, {2, {199, 231}}, {2, {200, 232}}, {2, {
201, 233}}, {2, {202, 234}}, {2, {203, 235}}, {2, {204, 236}}, {2, {205, 237}},
{2, {206, 238}}, {2, {207, 239}}, {2, {208, 240}}, {2, {209, 241}}, {2, {210, 24
2}}, {2, {211, 243}}, {2, {212, 244}}, {2, {213, 245}}, {2, {214, 246}}, {2, {21
6, 248}}, {2, {217, 249}}, {2, {218, 250}}, {2, {219, 251}}, {2, {220, 252}}, {2
, {221, 253}}, {2, {222, 254}}, {2, {255, 376}}, {2, {256, 257}}, {2, {256, 257}
}, {2, {258, 259}}, {2, {258, 259}}, {2, {260, 261}}, {2, {260, 261}}, {2, {262,
263}}, {2, {262, 263}}, {2, {264, 265}}, {2, {264, 265}}, {2, {266, 267}}, {2,
{266, 267}}, {2, {268, 269}}, {2, {268, 269}}, {2, {270, 271}}, {2, {270, 271}},
{2, {272, 273}}, {2, {272, 273}}, {2, {274, 275}}, {2, {274, 275}}, {2, {276, 2
77}}, {2, {276, 277}}, {2, {278, 279}}, {2, {278, 279}}, {2, {280, 281}}, {2, {2
80, 281}}, {2, {282, 283}}, {2, {282, 283}}, {2, {284, 285}}, {2, {284, 285}}, {
2, {286, 287}}, {2, {286, 287}}, {2, {288, 289}}, {2, {288, 289}}, {2, {290, 291
}}, {2, {290, 291}}, {2, {292, 293}}, {2, {292, 293}}, {2, {294, 295}}, {2, {294
, 295}}, {2, {296, 297}}, {2, {296, 297}}, {2, {298, 299}}, {2, {298, 299}}, {2,
{300, 301}}, {2, {300, 301}}, {2, {302, 303}}, {2, {302, 303}}, {2, {306, 307}}
, {2, {306, 307}}, {2, {308, 309}}, {2, {308, 309}}, {2, {310, 311}}, {2, {310,
311}}, {2, {313, 314}}, {2, {313, 314}}, {2, {315, 316}}, {2, {315, 316}}, {2, {
317, 318}}, {2, {317, 318}}, {2, {319, 320}}, {2, {319, 320}}, {2, {321, 322}},
{2, {321, 322}}, {2, {323, 324}}, {2, {323, 324}}, {2, {325, 326}}, {2, {325, 32
6}}, {2, {327, 328}}, {2, {327, 328}}, {2, {330, 331}}, {2, {330, 331}}, {2, {33
2, 333}}, {2, {332, 333}}, {2, {334, 335}}, {2, {334, 335}}, {2, {336, 337}}, {2
, {336, 337}}, {2, {338, 339}}, {2, {338, 339}}, {2, {340, 341}}, {2, {340, 341}
}, {2, {342, 343}}, {2, {342, 343}}, {2, {344, 345}}, {2, {344, 345}}, {2, {346,
347}}, {2, {346, 347}}, {2, {348, 349}}, {2, {348, 349}}, {2, {350, 351}}, {2,
{350, 351}}, {2, {352, 353}}, {2, {352, 353}}, {2, {354, 355}}, {2, {354, 355}},
{2, {356, 357}}, {2, {356, 357}}, {2, {358, 359}}, {2, {358, 359}}, {2, {360, 3
61}}, {2, {360, 361}}, {2, {362, 363}}, {2, {362, 363}}, {2, {364, 365}}, {2, {3
64, 365}}, {2, {366, 367}}, {2, {366, 367}}, {2, {368, 369}}, {2, {368, 369}}, {
2, {370, 371}}, {2, {370, 371}}, {2, {372, 373}}, {2, {372, 373}}, {2, {374, 375
}}, {2, {374, 375}}, {2, {255, 376}}, {2, {377, 378}}, {2, {377, 378}}, {2, {379
, 380}}, {2, {379, 380}}, {2, {381, 382}}, {2, {381, 382}}, {2, {384, 579}}, {2,
{385, 595}}, {2, {386, 387}}, {2, {386, 387}}, {2, {388, 389}}, {2, {388, 389}}
, {2, {390, 596}}, {2, {391, 392}}, {2, {391, 392}}, {2, {393, 598}}, {2, {394,
599}}, {2, {395, 396}}, {2, {395, 396}}, {2, {398, 477}}, {2, {399, 601}}, {2, {
400, 603}}, {2, {401, 402}}, {2, {401, 402}}, {2, {403, 608}}, {2, {404, 611}},
{2, {405, 502}}, {2, {406, 617}}, {2, {407, 616}}, {2, {408, 409}}, {2, {408, 40
9}}, {2, {410, 573}}, {2, {412, 623}}, {2, {413, 626}}, {2, {414, 544}}, {2, {41
5, 629}}, {2, {416, 417}}, {2, {416, 417}}, {2, {418, 419}}, {2, {418, 419}}, {2
, {420, 421}}, {2, {420, 421}}, {2, {422, 640}}, {2, {423, 424}}, {2, {423, 424}
}, {2, {425, 643}}, {2, {428, 429}}, {2, {428, 429}}, {2, {430, 648}}, {2, {431,
432}}, {2, {431, 432}}, {2, {433, 650}}, {2, {434, 651}}, {2, {435, 436}}, {2,
{435, 436}}, {2, {437, 438}}, {2, {437, 438}}, {2, {439, 658}}, {2, {440, 441}},
{2, {440, 441}}, {2, {444, 445}}, {2, {444, 445}}, {2, {447, 503}}, {3, {452, 4
53, 454}}, {3, {452, 453, 454}}, {3, {452, 453, 454}}, {3, {455, 456, 457}}, {3,
{455, 456, 457}}, {3, {455, 456, 457}}, {3, {458, 459, 460}}, {3, {458, 459, 46
0}}, {3, {458, 459, 460}}, {2, {461, 462}}, {2, {461, 462}}, {2, {463, 464}}, {2
, {463, 464}}, {2, {465, 466}}, {2, {465, 466}}, {2, {467, 468}}, {2, {467, 468}
}, {2, {469, 470}}, {2, {469, 470}}, {2, {471, 472}}, {2, {471, 472}}, {2, {473,
474}}, {2, {473, 474}}, {2, {475, 476}}, {2, {475, 476}}, {2, {398, 477}}, {2,
{478, 479}}, {2, {478, 479}}, {2, {480, 481}}, {2, {480, 481}}, {2, {482, 483}},
{2, {482, 483}}, {2, {484, 485}}, {2, {484, 485}}, {2, {486, 487}}, {2, {486, 4
87}}, {2, {488, 489}}, {2, {488, 489}}, {2, {490, 491}}, {2, {490, 491}}, {2, {4
92, 493}}, {2, {492, 493}}, {2, {494, 495}}, {2, {494, 495}}, {3, {497, 498, 499
}}, {3, {497, 498, 499}}, {3, {497, 498, 499}}, {2, {500, 501}}, {2, {500, 501}}
, {2, {405, 502}}, {2, {447, 503}}, {2, {504, 505}}, {2, {504, 505}}, {2, {506,
507}}, {2, {506, 507}}, {2, {508, 509}}, {2, {508, 509}}, {2, {510, 511}}, {2, {
510, 511}}, {2, {512, 513}}, {2, {512, 513}}, {2, {514, 515}}, {2, {514, 515}},
{2, {516, 517}}, {2, {516, 517}}, {2, {518, 519}}, {2, {518, 519}}, {2, {520, 52
1}}, {2, {520, 521}}, {2, {522, 523}}, {2, {522, 523}}, {2, {524, 525}}, {2, {52
4, 525}}, {2, {526, 527}}, {2, {526, 527}}, {2, {528, 529}}, {2, {528, 529}}, {2
, {530, 531}}, {2, {530, 531}}, {2, {532, 533}}, {2, {532, 533}}, {2, {534, 535}
}, {2, {534, 535}}, {2, {536, 537}}, {2, {536, 537}}, {2, {538, 539}}, {2, {538,
539}}, {2, {540, 541}}, {2, {540, 541}}, {2, {542, 543}}, {2, {542, 543}}, {2,
{414, 544}}, {2, {546, 547}}, {2, {546, 547}}, {2, {548, 549}}, {2, {548, 549}},
{2, {550, 551}}, {2, {550, 551}}, {2, {552, 553}}, {2, {552, 553}}, {2, {554, 5
55}}, {2, {554, 555}}, {2, {556, 557}}, {2, {556, 557}}, {2, {558, 559}}, {2, {5
58, 559}}, {2, {560, 561}}, {2, {560, 561}}, {2, {562, 563}}, {2, {562, 563}}, {
2, {570, 11365}}, {2, {571, 572}}, {2, {571, 572}}, {2, {410, 573}}, {2, {574, 1
1366}}, {2, {577, 578}}, {2, {577, 578}}, {2, {384, 579}}, {2, {580, 649}}, {2,
{581, 652}}, {2, {582, 583}}, {2, {582, 583}}, {2, {584, 585}}, {2, {584, 585}},
{2, {586, 587}}, {2, {586, 587}}, {2, {588, 589}}, {2, {588, 589}}, {2, {590, 5
91}}, {2, {590, 591}}, {2, {385, 595}}, {2, {390, 596}}, {2, {393, 598}}, {2, {3
94, 599}}, {2, {399, 601}}, {2, {400, 603}}, {2, {403, 608}}, {2, {404, 611}}, {
2, {407, 616}}, {2, {406, 617}}, {2, {619, 11362}}, {2, {412, 623}}, {2, {413, 6
26}}, {2, {415, 629}}, {2, {637, 11364}}, {2, {422, 640}}, {2, {425, 643}}, {2,
{430, 648}}, {2, {580, 649}}, {2, {433, 650}}, {2, {434, 651}}, {2, {581, 652}},
{2, {439, 658}}, {4, {837, 921, 953, 8126}}, {2, {891, 1021}}, {2, {892, 1022}}
, {2, {893, 1023}}, {2, {902, 940}}, {2, {904, 941}}, {2, {905, 942}}, {2, {906,
943}}, {2, {908, 972}}, {2, {910, 973}}, {2, {911, 974}}, {2, {913, 945}}, {3,
{914, 946, 976}}, {2, {915, 947}}, {2, {916, 948}}, {3, {917, 949, 1013}}, {2, {
918, 950}}, {2, {919, 951}}, {3, {920, 952, 977}}, {4, {837, 921, 953, 8126}}, {
3, {922, 954, 1008}}, {2, {923, 955}}, {3, {181, 924, 956}}, {2, {925, 957}}, {2
, {926, 958}}, {2, {927, 959}}, {3, {928, 960, 982}}, {3, {929, 961, 1009}}, {2,
{932, 964}}, {2, {933, 965}}, {3, {934, 966, 981}}, {2, {935, 967}}, {2, {936,
968}}, {2, {937, 969}}, {2, {938, 970}}, {2, {939, 971}}, {2, {902, 940}}, {2, {
904, 941}}, {2, {905, 942}}, {2, {906, 943}}, {2, {913, 945}}, {3, {914, 946, 97
6}}, {2, {915, 947}}, {2, {916, 948}}, {3, {917, 949, 1013}}, {2, {918, 950}}, {
2, {919, 951}}, {3, {920, 952, 977}}, {4, {837, 921, 953, 8126}}, {3, {922, 954,
1008}}, {2, {923, 955}}, {3, {181, 924, 956}}, {2, {925, 957}}, {2, {926, 958}}
, {2, {927, 959}}, {3, {928, 960, 982}}, {3, {929, 961, 1009}}, {3, {931, 962, 9
63}}, {3, {931, 962, 963}}, {2, {932, 964}}, {2, {933, 965}}, {3, {934, 966, 981
}}, {2, {935, 967}}, {2, {936, 968}}, {2, {937, 969}}, {2, {938, 970}}, {2, {939
, 971}}, {2, {908, 972}}, {2, {910, 973}}, {2, {911, 974}}, {3, {914, 946, 976}}
, {3, {920, 952, 977}}, {3, {934, 966, 981}}, {3, {928, 960, 982}}, {2, {984, 98
5}}, {2, {984, 985}}, {2, {986, 987}}, {2, {986, 987}}, {2, {988, 989}}, {2, {98
8, 989}}, {2, {990, 991}}, {2, {990, 991}}, {2, {992, 993}}, {2, {992, 993}}, {2
, {994, 995}}, {2, {994, 995}}, {2, {996, 997}}, {2, {996, 997}}, {2, {998, 999}
}, {2, {998, 999}}, {2, {1000, 1001}}, {2, {1000, 1001}}, {2, {1002, 1003}}, {2,
{1002, 1003}}, {2, {1004, 1005}}, {2, {1004, 1005}}, {2, {1006, 1007}}, {2, {10
06, 1007}}, {3, {922, 954, 1008}}, {3, {929, 961, 1009}}, {2, {1010, 1017}}, {3,
{917, 949, 1013}}, {2, {1015, 1016}}, {2, {1015, 1016}}, {2, {1010, 1017}}, {2,
{1018, 1019}}, {2, {1018, 1019}}, {2, {891, 1021}}, {2, {892, 1022}}, {2, {893,
1023}}, {2, {1024, 1104}}, {2, {1025, 1105}}, {2, {1026, 1106}}, {2, {1027, 110
7}}, {2, {1028, 1108}}, {2, {1029, 1109}}, {2, {1030, 1110}}, {2, {1031, 1111}},
{2, {1032, 1112}}, {2, {1033, 1113}}, {2, {1034, 1114}}, {2, {1035, 1115}}, {2,
{1036, 1116}}, {2, {1037, 1117}}, {2, {1038, 1118}}, {2, {1039, 1119}}, {2, {10
40, 1072}}, {2, {1041, 1073}}, {2, {1042, 1074}}, {2, {1043, 1075}}, {2, {1044,
1076}}, {2, {1045, 1077}}, {2, {1046, 1078}}, {2, {1047, 1079}}, {2, {1048, 1080
}}, {2, {1049, 1081}}, {2, {1050, 1082}}, {2, {1051, 1083}}, {2, {1052, 1084}},
{2, {1053, 1085}}, {2, {1054, 1086}}, {2, {1055, 1087}}, {2, {1056, 1088}}, {2,
{1057, 1089}}, {2, {1058, 1090}}, {2, {1059, 1091}}, {2, {1060, 1092}}, {2, {106
1, 1093}}, {2, {1062, 1094}}, {2, {1063, 1095}}, {2, {1064, 1096}}, {2, {1065, 1
097}}, {2, {1066, 1098}}, {2, {1067, 1099}}, {2, {1068, 1100}}, {2, {1069, 1101}
}, {2, {1070, 1102}}, {2, {1071, 1103}}, {2, {1040, 1072}}, {2, {1041, 1073}}, {
2, {1042, 1074}}, {2, {1043, 1075}}, {2, {1044, 1076}}, {2, {1045, 1077}}, {2, {
1046, 1078}}, {2, {1047, 1079}}, {2, {1048, 1080}}, {2, {1049, 1081}}, {2, {1050
, 1082}}, {2, {1051, 1083}}, {2, {1052, 1084}}, {2, {1053, 1085}}, {2, {1054, 10
86}}, {2, {1055, 1087}}, {2, {1056, 1088}}, {2, {1057, 1089}}, {2, {1058, 1090}}
, {2, {1059, 1091}}, {2, {1060, 1092}}, {2, {1061, 1093}}, {2, {1062, 1094}}, {2
, {1063, 1095}}, {2, {1064, 1096}}, {2, {1065, 1097}}, {2, {1066, 1098}}, {2, {1
067, 1099}}, {2, {1068, 1100}}, {2, {1069, 1101}}, {2, {1070, 1102}}, {2, {1071,
1103}}, {2, {1024, 1104}}, {2, {1025, 1105}}, {2, {1026, 1106}}, {2, {1027, 110
7}}, {2, {1028, 1108}}, {2, {1029, 1109}}, {2, {1030, 1110}}, {2, {1031, 1111}},
{2, {1032, 1112}}, {2, {1033, 1113}}, {2, {1034, 1114}}, {2, {1035, 1115}}, {2,
{1036, 1116}}, {2, {1037, 1117}}, {2, {1038, 1118}}, {2, {1039, 1119}}, {2, {11
20, 1121}}, {2, {1120, 1121}}, {2, {1122, 1123}}, {2, {1122, 1123}}, {2, {1124,
1125}}, {2, {1124, 1125}}, {2, {1126, 1127}}, {2, {1126, 1127}}, {2, {1128, 1129
}}, {2, {1128, 1129}}, {2, {1130, 1131}}, {2, {1130, 1131}}, {2, {1132, 1133}},
{2, {1132, 1133}}, {2, {1134, 1135}}, {2, {1134, 1135}}, {2, {1136, 1137}}, {2,
{1136, 1137}}, {2, {1138, 1139}}, {2, {1138, 1139}}, {2, {1140, 1141}}, {2, {114
0, 1141}}, {2, {1142, 1143}}, {2, {1142, 1143}}, {2, {1144, 1145}}, {2, {1144, 1
145}}, {2, {1146, 1147}}, {2, {1146, 1147}}, {2, {1148, 1149}}, {2, {1148, 1149}
}, {2, {1150, 1151}}, {2, {1150, 1151}}, {2, {1152, 1153}}, {2, {1152, 1153}}, {
2, {1162, 1163}}, {2, {1162, 1163}}, {2, {1164, 1165}}, {2, {1164, 1165}}, {2, {
1166, 1167}}, {2, {1166, 1167}}, {2, {1168, 1169}}, {2, {1168, 1169}}, {2, {1170
, 1171}}, {2, {1170, 1171}}, {2, {1172, 1173}}, {2, {1172, 1173}}, {2, {1174, 11
75}}, {2, {1174, 1175}}, {2, {1176, 1177}}, {2, {1176, 1177}}, {2, {1178, 1179}}
, {2, {1178, 1179}}, {2, {1180, 1181}}, {2, {1180, 1181}}, {2, {1182, 1183}}, {2
, {1182, 1183}}, {2, {1184, 1185}}, {2, {1184, 1185}}, {2, {1186, 1187}}, {2, {1
186, 1187}}, {2, {1188, 1189}}, {2, {1188, 1189}}, {2, {1190, 1191}}, {2, {1190,
1191}}, {2, {1192, 1193}}, {2, {1192, 1193}}, {2, {1194, 1195}}, {2, {1194, 119
5}}, {2, {1196, 1197}}, {2, {1196, 1197}}, {2, {1198, 1199}}, {2, {1198, 1199}},
{2, {1200, 1201}}, {2, {1200, 1201}}, {2, {1202, 1203}}, {2, {1202, 1203}}, {2,
{1204, 1205}}, {2, {1204, 1205}}, {2, {1206, 1207}}, {2, {1206, 1207}}, {2, {12
08, 1209}}, {2, {1208, 1209}}, {2, {1210, 1211}}, {2, {1210, 1211}}, {2, {1212,
1213}}, {2, {1212, 1213}}, {2, {1214, 1215}}, {2, {1214, 1215}}, {2, {1216, 1231
}}, {2, {1217, 1218}}, {2, {1217, 1218}}, {2, {1219, 1220}}, {2, {1219, 1220}},
{2, {1221, 1222}}, {2, {1221, 1222}}, {2, {1223, 1224}}, {2, {1223, 1224}}, {2,
{1225, 1226}}, {2, {1225, 1226}}, {2, {1227, 1228}}, {2, {1227, 1228}}, {2, {122
9, 1230}}, {2, {1229, 1230}}, {2, {1216, 1231}}, {2, {1232, 1233}}, {2, {1232, 1
233}}, {2, {1234, 1235}}, {2, {1234, 1235}}, {2, {1236, 1237}}, {2, {1236, 1237}
}, {2, {1238, 1239}}, {2, {1238, 1239}}, {2, {1240, 1241}}, {2, {1240, 1241}}, {
2, {1242, 1243}}, {2, {1242, 1243}}, {2, {1244, 1245}}, {2, {1244, 1245}}, {2, {
1246, 1247}}, {2, {1246, 1247}}, {2, {1248, 1249}}, {2, {1248, 1249}}, {2, {1250
, 1251}}, {2, {1250, 1251}}, {2, {1252, 1253}}, {2, {1252, 1253}}, {2, {1254, 12
55}}, {2, {1254, 1255}}, {2, {1256, 1257}}, {2, {1256, 1257}}, {2, {1258, 1259}}
, {2, {1258, 1259}}, {2, {1260, 1261}}, {2, {1260, 1261}}, {2, {1262, 1263}}, {2
, {1262, 1263}}, {2, {1264, 1265}}, {2, {1264, 1265}}, {2, {1266, 1267}}, {2, {1
266, 1267}}, {2, {1268, 1269}}, {2, {1268, 1269}}, {2, {1270, 1271}}, {2, {1270,
1271}}, {2, {1272, 1273}}, {2, {1272, 1273}}, {2, {1274, 1275}}, {2, {1274, 127
5}}, {2, {1276, 1277}}, {2, {1276, 1277}}, {2, {1278, 1279}}, {2, {1278, 1279}},
{2, {1280, 1281}}, {2, {1280, 1281}}, {2, {1282, 1283}}, {2, {1282, 1283}}, {2,
{1284, 1285}}, {2, {1284, 1285}}, {2, {1286, 1287}}, {2, {1286, 1287}}, {2, {12
88, 1289}}, {2, {1288, 1289}}, {2, {1290, 1291}}, {2, {1290, 1291}}, {2, {1292,
1293}}, {2, {1292, 1293}}, {2, {1294, 1295}}, {2, {1294, 1295}}, {2, {1296, 1297
}}, {2, {1296, 1297}}, {2, {1298, 1299}}, {2, {1298, 1299}}, {2, {1329, 1377}},
{2, {1330, 1378}}, {2, {1331, 1379}}, {2, {1332, 1380}}, {2, {1333, 1381}}, {2,
{1334, 1382}}, {2, {1335, 1383}}, {2, {1336, 1384}}, {2, {1337, 1385}}, {2, {133
8, 1386}}, {2, {1339, 1387}}, {2, {1340, 1388}}, {2, {1341, 1389}}, {2, {1342, 1
390}}, {2, {1343, 1391}}, {2, {1344, 1392}}, {2, {1345, 1393}}, {2, {1346, 1394}
}, {2, {1347, 1395}}, {2, {1348, 1396}}, {2, {1349, 1397}}, {2, {1350, 1398}}, {
2, {1351, 1399}}, {2, {1352, 1400}}, {2, {1353, 1401}}, {2, {1354, 1402}}, {2, {
1355, 1403}}, {2, {1356, 1404}}, {2, {1357, 1405}}, {2, {1358, 1406}}, {2, {1359
, 1407}}, {2, {1360, 1408}}, {2, {1361, 1409}}, {2, {1362, 1410}}, {2, {1363, 14
11}}, {2, {1364, 1412}}, {2, {1365, 1413}}, {2, {1366, 1414}}, {2, {1329, 1377}}
, {2, {1330, 1378}}, {2, {1331, 1379}}, {2, {1332, 1380}}, {2, {1333, 1381}}, {2
, {1334, 1382}}, {2, {1335, 1383}}, {2, {1336, 1384}}, {2, {1337, 1385}}, {2, {1
338, 1386}}, {2, {1339, 1387}}, {2, {1340, 1388}}, {2, {1341, 1389}}, {2, {1342,
1390}}, {2, {1343, 1391}}, {2, {1344, 1392}}, {2, {1345, 1393}}, {2, {1346, 139
4}}, {2, {1347, 1395}}, {2, {1348, 1396}}, {2, {1349, 1397}}, {2, {1350, 1398}},
{2, {1351, 1399}}, {2, {1352, 1400}}, {2, {1353, 1401}}, {2, {1354, 1402}}, {2,
{1355, 1403}}, {2, {1356, 1404}}, {2, {1357, 1405}}, {2, {1358, 1406}}, {2, {13
59, 1407}}, {2, {1360, 1408}}, {2, {1361, 1409}}, {2, {1362, 1410}}, {2, {1363,
1411}}, {2, {1364, 1412}}, {2, {1365, 1413}}, {2, {1366, 1414}}, {2, {4256, 1152
0}}, {2, {4257, 11521}}, {2, {4258, 11522}}, {2, {4259, 11523}}, {2, {4260, 1152
4}}, {2, {4261, 11525}}, {2, {4262, 11526}}, {2, {4263, 11527}}, {2, {4264, 1152
8}}, {2, {4265, 11529}}, {2, {4266, 11530}}, {2, {4267, 11531}}, {2, {4268, 1153
2}}, {2, {4269, 11533}}, {2, {4270, 11534}}, {2, {4271, 11535}}, {2, {4272, 1153
6}}, {2, {4273, 11537}}, {2, {4274, 11538}}, {2, {4275, 11539}}, {2, {4276, 1154
0}}, {2, {4277, 11541}}, {2, {4278, 11542}}, {2, {4279, 11543}}, {2, {4280, 1154
4}}, {2, {4281, 11545}}, {2, {4282, 11546}}, {2, {4283, 11547}}, {2, {4284, 1154
8}}, {2, {4285, 11549}}, {2, {4286, 11550}}, {2, {4287, 11551}}, {2, {4288, 1155
2}}, {2, {4289, 11553}}, {2, {4290, 11554}}, {2, {4291, 11555}}, {2, {4292, 1155
6}}, {2, {4293, 11557}}, {2, {7549, 11363}}, {2, {7680, 7681}}, {2, {7680, 7681}
}, {2, {7682, 7683}}, {2, {7682, 7683}}, {2, {7684, 7685}}, {2, {7684, 7685}}, {
2, {7686, 7687}}, {2, {7686, 7687}}, {2, {7688, 7689}}, {2, {7688, 7689}}, {2, {
7690, 7691}}, {2, {7690, 7691}}, {2, {7692, 7693}}, {2, {7692, 7693}}, {2, {7694
, 7695}}, {2, {7694, 7695}}, {2, {7696, 7697}}, {2, {7696, 7697}}, {2, {7698, 76
99}}, {2, {7698, 7699}}, {2, {7700, 7701}}, {2, {7700, 7701}}, {2, {7702, 7703}}
, {2, {7702, 7703}}, {2, {7704, 7705}}, {2, {7704, 7705}}, {2, {7706, 7707}}, {2
, {7706, 7707}}, {2, {7708, 7709}}, {2, {7708, 7709}}, {2, {7710, 7711}}, {2, {7
710, 7711}}, {2, {7712, 7713}}, {2, {7712, 7713}}, {2, {7714, 7715}}, {2, {7714,
7715}}, {2, {7716, 7717}}, {2, {7716, 7717}}, {2, {7718, 7719}}, {2, {7718, 771
9}}, {2, {7720, 7721}}, {2, {7720, 7721}}, {2, {7722, 7723}}, {2, {7722, 7723}},
{2, {7724, 7725}}, {2, {7724, 7725}}, {2, {7726, 7727}}, {2, {7726, 7727}}, {2,
{7728, 7729}}, {2, {7728, 7729}}, {2, {7730, 7731}}, {2, {7730, 7731}}, {2, {77
32, 7733}}, {2, {7732, 7733}}, {2, {7734, 7735}}, {2, {7734, 7735}}, {2, {7736,
7737}}, {2, {7736, 7737}}, {2, {7738, 7739}}, {2, {7738, 7739}}, {2, {7740, 7741
}}, {2, {7740, 7741}}, {2, {7742, 7743}}, {2, {7742, 7743}}, {2, {7744, 7745}},
{2, {7744, 7745}}, {2, {7746, 7747}}, {2, {7746, 7747}}, {2, {7748, 7749}}, {2,
{7748, 7749}}, {2, {7750, 7751}}, {2, {7750, 7751}}, {2, {7752, 7753}}, {2, {775
2, 7753}}, {2, {7754, 7755}}, {2, {7754, 7755}}, {2, {7756, 7757}}, {2, {7756, 7
757}}, {2, {7758, 7759}}, {2, {7758, 7759}}, {2, {7760, 7761}}, {2, {7760, 7761}
}, {2, {7762, 7763}}, {2, {7762, 7763}}, {2, {7764, 7765}}, {2, {7764, 7765}}, {
2, {7766, 7767}}, {2, {7766, 7767}}, {2, {7768, 7769}}, {2, {7768, 7769}}, {2, {
7770, 7771}}, {2, {7770, 7771}}, {2, {7772, 7773}}, {2, {7772, 7773}}, {2, {7774
, 7775}}, {2, {7774, 7775}}, {3, {7776, 7777, 7835}}, {3, {7776, 7777, 7835}}, {
2, {7778, 7779}}, {2, {7778, 7779}}, {2, {7780, 7781}}, {2, {7780, 7781}}, {2, {
7782, 7783}}, {2, {7782, 7783}}, {2, {7784, 7785}}, {2, {7784, 7785}}, {2, {7786
, 7787}}, {2, {7786, 7787}}, {2, {7788, 7789}}, {2, {7788, 7789}}, {2, {7790, 77
91}}, {2, {7790, 7791}}, {2, {7792, 7793}}, {2, {7792, 7793}}, {2, {7794, 7795}}
, {2, {7794, 7795}}, {2, {7796, 7797}}, {2, {7796, 7797}}, {2, {7798, 7799}}, {2
, {7798, 7799}}, {2, {7800, 7801}}, {2, {7800, 7801}}, {2, {7802, 7803}}, {2, {7
802, 7803}}, {2, {7804, 7805}}, {2, {7804, 7805}}, {2, {7806, 7807}}, {2, {7806,
7807}}, {2, {7808, 7809}}, {2, {7808, 7809}}, {2, {7810, 7811}}, {2, {7810, 781
1}}, {2, {7812, 7813}}, {2, {7812, 7813}}, {2, {7814, 7815}}, {2, {7814, 7815}},
{2, {7816, 7817}}, {2, {7816, 7817}}, {2, {7818, 7819}}, {2, {7818, 7819}}, {2,
{7820, 7821}}, {2, {7820, 7821}}, {2, {7822, 7823}}, {2, {7822, 7823}}, {2, {78
24, 7825}}, {2, {7824, 7825}}, {2, {7826, 7827}}, {2, {7826, 7827}}, {2, {7828,
7829}}, {2, {7828, 7829}}, {3, {7776, 7777, 7835}}, {2, {7840, 7841}}, {2, {7840
, 7841}}, {2, {7842, 7843}}, {2, {7842, 7843}}, {2, {7844, 7845}}, {2, {7844, 78
45}}, {2, {7846, 7847}}, {2, {7846, 7847}}, {2, {7848, 7849}}, {2, {7848, 7849}}
, {2, {7850, 7851}}, {2, {7850, 7851}}, {2, {7852, 7853}}, {2, {7852, 7853}}, {2
, {7854, 7855}}, {2, {7854, 7855}}, {2, {7856, 7857}}, {2, {7856, 7857}}, {2, {7
858, 7859}}, {2, {7858, 7859}}, {2, {7860, 7861}}, {2, {7860, 7861}}, {2, {7862,
7863}}, {2, {7862, 7863}}, {2, {7864, 7865}}, {2, {7864, 7865}}, {2, {7866, 786
7}}, {2, {7866, 7867}}, {2, {7868, 7869}}, {2, {7868, 7869}}, {2, {7870, 7871}},
{2, {7870, 7871}}, {2, {7872, 7873}}, {2, {7872, 7873}}, {2, {7874, 7875}}, {2,
{7874, 7875}}, {2, {7876, 7877}}, {2, {7876, 7877}}, {2, {7878, 7879}}, {2, {78
78, 7879}}, {2, {7880, 7881}}, {2, {7880, 7881}}, {2, {7882, 7883}}, {2, {7882,
7883}}, {2, {7884, 7885}}, {2, {7884, 7885}}, {2, {7886, 7887}}, {2, {7886, 7887
}}, {2, {7888, 7889}}, {2, {7888, 7889}}, {2, {7890, 7891}}, {2, {7890, 7891}},
{2, {7892, 7893}}, {2, {7892, 7893}}, {2, {7894, 7895}}, {2, {7894, 7895}}, {2,
{7896, 7897}}, {2, {7896, 7897}}, {2, {7898, 7899}}, {2, {7898, 7899}}, {2, {790
0, 7901}}, {2, {7900, 7901}}, {2, {7902, 7903}}, {2, {7902, 7903}}, {2, {7904, 7
905}}, {2, {7904, 7905}}, {2, {7906, 7907}}, {2, {7906, 7907}}, {2, {7908, 7909}
}, {2, {7908, 7909}}, {2, {7910, 7911}}, {2, {7910, 7911}}, {2, {7912, 7913}}, {
2, {7912, 7913}}, {2, {7914, 7915}}, {2, {7914, 7915}}, {2, {7916, 7917}}, {2, {
7916, 7917}}, {2, {7918, 7919}}, {2, {7918, 7919}}, {2, {7920, 7921}}, {2, {7920
, 7921}}, {2, {7922, 7923}}, {2, {7922, 7923}}, {2, {7924, 7925}}, {2, {7924, 79
25}}, {2, {7926, 7927}}, {2, {7926, 7927}}, {2, {7928, 7929}}, {2, {7928, 7929}}
, {2, {7936, 7944}}, {2, {7937, 7945}}, {2, {7938, 7946}}, {2, {7939, 7947}}, {2
, {7940, 7948}}, {2, {7941, 7949}}, {2, {7942, 7950}}, {2, {7943, 7951}}, {2, {7
936, 7944}}, {2, {7937, 7945}}, {2, {7938, 7946}}, {2, {7939, 7947}}, {2, {7940,
7948}}, {2, {7941, 7949}}, {2, {7942, 7950}}, {2, {7943, 7951}}, {2, {7952, 796
0}}, {2, {7953, 7961}}, {2, {7954, 7962}}, {2, {7955, 7963}}, {2, {7956, 7964}},
{2, {7957, 7965}}, {2, {7952, 7960}}, {2, {7953, 7961}}, {2, {7954, 7962}}, {2,
{7955, 7963}}, {2, {7956, 7964}}, {2, {7957, 7965}}, {2, {7968, 7976}}, {2, {79
69, 7977}}, {2, {7970, 7978}}, {2, {7971, 7979}}, {2, {7972, 7980}}, {2, {7973,
7981}}, {2, {7974, 7982}}, {2, {7975, 7983}}, {2, {7968, 7976}}, {2, {7969, 7977
}}, {2, {7970, 7978}}, {2, {7971, 7979}}, {2, {7972, 7980}}, {2, {7973, 7981}},
{2, {7974, 7982}}, {2, {7975, 7983}}, {2, {7984, 7992}}, {2, {7985, 7993}}, {2,
{7986, 7994}}, {2, {7987, 7995}}, {2, {7988, 7996}}, {2, {7989, 7997}}, {2, {799
0, 7998}}, {2, {7991, 7999}}, {2, {7984, 7992}}, {2, {7985, 7993}}, {2, {7986, 7
994}}, {2, {7987, 7995}}, {2, {7988, 7996}}, {2, {7989, 7997}}, {2, {7990, 7998}
}, {2, {7991, 7999}}, {2, {8000, 8008}}, {2, {8001, 8009}}, {2, {8002, 8010}}, {
2, {8003, 8011}}, {2, {8004, 8012}}, {2, {8005, 8013}}, {2, {8000, 8008}}, {2, {
8001, 8009}}, {2, {8002, 8010}}, {2, {8003, 8011}}, {2, {8004, 8012}}, {2, {8005
, 8013}}, {2, {8017, 8025}}, {2, {8019, 8027}}, {2, {8021, 8029}}, {2, {8023, 80
31}}, {2, {8017, 8025}}, {2, {8019, 8027}}, {2, {8021, 8029}}, {2, {8023, 8031}}
, {2, {8032, 8040}}, {2, {8033, 8041}}, {2, {8034, 8042}}, {2, {8035, 8043}}, {2
, {8036, 8044}}, {2, {8037, 8045}}, {2, {8038, 8046}}, {2, {8039, 8047}}, {2, {8
032, 8040}}, {2, {8033, 8041}}, {2, {8034, 8042}}, {2, {8035, 8043}}, {2, {8036,
8044}}, {2, {8037, 8045}}, {2, {8038, 8046}}, {2, {8039, 8047}}, {2, {8048, 812
2}}, {2, {8049, 8123}}, {2, {8050, 8136}}, {2, {8051, 8137}}, {2, {8052, 8138}},
{2, {8053, 8139}}, {2, {8054, 8154}}, {2, {8055, 8155}}, {2, {8056, 8184}}, {2,
{8057, 8185}}, {2, {8058, 8170}}, {2, {8059, 8171}}, {2, {8060, 8186}}, {2, {80
61, 8187}}, {2, {8112, 8120}}, {2, {8113, 8121}}, {2, {8112, 8120}}, {2, {8113,
8121}}, {2, {8048, 8122}}, {2, {8049, 8123}}, {4, {837, 921, 953, 8126}}, {2, {8
050, 8136}}, {2, {8051, 8137}}, {2, {8052, 8138}}, {2, {8053, 8139}}, {2, {8144,
8152}}, {2, {8145, 8153}}, {2, {8144, 8152}}, {2, {8145, 8153}}, {2, {8054, 815
4}}, {2, {8055, 8155}}, {2, {8160, 8168}}, {2, {8161, 8169}}, {2, {8165, 8172}},
{2, {8160, 8168}}, {2, {8161, 8169}}, {2, {8058, 8170}}, {2, {8059, 8171}}, {2,
{8165, 8172}}, {2, {8056, 8184}}, {2, {8057, 8185}}, {2, {8060, 8186}}, {2, {80
61, 8187}}, {2, {8498, 8526}}, {2, {8498, 8526}}, {2, {8544, 8560}}, {2, {8545,
8561}}, {2, {8546, 8562}}, {2, {8547, 8563}}, {2, {8548, 8564}}, {2, {8549, 8565
}}, {2, {8550, 8566}}, {2, {8551, 8567}}, {2, {8552, 8568}}, {2, {8553, 8569}},
{2, {8554, 8570}}, {2, {8555, 8571}}, {2, {8556, 8572}}, {2, {8557, 8573}}, {2,
{8558, 8574}}, {2, {8559, 8575}}, {2, {8544, 8560}}, {2, {8545, 8561}}, {2, {854
6, 8562}}, {2, {8547, 8563}}, {2, {8548, 8564}}, {2, {8549, 8565}}, {2, {8550, 8
566}}, {2, {8551, 8567}}, {2, {8552, 8568}}, {2, {8553, 8569}}, {2, {8554, 8570}
}, {2, {8555, 8571}}, {2, {8556, 8572}}, {2, {8557, 8573}}, {2, {8558, 8574}}, {
2, {8559, 8575}}, {2, {8579, 8580}}, {2, {8579, 8580}}, {2, {9398, 9424}}, {2, {
9399, 9425}}, {2, {9400, 9426}}, {2, {9401, 9427}}, {2, {9402, 9428}}, {2, {9403
, 9429}}, {2, {9404, 9430}}, {2, {9405, 9431}}, {2, {9406, 9432}}, {2, {9407, 94
33}}, {2, {9408, 9434}}, {2, {9409, 9435}}, {2, {9410, 9436}}, {2, {9411, 9437}}
, {2, {9412, 9438}}, {2, {9413, 9439}}, {2, {9414, 9440}}, {2, {9415, 9441}}, {2
, {9416, 9442}}, {2, {9417, 9443}}, {2, {9418, 9444}}, {2, {9419, 9445}}, {2, {9
420, 9446}}, {2, {9421, 9447}}, {2, {9422, 9448}}, {2, {9423, 9449}}, {2, {9398,
9424}}, {2, {9399, 9425}}, {2, {9400, 9426}}, {2, {9401, 9427}}, {2, {9402, 942
8}}, {2, {9403, 9429}}, {2, {9404, 9430}}, {2, {9405, 9431}}, {2, {9406, 9432}},
{2, {9407, 9433}}, {2, {9408, 9434}}, {2, {9409, 9435}}, {2, {9410, 9436}}, {2,
{9411, 9437}}, {2, {9412, 9438}}, {2, {9413, 9439}}, {2, {9414, 9440}}, {2, {94
15, 9441}}, {2, {9416, 9442}}, {2, {9417, 9443}}, {2, {9418, 9444}}, {2, {9419,
9445}}, {2, {9420, 9446}}, {2, {9421, 9447}}, {2, {9422, 9448}}, {2, {9423, 9449
}}, {2, {11264, 11312}}, {2, {11265, 11313}}, {2, {11266, 11314}}, {2, {11267, 1
1315}}, {2, {11268, 11316}}, {2, {11269, 11317}}, {2, {11270, 11318}}, {2, {1127
1, 11319}}, {2, {11272, 11320}}, {2, {11273, 11321}}, {2, {11274, 11322}}, {2, {
11275, 11323}}, {2, {11276, 11324}}, {2, {11277, 11325}}, {2, {11278, 11326}}, {
2, {11279, 11327}}, {2, {11280, 11328}}, {2, {11281, 11329}}, {2, {11282, 11330}
}, {2, {11283, 11331}}, {2, {11284, 11332}}, {2, {11285, 11333}}, {2, {11286, 11
334}}, {2, {11287, 11335}}, {2, {11288, 11336}}, {2, {11289, 11337}}, {2, {11290
, 11338}}, {2, {11291, 11339}}, {2, {11292, 11340}}, {2, {11293, 11341}}, {2, {1
1294, 11342}}, {2, {11295, 11343}}, {2, {11296, 11344}}, {2, {11297, 11345}}, {2
, {11298, 11346}}, {2, {11299, 11347}}, {2, {11300, 11348}}, {2, {11301, 11349}}
, {2, {11302, 11350}}, {2, {11303, 11351}}, {2, {11304, 11352}}, {2, {11305, 113
53}}, {2, {11306, 11354}}, {2, {11307, 11355}}, {2, {11308, 11356}}, {2, {11309,
11357}}, {2, {11310, 11358}}, {2, {11264, 11312}}, {2, {11265, 11313}}, {2, {11
266, 11314}}, {2, {11267, 11315}}, {2, {11268, 11316}}, {2, {11269, 11317}}, {2,
{11270, 11318}}, {2, {11271, 11319}}, {2, {11272, 11320}}, {2, {11273, 11321}},
{2, {11274, 11322}}, {2, {11275, 11323}}, {2, {11276, 11324}}, {2, {11277, 1132
5}}, {2, {11278, 11326}}, {2, {11279, 11327}}, {2, {11280, 11328}}, {2, {11281,
11329}}, {2, {11282, 11330}}, {2, {11283, 11331}}, {2, {11284, 11332}}, {2, {112
85, 11333}}, {2, {11286, 11334}}, {2, {11287, 11335}}, {2, {11288, 11336}}, {2,
{11289, 11337}}, {2, {11290, 11338}}, {2, {11291, 11339}}, {2, {11292, 11340}},
{2, {11293, 11341}}, {2, {11294, 11342}}, {2, {11295, 11343}}, {2, {11296, 11344
}}, {2, {11297, 11345}}, {2, {11298, 11346}}, {2, {11299, 11347}}, {2, {11300, 1
1348}}, {2, {11301, 11349}}, {2, {11302, 11350}}, {2, {11303, 11351}}, {2, {1130
4, 11352}}, {2, {11305, 11353}}, {2, {11306, 11354}}, {2, {11307, 11355}}, {2, {
11308, 11356}}, {2, {11309, 11357}}, {2, {11310, 11358}}, {2, {11360, 11361}}, {
2, {11360, 11361}}, {2, {619, 11362}}, {2, {7549, 11363}}, {2, {637, 11364}}, {2
, {570, 11365}}, {2, {574, 11366}}, {2, {11367, 11368}}, {2, {11367, 11368}}, {2
, {11369, 11370}}, {2, {11369, 11370}}, {2, {11371, 11372}}, {2, {11371, 11372}}
, {2, {11381, 11382}}, {2, {11381, 11382}}, {2, {11392, 11393}}, {2, {11392, 113
93}}, {2, {11394, 11395}}, {2, {11394, 11395}}, {2, {11396, 11397}}, {2, {11396,
11397}}, {2, {11398, 11399}}, {2, {11398, 11399}}, {2, {11400, 11401}}, {2, {11
400, 11401}}, {2, {11402, 11403}}, {2, {11402, 11403}}, {2, {11404, 11405}}, {2,
{11404, 11405}}, {2, {11406, 11407}}, {2, {11406, 11407}}, {2, {11408, 11409}},
{2, {11408, 11409}}, {2, {11410, 11411}}, {2, {11410, 11411}}, {2, {11412, 1141
3}}, {2, {11412, 11413}}, {2, {11414, 11415}}, {2, {11414, 11415}}, {2, {11416,
11417}}, {2, {11416, 11417}}, {2, {11418, 11419}}, {2, {11418, 11419}}, {2, {114
20, 11421}}, {2, {11420, 11421}}, {2, {11422, 11423}}, {2, {11422, 11423}}, {2,
{11424, 11425}}, {2, {11424, 11425}}, {2, {11426, 11427}}, {2, {11426, 11427}},
{2, {11428, 11429}}, {2, {11428, 11429}}, {2, {11430, 11431}}, {2, {11430, 11431
}}, {2, {11432, 11433}}, {2, {11432, 11433}}, {2, {11434, 11435}}, {2, {11434, 1
1435}}, {2, {11436, 11437}}, {2, {11436, 11437}}, {2, {11438, 11439}}, {2, {1143
8, 11439}}, {2, {11440, 11441}}, {2, {11440, 11441}}, {2, {11442, 11443}}, {2, {
11442, 11443}}, {2, {11444, 11445}}, {2, {11444, 11445}}, {2, {11446, 11447}}, {
2, {11446, 11447}}, {2, {11448, 11449}}, {2, {11448, 11449}}, {2, {11450, 11451}
}, {2, {11450, 11451}}, {2, {11452, 11453}}, {2, {11452, 11453}}, {2, {11454, 11
455}}, {2, {11454, 11455}}, {2, {11456, 11457}}, {2, {11456, 11457}}, {2, {11458
, 11459}}, {2, {11458, 11459}}, {2, {11460, 11461}}, {2, {11460, 11461}}, {2, {1
1462, 11463}}, {2, {11462, 11463}}, {2, {11464, 11465}}, {2, {11464, 11465}}, {2
, {11466, 11467}}, {2, {11466, 11467}}, {2, {11468, 11469}}, {2, {11468, 11469}}
, {2, {11470, 11471}}, {2, {11470, 11471}}, {2, {11472, 11473}}, {2, {11472, 114
73}}, {2, {11474, 11475}}, {2, {11474, 11475}}, {2, {11476, 11477}}, {2, {11476,
11477}}, {2, {11478, 11479}}, {2, {11478, 11479}}, {2, {11480, 11481}}, {2, {11
480, 11481}}, {2, {11482, 11483}}, {2, {11482, 11483}}, {2, {11484, 11485}}, {2,
{11484, 11485}}, {2, {11486, 11487}}, {2, {11486, 11487}}, {2, {11488, 11489}},
{2, {11488, 11489}}, {2, {11490, 11491}}, {2, {11490, 11491}}, {2, {4256, 11520
}}, {2, {4257, 11521}}, {2, {4258, 11522}}, {2, {4259, 11523}}, {2, {4260, 11524
}}, {2, {4261, 11525}}, {2, {4262, 11526}}, {2, {4263, 11527}}, {2, {4264, 11528
}}, {2, {4265, 11529}}, {2, {4266, 11530}}, {2, {4267, 11531}}, {2, {4268, 11532
}}, {2, {4269, 11533}}, {2, {4270, 11534}}, {2, {4271, 11535}}, {2, {4272, 11536
}}, {2, {4273, 11537}}, {2, {4274, 11538}}, {2, {4275, 11539}}, {2, {4276, 11540
}}, {2, {4277, 11541}}, {2, {4278, 11542}}, {2, {4279, 11543}}, {2, {4280, 11544
}}, {2, {4281, 11545}}, {2, {4282, 11546}}, {2, {4283, 11547}}, {2, {4284, 11548
}}, {2, {4285, 11549}}, {2, {4286, 11550}}, {2, {4287, 11551}}, {2, {4288, 11552
}}, {2, {4289, 11553}}, {2, {4290, 11554}}, {2, {4291, 11555}}, {2, {4292, 11556
}}, {2, {4293, 11557}}, {0, {0}} }; // NOLINT |
| 678 static const uint16_t kEcma262UnCanonicalizeTable0Size = 1656; |
| 679 static const int32_t kEcma262UnCanonicalizeTable0[3312] = { 65, 1, 66, 5, 67, 9,
68, 13, 69, 17, 70, 21, 71, 25, 72, 29, 73, 33, 74, 37, 75, 41, 76, 45, 77, 49,
78, 53, 79, 57, 80, 61, 81, 65, 82, 69, 83, 73, 84, 77, 85, 81, 86, 85, 87, 89,
88, 93, 89, 97, 90, 101, 97, 105, 98, 109, 99, 113, 100, 117, 101, 121, 102, 12
5, 103, 129, 104, 133, 105, 137, 106, 141, 107, 145, 108, 149, 109, 153, 110, 15
7, 111, 161, 112, 165, 113, 169, 114, 173, 115, 177, 116, 181, 117, 185, 118, 18
9, 119, 193, 120, 197, 121, 201, 122, 205, 181, 209, 192, 213, 193, 217, 194, 22
1, 195, 225, 196, 229, 197, 233, 198, 237, 199, 241, 200, 245, 201, 249, 202, 25
3, 203, 257, 204, 261, 205, 265, 206, 269, 207, 273, 208, 277, 209, 281, 210, 28
5, 211, 289, 212, 293, 213, 297, 214, 301, 216, 305, 217, 309, 218, 313, 219, 31
7, 220, 321, 221, 325, 222, 329, 224, 333, 225, 337, 226, 341, 227, 345, 228, 34
9, 229, 353, 230, 357, 231, 361, 232, 365, 233, 369, 234, 373, 235, 377, 236, 38
1, 237, 385, 238, 389, 239, 393, 240, 397, 241, 401, 242, 405, 243, 409, 244, 41
3, 245, 417, 246, 421, 248, 425, 249, 429, 250, 433, 251, 437, 252, 441, 253, 44
5, 254, 449, 255, 453, 256, 457, 257, 461, 258, 465, 259, 469, 260, 473, 261, 47
7, 262, 481, 263, 485, 264, 489, 265, 493, 266, 497, 267, 501, 268, 505, 269, 50
9, 270, 513, 271, 517, 272, 521, 273, 525, 274, 529, 275, 533, 276, 537, 277, 54
1, 278, 545, 279, 549, 280, 553, 281, 557, 282, 561, 283, 565, 284, 569, 285, 57
3, 286, 577, 287, 581, 288, 585, 289, 589, 290, 593, 291, 597, 292, 601, 293, 60
5, 294, 609, 295, 613, 296, 617, 297, 621, 298, 625, 299, 629, 300, 633, 301, 63
7, 302, 641, 303, 645, 306, 649, 307, 653, 308, 657, 309, 661, 310, 665, 311, 66
9, 313, 673, 314, 677, 315, 681, 316, 685, 317, 689, 318, 693, 319, 697, 320, 70
1, 321, 705, 322, 709, 323, 713, 324, 717, 325, 721, 326, 725, 327, 729, 328, 73
3, 330, 737, 331, 741, 332, 745, 333, 749, 334, 753, 335, 757, 336, 761, 337, 76
5, 338, 769, 339, 773, 340, 777, 341, 781, 342, 785, 343, 789, 344, 793, 345, 79
7, 346, 801, 347, 805, 348, 809, 349, 813, 350, 817, 351, 821, 352, 825, 353, 82
9, 354, 833, 355, 837, 356, 841, 357, 845, 358, 849, 359, 853, 360, 857, 361, 86
1, 362, 865, 363, 869, 364, 873, 365, 877, 366, 881, 367, 885, 368, 889, 369, 89
3, 370, 897, 371, 901, 372, 905, 373, 909, 374, 913, 375, 917, 376, 921, 377, 92
5, 378, 929, 379, 933, 380, 937, 381, 941, 382, 945, 384, 949, 385, 953, 386, 95
7, 387, 961, 388, 965, 389, 969, 390, 973, 391, 977, 392, 981, 393, 985, 394, 98
9, 395, 993, 396, 997, 398, 1001, 399, 1005, 400, 1009, 401, 1013, 402, 1017, 40
3, 1021, 404, 1025, 405, 1029, 406, 1033, 407, 1037, 408, 1041, 409, 1045, 410,
1049, 412, 1053, 413, 1057, 414, 1061, 415, 1065, 416, 1069, 417, 1073, 418, 107
7, 419, 1081, 420, 1085, 421, 1089, 422, 1093, 423, 1097, 424, 1101, 425, 1105,
428, 1109, 429, 1113, 430, 1117, 431, 1121, 432, 1125, 433, 1129, 434, 1133, 435
, 1137, 436, 1141, 437, 1145, 438, 1149, 439, 1153, 440, 1157, 441, 1161, 444, 1
165, 445, 1169, 447, 1173, 452, 1177, 453, 1181, 454, 1185, 455, 1189, 456, 1193
, 457, 1197, 458, 1201, 459, 1205, 460, 1209, 461, 1213, 462, 1217, 463, 1221, 4
64, 1225, 465, 1229, 466, 1233, 467, 1237, 468, 1241, 469, 1245, 470, 1249, 471,
1253, 472, 1257, 473, 1261, 474, 1265, 475, 1269, 476, 1273, 477, 1277, 478, 12
81, 479, 1285, 480, 1289, 481, 1293, 482, 1297, 483, 1301, 484, 1305, 485, 1309,
486, 1313, 487, 1317, 488, 1321, 489, 1325, 490, 1329, 491, 1333, 492, 1337, 49
3, 1341, 494, 1345, 495, 1349, 497, 1353, 498, 1357, 499, 1361, 500, 1365, 501,
1369, 502, 1373, 503, 1377, 504, 1381, 505, 1385, 506, 1389, 507, 1393, 508, 139
7, 509, 1401, 510, 1405, 511, 1409, 512, 1413, 513, 1417, 514, 1421, 515, 1425,
516, 1429, 517, 1433, 518, 1437, 519, 1441, 520, 1445, 521, 1449, 522, 1453, 523
, 1457, 524, 1461, 525, 1465, 526, 1469, 527, 1473, 528, 1477, 529, 1481, 530, 1
485, 531, 1489, 532, 1493, 533, 1497, 534, 1501, 535, 1505, 536, 1509, 537, 1513
, 538, 1517, 539, 1521, 540, 1525, 541, 1529, 542, 1533, 543, 1537, 544, 1541, 5
46, 1545, 547, 1549, 548, 1553, 549, 1557, 550, 1561, 551, 1565, 552, 1569, 553,
1573, 554, 1577, 555, 1581, 556, 1585, 557, 1589, 558, 1593, 559, 1597, 560, 16
01, 561, 1605, 562, 1609, 563, 1613, 570, 1617, 571, 1621, 572, 1625, 573, 1629,
574, 1633, 577, 1637, 578, 1641, 579, 1645, 580, 1649, 581, 1653, 582, 1657, 58
3, 1661, 584, 1665, 585, 1669, 586, 1673, 587, 1677, 588, 1681, 589, 1685, 590,
1689, 591, 1693, 595, 1697, 596, 1701, 598, 1705, 599, 1709, 601, 1713, 603, 171
7, 608, 1721, 611, 1725, 616, 1729, 617, 1733, 619, 1737, 623, 1741, 626, 1745,
629, 1749, 637, 1753, 640, 1757, 643, 1761, 648, 1765, 649, 1769, 650, 1773, 651
, 1777, 652, 1781, 658, 1785, 837, 1789, 891, 1793, 892, 1797, 893, 1801, 902, 1
805, 904, 1809, 905, 1813, 906, 1817, 908, 1821, 910, 1825, 911, 1829, 913, 1833
, 914, 1837, 915, 1841, 916, 1845, 917, 1849, 918, 1853, 919, 1857, 920, 1861, 9
21, 1865, 922, 1869, 923, 1873, 924, 1877, 925, 1881, 926, 1885, 927, 1889, 928,
1893, 929, 1897, 931, 6, 932, 1901, 933, 1905, 934, 1909, 935, 1913, 936, 1917,
937, 1921, 938, 1925, 939, 1929, 940, 1933, 941, 1937, 942, 1941, 943, 1945, 94
5, 1949, 946, 1953, 947, 1957, 948, 1961, 949, 1965, 950, 1969, 951, 1973, 952,
1977, 953, 1981, 954, 1985, 955, 1989, 956, 1993, 957, 1997, 958, 2001, 959, 200
5, 960, 2009, 961, 2013, 962, 2017, 963, 2021, 964, 2025, 965, 2029, 966, 2033,
967, 2037, 968, 2041, 969, 2045, 970, 2049, 971, 2053, 972, 2057, 973, 2061, 974
, 2065, 976, 2069, 977, 2073, 981, 2077, 982, 2081, 984, 2085, 985, 2089, 986, 2
093, 987, 2097, 988, 2101, 989, 2105, 990, 2109, 991, 2113, 992, 2117, 993, 2121
, 994, 2125, 995, 2129, 996, 2133, 997, 2137, 998, 2141, 999, 2145, 1000, 2149,
1001, 2153, 1002, 2157, 1003, 2161, 1004, 2165, 1005, 2169, 1006, 2173, 1007, 21
77, 1008, 2181, 1009, 2185, 1010, 2189, 1013, 2193, 1015, 2197, 1016, 2201, 1017
, 2205, 1018, 2209, 1019, 2213, 1021, 2217, 1022, 2221, 1023, 2225, 1024, 2229,
1025, 2233, 1026, 2237, 1027, 2241, 1028, 2245, 1029, 2249, 1030, 2253, 1031, 22
57, 1032, 2261, 1033, 2265, 1034, 2269, 1035, 2273, 1036, 2277, 1037, 2281, 1038
, 2285, 1039, 2289, 1040, 2293, 1041, 2297, 1042, 2301, 1043, 2305, 1044, 2309,
1045, 2313, 1046, 2317, 1047, 2321, 1048, 2325, 1049, 2329, 1050, 2333, 1051, 23
37, 1052, 2341, 1053, 2345, 1054, 2349, 1055, 2353, 1056, 2357, 1057, 2361, 1058
, 2365, 1059, 2369, 1060, 2373, 1061, 2377, 1062, 2381, 1063, 2385, 1064, 2389,
1065, 2393, 1066, 2397, 1067, 2401, 1068, 2405, 1069, 2409, 1070, 2413, 1071, 24
17, 1072, 2421, 1073, 2425, 1074, 2429, 1075, 2433, 1076, 2437, 1077, 2441, 1078
, 2445, 1079, 2449, 1080, 2453, 1081, 2457, 1082, 2461, 1083, 2465, 1084, 2469,
1085, 2473, 1086, 2477, 1087, 2481, 1088, 2485, 1089, 2489, 1090, 2493, 1091, 24
97, 1092, 2501, 1093, 2505, 1094, 2509, 1095, 2513, 1096, 2517, 1097, 2521, 1098
, 2525, 1099, 2529, 1100, 2533, 1101, 2537, 1102, 2541, 1103, 2545, 1104, 2549,
1105, 2553, 1106, 2557, 1107, 2561, 1108, 2565, 1109, 2569, 1110, 2573, 1111, 25
77, 1112, 2581, 1113, 2585, 1114, 2589, 1115, 2593, 1116, 2597, 1117, 2601, 1118
, 2605, 1119, 2609, 1120, 2613, 1121, 2617, 1122, 2621, 1123, 2625, 1124, 2629,
1125, 2633, 1126, 2637, 1127, 2641, 1128, 2645, 1129, 2649, 1130, 2653, 1131, 26
57, 1132, 2661, 1133, 2665, 1134, 2669, 1135, 2673, 1136, 2677, 1137, 2681, 1138
, 2685, 1139, 2689, 1140, 2693, 1141, 2697, 1142, 2701, 1143, 2705, 1144, 2709,
1145, 2713, 1146, 2717, 1147, 2721, 1148, 2725, 1149, 2729, 1150, 2733, 1151, 27
37, 1152, 2741, 1153, 2745, 1162, 2749, 1163, 2753, 1164, 2757, 1165, 2761, 1166
, 2765, 1167, 2769, 1168, 2773, 1169, 2777, 1170, 2781, 1171, 2785, 1172, 2789,
1173, 2793, 1174, 2797, 1175, 2801, 1176, 2805, 1177, 2809, 1178, 2813, 1179, 28
17, 1180, 2821, 1181, 2825, 1182, 2829, 1183, 2833, 1184, 2837, 1185, 2841, 1186
, 2845, 1187, 2849, 1188, 2853, 1189, 2857, 1190, 2861, 1191, 2865, 1192, 2869,
1193, 2873, 1194, 2877, 1195, 2881, 1196, 2885, 1197, 2889, 1198, 2893, 1199, 28
97, 1200, 2901, 1201, 2905, 1202, 2909, 1203, 2913, 1204, 2917, 1205, 2921, 1206
, 2925, 1207, 2929, 1208, 2933, 1209, 2937, 1210, 2941, 1211, 2945, 1212, 2949,
1213, 2953, 1214, 2957, 1215, 2961, 1216, 2965, 1217, 2969, 1218, 2973, 1219, 29
77, 1220, 2981, 1221, 2985, 1222, 2989, 1223, 2993, 1224, 2997, 1225, 3001, 1226
, 3005, 1227, 3009, 1228, 3013, 1229, 3017, 1230, 3021, 1231, 3025, 1232, 3029,
1233, 3033, 1234, 3037, 1235, 3041, 1236, 3045, 1237, 3049, 1238, 3053, 1239, 30
57, 1240, 3061, 1241, 3065, 1242, 3069, 1243, 3073, 1244, 3077, 1245, 3081, 1246
, 3085, 1247, 3089, 1248, 3093, 1249, 3097, 1250, 3101, 1251, 3105, 1252, 3109,
1253, 3113, 1254, 3117, 1255, 3121, 1256, 3125, 1257, 3129, 1258, 3133, 1259, 31
37, 1260, 3141, 1261, 3145, 1262, 3149, 1263, 3153, 1264, 3157, 1265, 3161, 1266
, 3165, 1267, 3169, 1268, 3173, 1269, 3177, 1270, 3181, 1271, 3185, 1272, 3189,
1273, 3193, 1274, 3197, 1275, 3201, 1276, 3205, 1277, 3209, 1278, 3213, 1279, 32
17, 1280, 3221, 1281, 3225, 1282, 3229, 1283, 3233, 1284, 3237, 1285, 3241, 1286
, 3245, 1287, 3249, 1288, 3253, 1289, 3257, 1290, 3261, 1291, 3265, 1292, 3269,
1293, 3273, 1294, 3277, 1295, 3281, 1296, 3285, 1297, 3289, 1298, 3293, 1299, 32
97, 1329, 3301, 1330, 3305, 1331, 3309, 1332, 3313, 1333, 3317, 1334, 3321, 1335
, 3325, 1336, 3329, 1337, 3333, 1338, 3337, 1339, 3341, 1340, 3345, 1341, 3349,
1342, 3353, 1343, 3357, 1344, 3361, 1345, 3365, 1346, 3369, 1347, 3373, 1348, 33
77, 1349, 3381, 1350, 3385, 1351, 3389, 1352, 3393, 1353, 3397, 1354, 3401, 1355
, 3405, 1356, 3409, 1357, 3413, 1358, 3417, 1359, 3421, 1360, 3425, 1361, 3429,
1362, 3433, 1363, 3437, 1364, 3441, 1365, 3445, 1366, 3449, 1377, 3453, 1378, 34
57, 1379, 3461, 1380, 3465, 1381, 3469, 1382, 3473, 1383, 3477, 1384, 3481, 1385
, 3485, 1386, 3489, 1387, 3493, 1388, 3497, 1389, 3501, 1390, 3505, 1391, 3509,
1392, 3513, 1393, 3517, 1394, 3521, 1395, 3525, 1396, 3529, 1397, 3533, 1398, 35
37, 1399, 3541, 1400, 3545, 1401, 3549, 1402, 3553, 1403, 3557, 1404, 3561, 1405
, 3565, 1406, 3569, 1407, 3573, 1408, 3577, 1409, 3581, 1410, 3585, 1411, 3589,
1412, 3593, 1413, 3597, 1414, 3601, 4256, 3605, 4257, 3609, 4258, 3613, 4259, 36
17, 4260, 3621, 4261, 3625, 4262, 3629, 4263, 3633, 4264, 3637, 4265, 3641, 4266
, 3645, 4267, 3649, 4268, 3653, 4269, 3657, 4270, 3661, 4271, 3665, 4272, 3669,
4273, 3673, 4274, 3677, 4275, 3681, 4276, 3685, 4277, 3689, 4278, 3693, 4279, 36
97, 4280, 3701, 4281, 3705, 4282, 3709, 4283, 3713, 4284, 3717, 4285, 3721, 4286
, 3725, 4287, 3729, 4288, 3733, 4289, 3737, 4290, 3741, 4291, 3745, 4292, 3749,
4293, 3753, 7549, 3757, 7680, 3761, 7681, 3765, 7682, 3769, 7683, 3773, 7684, 37
77, 7685, 3781, 7686, 3785, 7687, 3789, 7688, 3793, 7689, 3797, 7690, 3801, 7691
, 3805, 7692, 3809, 7693, 3813, 7694, 3817, 7695, 3821, 7696, 3825, 7697, 3829,
7698, 3833, 7699, 3837, 7700, 3841, 7701, 3845, 7702, 3849, 7703, 3853, 7704, 38
57, 7705, 3861, 7706, 3865, 7707, 3869, 7708, 3873, 7709, 3877, 7710, 3881, 7711
, 3885, 7712, 3889, 7713, 3893, 7714, 3897, 7715, 3901, 7716, 3905, 7717, 3909,
7718, 3913, 7719, 3917, 7720, 3921, 7721, 3925, 7722, 3929, 7723, 3933, 7724, 39
37, 7725, 3941, 7726, 3945, 7727, 3949, 7728, 3953, 7729, 3957, 7730, 3961, 7731
, 3965, 7732, 3969, 7733, 3973, 7734, 3977, 7735, 3981, 7736, 3985, 7737, 3989,
7738, 3993, 7739, 3997, 7740, 4001, 7741, 4005, 7742, 4009, 7743, 4013, 7744, 40
17, 7745, 4021, 7746, 4025, 7747, 4029, 7748, 4033, 7749, 4037, 7750, 4041, 7751
, 4045, 7752, 4049, 7753, 4053, 7754, 4057, 7755, 4061, 7756, 4065, 7757, 4069,
7758, 4073, 7759, 4077, 7760, 4081, 7761, 4085, 7762, 4089, 7763, 4093, 7764, 40
97, 7765, 4101, 7766, 4105, 7767, 4109, 7768, 4113, 7769, 4117, 7770, 4121, 7771
, 4125, 7772, 4129, 7773, 4133, 7774, 4137, 7775, 4141, 7776, 4145, 7777, 4149,
7778, 4153, 7779, 4157, 7780, 4161, 7781, 4165, 7782, 4169, 7783, 4173, 7784, 41
77, 7785, 4181, 7786, 4185, 7787, 4189, 7788, 4193, 7789, 4197, 7790, 4201, 7791
, 4205, 7792, 4209, 7793, 4213, 7794, 4217, 7795, 4221, 7796, 4225, 7797, 4229,
7798, 4233, 7799, 4237, 7800, 4241, 7801, 4245, 7802, 4249, 7803, 4253, 7804, 42
57, 7805, 4261, 7806, 4265, 7807, 4269, 7808, 4273, 7809, 4277, 7810, 4281, 7811
, 4285, 7812, 4289, 7813, 4293, 7814, 4297, 7815, 4301, 7816, 4305, 7817, 4309,
7818, 4313, 7819, 4317, 7820, 4321, 7821, 4325, 7822, 4329, 7823, 4333, 7824, 43
37, 7825, 4341, 7826, 4345, 7827, 4349, 7828, 4353, 7829, 4357, 7835, 4361, 7840
, 4365, 7841, 4369, 7842, 4373, 7843, 4377, 7844, 4381, 7845, 4385, 7846, 4389,
7847, 4393, 7848, 4397, 7849, 4401, 7850, 4405, 7851, 4409, 7852, 4413, 7853, 44
17, 7854, 4421, 7855, 4425, 7856, 4429, 7857, 4433, 7858, 4437, 7859, 4441, 7860
, 4445, 7861, 4449, 7862, 4453, 7863, 4457, 7864, 4461, 7865, 4465, 7866, 4469,
7867, 4473, 7868, 4477, 7869, 4481, 7870, 4485, 7871, 4489, 7872, 4493, 7873, 44
97, 7874, 4501, 7875, 4505, 7876, 4509, 7877, 4513, 7878, 4517, 7879, 4521, 7880
, 4525, 7881, 4529, 7882, 4533, 7883, 4537, 7884, 4541, 7885, 4545, 7886, 4549,
7887, 4553, 7888, 4557, 7889, 4561, 7890, 4565, 7891, 4569, 7892, 4573, 7893, 45
77, 7894, 4581, 7895, 4585, 7896, 4589, 7897, 4593, 7898, 4597, 7899, 4601, 7900
, 4605, 7901, 4609, 7902, 4613, 7903, 4617, 7904, 4621, 7905, 4625, 7906, 4629,
7907, 4633, 7908, 4637, 7909, 4641, 7910, 4645, 7911, 4649, 7912, 4653, 7913, 46
57, 7914, 4661, 7915, 4665, 7916, 4669, 7917, 4673, 7918, 4677, 7919, 4681, 7920
, 4685, 7921, 4689, 7922, 4693, 7923, 4697, 7924, 4701, 7925, 4705, 7926, 4709,
7927, 4713, 7928, 4717, 7929, 4721, 7936, 4725, 7937, 4729, 7938, 4733, 7939, 47
37, 7940, 4741, 7941, 4745, 7942, 4749, 7943, 4753, 7944, 4757, 7945, 4761, 7946
, 4765, 7947, 4769, 7948, 4773, 7949, 4777, 7950, 4781, 7951, 4785, 7952, 4789,
7953, 4793, 7954, 4797, 7955, 4801, 7956, 4805, 7957, 4809, 7960, 4813, 7961, 48
17, 7962, 4821, 7963, 4825, 7964, 4829, 7965, 4833, 7968, 4837, 7969, 4841, 7970
, 4845, 7971, 4849, 7972, 4853, 7973, 4857, 7974, 4861, 7975, 4865, 7976, 4869,
7977, 4873, 7978, 4877, 7979, 4881, 7980, 4885, 7981, 4889, 7982, 4893, 7983, 48
97, 7984, 4901, 7985, 4905, 7986, 4909, 7987, 4913, 7988, 4917, 7989, 4921, 7990
, 4925, 7991, 4929, 7992, 4933, 7993, 4937, 7994, 4941, 7995, 4945, 7996, 4949,
7997, 4953, 7998, 4957, 7999, 4961, 8000, 4965, 8001, 4969, 8002, 4973, 8003, 49
77, 8004, 4981, 8005, 4985, 8008, 4989, 8009, 4993, 8010, 4997, 8011, 5001, 8012
, 5005, 8013, 5009, 8017, 5013, 8019, 5017, 8021, 5021, 8023, 5025, 8025, 5029,
8027, 5033, 8029, 5037, 8031, 5041, 8032, 5045, 8033, 5049, 8034, 5053, 8035, 50
57, 8036, 5061, 8037, 5065, 8038, 5069, 8039, 5073, 8040, 5077, 8041, 5081, 8042
, 5085, 8043, 5089, 8044, 5093, 8045, 5097, 8046, 5101, 8047, 5105, 8048, 5109,
8049, 5113, 8050, 5117, 8051, 5121, 8052, 5125, 8053, 5129, 8054, 5133, 8055, 51
37, 8056, 5141, 8057, 5145, 8058, 5149, 8059, 5153, 8060, 5157, 8061, 5161, 8112
, 5165, 8113, 5169, 8120, 5173, 8121, 5177, 8122, 5181, 8123, 5185, 8126, 5189,
8136, 5193, 8137, 5197, 8138, 5201, 8139, 5205, 8144, 5209, 8145, 5213, 8152, 52
17, 8153, 5221, 8154, 5225, 8155, 5229, 8160, 5233, 8161, 5237, 8165, 5241, 8168
, 5245, 8169, 5249, 8170, 5253, 8171, 5257, 8172, 5261, 8184, 5265, 8185, 5269,
8186, 5273, 8187, 5277, 8498, 5281, 8526, 5285, 8544, 5289, 8545, 5293, 8546, 52
97, 8547, 5301, 8548, 5305, 8549, 5309, 8550, 5313, 8551, 5317, 8552, 5321, 8553
, 5325, 8554, 5329, 8555, 5333, 8556, 5337, 8557, 5341, 8558, 5345, 8559, 5349,
8560, 5353, 8561, 5357, 8562, 5361, 8563, 5365, 8564, 5369, 8565, 5373, 8566, 53
77, 8567, 5381, 8568, 5385, 8569, 5389, 8570, 5393, 8571, 5397, 8572, 5401, 8573
, 5405, 8574, 5409, 8575, 5413, 8579, 5417, 8580, 5421, 9398, 5425, 9399, 5429,
9400, 5433, 9401, 5437, 9402, 5441, 9403, 5445, 9404, 5449, 9405, 5453, 9406, 54
57, 9407, 5461, 9408, 5465, 9409, 5469, 9410, 5473, 9411, 5477, 9412, 5481, 9413
, 5485, 9414, 5489, 9415, 5493, 9416, 5497, 9417, 5501, 9418, 5505, 9419, 5509,
9420, 5513, 9421, 5517, 9422, 5521, 9423, 5525, 9424, 5529, 9425, 5533, 9426, 55
37, 9427, 5541, 9428, 5545, 9429, 5549, 9430, 5553, 9431, 5557, 9432, 5561, 9433
, 5565, 9434, 5569, 9435, 5573, 9436, 5577, 9437, 5581, 9438, 5585, 9439, 5589,
9440, 5593, 9441, 5597, 9442, 5601, 9443, 5605, 9444, 5609, 9445, 5613, 9446, 56
17, 9447, 5621, 9448, 5625, 9449, 5629, 11264, 5633, 11265, 5637, 11266, 5641, 1
1267, 5645, 11268, 5649, 11269, 5653, 11270, 5657, 11271, 5661, 11272, 5665, 112
73, 5669, 11274, 5673, 11275, 5677, 11276, 5681, 11277, 5685, 11278, 5689, 11279
, 5693, 11280, 5697, 11281, 5701, 11282, 5705, 11283, 5709, 11284, 5713, 11285,
5717, 11286, 5721, 11287, 5725, 11288, 5729, 11289, 5733, 11290, 5737, 11291, 57
41, 11292, 5745, 11293, 5749, 11294, 5753, 11295, 5757, 11296, 5761, 11297, 5765
, 11298, 5769, 11299, 5773, 11300, 5777, 11301, 5781, 11302, 5785, 11303, 5789,
11304, 5793, 11305, 5797, 11306, 5801, 11307, 5805, 11308, 5809, 11309, 5813, 11
310, 5817, 11312, 5821, 11313, 5825, 11314, 5829, 11315, 5833, 11316, 5837, 1131
7, 5841, 11318, 5845, 11319, 5849, 11320, 5853, 11321, 5857, 11322, 5861, 11323,
5865, 11324, 5869, 11325, 5873, 11326, 5877, 11327, 5881, 11328, 5885, 11329, 5
889, 11330, 5893, 11331, 5897, 11332, 5901, 11333, 5905, 11334, 5909, 11335, 591
3, 11336, 5917, 11337, 5921, 11338, 5925, 11339, 5929, 11340, 5933, 11341, 5937,
11342, 5941, 11343, 5945, 11344, 5949, 11345, 5953, 11346, 5957, 11347, 5961, 1
1348, 5965, 11349, 5969, 11350, 5973, 11351, 5977, 11352, 5981, 11353, 5985, 113
54, 5989, 11355, 5993, 11356, 5997, 11357, 6001, 11358, 6005, 11360, 6009, 11361
, 6013, 11362, 6017, 11363, 6021, 11364, 6025, 11365, 6029, 11366, 6033, 11367,
6037, 11368, 6041, 11369, 6045, 11370, 6049, 11371, 6053, 11372, 6057, 11381, 60
61, 11382, 6065, 11392, 6069, 11393, 6073, 11394, 6077, 11395, 6081, 11396, 6085
, 11397, 6089, 11398, 6093, 11399, 6097, 11400, 6101, 11401, 6105, 11402, 6109,
11403, 6113, 11404, 6117, 11405, 6121, 11406, 6125, 11407, 6129, 11408, 6133, 11
409, 6137, 11410, 6141, 11411, 6145, 11412, 6149, 11413, 6153, 11414, 6157, 1141
5, 6161, 11416, 6165, 11417, 6169, 11418, 6173, 11419, 6177, 11420, 6181, 11421,
6185, 11422, 6189, 11423, 6193, 11424, 6197, 11425, 6201, 11426, 6205, 11427, 6
209, 11428, 6213, 11429, 6217, 11430, 6221, 11431, 6225, 11432, 6229, 11433, 623
3, 11434, 6237, 11435, 6241, 11436, 6245, 11437, 6249, 11438, 6253, 11439, 6257,
11440, 6261, 11441, 6265, 11442, 6269, 11443, 6273, 11444, 6277, 11445, 6281, 1
1446, 6285, 11447, 6289, 11448, 6293, 11449, 6297, 11450, 6301, 11451, 6305, 114
52, 6309, 11453, 6313, 11454, 6317, 11455, 6321, 11456, 6325, 11457, 6329, 11458
, 6333, 11459, 6337, 11460, 6341, 11461, 6345, 11462, 6349, 11463, 6353, 11464,
6357, 11465, 6361, 11466, 6365, 11467, 6369, 11468, 6373, 11469, 6377, 11470, 63
81, 11471, 6385, 11472, 6389, 11473, 6393, 11474, 6397, 11475, 6401, 11476, 6405
, 11477, 6409, 11478, 6413, 11479, 6417, 11480, 6421, 11481, 6425, 11482, 6429,
11483, 6433, 11484, 6437, 11485, 6441, 11486, 6445, 11487, 6449, 11488, 6453, 11
489, 6457, 11490, 6461, 11491, 6465, 11520, 6469, 11521, 6473, 11522, 6477, 1152
3, 6481, 11524, 6485, 11525, 6489, 11526, 6493, 11527, 6497, 11528, 6501, 11529,
6505, 11530, 6509, 11531, 6513, 11532, 6517, 11533, 6521, 11534, 6525, 11535, 6
529, 11536, 6533, 11537, 6537, 11538, 6541, 11539, 6545, 11540, 6549, 11541, 655
3, 11542, 6557, 11543, 6561, 11544, 6565, 11545, 6569, 11546, 6573, 11547, 6577,
11548, 6581, 11549, 6585, 11550, 6589, 11551, 6593, 11552, 6597, 11553, 6601, 1
1554, 6605, 11555, 6609, 11556, 6613, 11557, 6617 }; // NOLINT |
| 680 static const MultiCharacterSpecialCase<4> kEcma262UnCanonicalizeMultiStrings1[]
= { {2, {65313, 65345}}, {2, {65314, 65346}}, {2, {65315, 65347}}, {2, {65316, 6
5348}}, {2, {65317, 65349}}, {2, {65318, 65350}}, {2, {65319, 65351}}, {2, {6532
0, 65352}}, {2, {65321, 65353}}, {2, {65322, 65354}}, {2, {65323, 65355}}, {2, {
65324, 65356}}, {2, {65325, 65357}}, {2, {65326, 65358}}, {2, {65327, 65359}}, {
2, {65328, 65360}}, {2, {65329, 65361}}, {2, {65330, 65362}}, {2, {65331, 65363}
}, {2, {65332, 65364}}, {2, {65333, 65365}}, {2, {65334, 65366}}, {2, {65335, 65
367}}, {2, {65336, 65368}}, {2, {65337, 65369}}, {2, {65338, 65370}}, {2, {65313
, 65345}}, {2, {65314, 65346}}, {2, {65315, 65347}}, {2, {65316, 65348}}, {2, {6
5317, 65349}}, {2, {65318, 65350}}, {2, {65319, 65351}}, {2, {65320, 65352}}, {2
, {65321, 65353}}, {2, {65322, 65354}}, {2, {65323, 65355}}, {2, {65324, 65356}}
, {2, {65325, 65357}}, {2, {65326, 65358}}, {2, {65327, 65359}}, {2, {65328, 653
60}}, {2, {65329, 65361}}, {2, {65330, 65362}}, {2, {65331, 65363}}, {2, {65332,
65364}}, {2, {65333, 65365}}, {2, {65334, 65366}}, {2, {65335, 65367}}, {2, {65
336, 65368}}, {2, {65337, 65369}}, {2, {65338, 65370}}, {0, {0}} }; // NOLINT |
| 681 static const uint16_t kEcma262UnCanonicalizeTable1Size = 52; |
| 682 static const int32_t kEcma262UnCanonicalizeTable1[104] = { 32545, 1, 32546, 5, 3
2547, 9, 32548, 13, 32549, 17, 32550, 21, 32551, 25, 32552, 29, 32553, 33, 32554
, 37, 32555, 41, 32556, 45, 32557, 49, 32558, 53, 32559, 57, 32560, 61, 32561, 6
5, 32562, 69, 32563, 73, 32564, 77, 32565, 81, 32566, 85, 32567, 89, 32568, 93,
32569, 97, 32570, 101, 32577, 105, 32578, 109, 32579, 113, 32580, 117, 32581, 12
1, 32582, 125, 32583, 129, 32584, 133, 32585, 137, 32586, 141, 32587, 145, 32588
, 149, 32589, 153, 32590, 157, 32591, 161, 32592, 165, 32593, 169, 32594, 173, 3
2595, 177, 32596, 181, 32597, 185, 32598, 189, 32599, 193, 32600, 197, 32601, 20
1, 32602, 205 }; // NOLINT |
| 683 static const MultiCharacterSpecialCase<4> kEcma262UnCanonicalizeMultiStrings2[]
= { {2, {66560, 66600}}, {2, {66561, 66601}}, {2, {66562, 66602}}, {2, {66563, 6
6603}}, {2, {66564, 66604}}, {2, {66565, 66605}}, {2, {66566, 66606}}, {2, {6656
7, 66607}}, {2, {66568, 66608}}, {2, {66569, 66609}}, {2, {66570, 66610}}, {2, {
66571, 66611}}, {2, {66572, 66612}}, {2, {66573, 66613}}, {2, {66574, 66614}}, {
2, {66575, 66615}}, {2, {66576, 66616}}, {2, {66577, 66617}}, {2, {66578, 66618}
}, {2, {66579, 66619}}, {2, {66580, 66620}}, {2, {66581, 66621}}, {2, {66582, 66
622}}, {2, {66583, 66623}}, {2, {66584, 66624}}, {2, {66585, 66625}}, {2, {66586
, 66626}}, {2, {66587, 66627}}, {2, {66588, 66628}}, {2, {66589, 66629}}, {2, {6
6590, 66630}}, {2, {66591, 66631}}, {2, {66592, 66632}}, {2, {66593, 66633}}, {2
, {66594, 66634}}, {2, {66595, 66635}}, {2, {66596, 66636}}, {2, {66597, 66637}}
, {2, {66598, 66638}}, {2, {66599, 66639}}, {2, {66560, 66600}}, {2, {66561, 666
01}}, {2, {66562, 66602}}, {2, {66563, 66603}}, {2, {66564, 66604}}, {2, {66565,
66605}}, {2, {66566, 66606}}, {2, {66567, 66607}}, {2, {66568, 66608}}, {2, {66
569, 66609}}, {2, {66570, 66610}}, {2, {66571, 66611}}, {2, {66572, 66612}}, {2,
{66573, 66613}}, {2, {66574, 66614}}, {2, {66575, 66615}}, {2, {66576, 66616}},
{2, {66577, 66617}}, {2, {66578, 66618}}, {2, {66579, 66619}}, {2, {66580, 6662
0}}, {2, {66581, 66621}}, {2, {66582, 66622}}, {2, {66583, 66623}}, {2, {66584,
66624}}, {2, {66585, 66625}}, {2, {66586, 66626}}, {2, {66587, 66627}}, {2, {665
88, 66628}}, {2, {66589, 66629}}, {2, {66590, 66630}}, {2, {66591, 66631}}, {2,
{66592, 66632}}, {2, {66593, 66633}}, {2, {66594, 66634}}, {2, {66595, 66635}},
{2, {66596, 66636}}, {2, {66597, 66637}}, {2, {66598, 66638}}, {2, {66599, 66639
}}, {0, {0}} }; // NOLINT |
| 684 static const uint16_t kEcma262UnCanonicalizeTable2Size = 80; |
| 685 static const int32_t kEcma262UnCanonicalizeTable2[160] = { 1024, 1, 1025, 5, 102
6, 9, 1027, 13, 1028, 17, 1029, 21, 1030, 25, 1031, 29, 1032, 33, 1033, 37, 1034
, 41, 1035, 45, 1036, 49, 1037, 53, 1038, 57, 1039, 61, 1040, 65, 1041, 69, 1042
, 73, 1043, 77, 1044, 81, 1045, 85, 1046, 89, 1047, 93, 1048, 97, 1049, 101, 105
0, 105, 1051, 109, 1052, 113, 1053, 117, 1054, 121, 1055, 125, 1056, 129, 1057,
133, 1058, 137, 1059, 141, 1060, 145, 1061, 149, 1062, 153, 1063, 157, 1064, 161
, 1065, 165, 1066, 169, 1067, 173, 1068, 177, 1069, 181, 1070, 185, 1071, 189, 1
072, 193, 1073, 197, 1074, 201, 1075, 205, 1076, 209, 1077, 213, 1078, 217, 1079
, 221, 1080, 225, 1081, 229, 1082, 233, 1083, 237, 1084, 241, 1085, 245, 1086, 2
49, 1087, 253, 1088, 257, 1089, 261, 1090, 265, 1091, 269, 1092, 273, 1093, 277,
1094, 281, 1095, 285, 1096, 289, 1097, 293, 1098, 297, 1099, 301, 1100, 305, 11
01, 309, 1102, 313, 1103, 317 }; // NOLINT |
| 686 int Ecma262UnCanonicalize::Convert(uchar c, |
| 687 uchar n, |
| 688 uchar* result, |
| 689 bool* allow_caching_ptr) { |
| 690 int chunk_index = c >> 15; |
| 691 switch (chunk_index) { |
| 692 case 0: return LookupMapping(kEcma262UnCanonicalizeTable0, |
| 693 kEcma262UnCanonicalizeTable0Size, |
| 694 kEcma262UnCanonicalizeMultiStrings0, |
| 695 c, |
| 696 n, |
| 697 result, |
| 698 allow_caching_ptr); |
| 699 case 1: return LookupMapping(kEcma262UnCanonicalizeTable1, |
| 700 kEcma262UnCanonicalizeTable1Size, |
| 701 kEcma262UnCanonicalizeMultiStrings1, |
| 702 c, |
| 703 n, |
| 704 result, |
| 705 allow_caching_ptr); |
| 706 case 2: return LookupMapping(kEcma262UnCanonicalizeTable2, |
| 707 kEcma262UnCanonicalizeTable2Size, |
| 708 kEcma262UnCanonicalizeMultiStrings2, |
| 709 c, |
| 710 n, |
| 711 result, |
| 712 allow_caching_ptr); |
| 713 default: return 0; |
| 714 } |
| 715 } |
| 716 |
| 717 static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings0[]
= { {0, {0}} }; // NOLINT |
| 718 static const uint16_t kCanonicalizationRangeTable0Size = 1838; |
| 719 static const int32_t kCanonicalizationRangeTable0[3676] = { 0, 67109124, 1073741
825, 0, 64, 0, 65, 67108708, 1073741890, -260, 90, -260, 91, 67108524, 107374191
6, -364, 96, -364, 97, 67108580, 1073741922, -388, 122, -388, 123, 67108604, 107
3741948, -492, 180, -492, 181, 67108144, 182, 67108176, 1073742007, -728, 191, -
728, 192, 67108188, 1073742017, -768, 214, -768, 215, 67108008, 216, 67108028, 1
073742041, -864, 222, -864, 223, 67107976, 224, 67108060, 1073742049, -896, 246,
-896, 247, 67107880, 248, 67107900, 1073742073, -992, 254, -992, 255, 67107848,
256, 67107844, 257, 67107840, 258, 67107836, 259, 67107832, 260, 67107828, 261,
67107824, 262, 67107820, 263, 67107816, 264, 67107812, 265, 67107808, 266, 6710
7804, 267, 67107800, 268, 67107796, 269, 67107792, 270, 67107788, 271, 67107784,
272, 67107780, 273, 67107776, 274, 67107772, 275, 67107768, 276, 67107764, 277,
67107760, 278, 67107756, 279, 67107752, 280, 67107748, 281, 67107744, 282, 6710
7740, 283, 67107736, 284, 67107732, 285, 67107728, 286, 67107724, 287, 67107720,
288, 67107716, 289, 67107712, 290, 67107708, 291, 67107704, 292, 67107700, 293,
67107696, 294, 67107692, 295, 67107688, 296, 67107684, 297, 67107680, 298, 6710
7676, 299, 67107672, 300, 67107668, 301, 67107664, 302, 67107660, 1073742127, 67
107656, 304, 67107656, 305, -1216, 306, 67107644, 307, 67107640, 308, 67107636,
309, 67107632, 310, 67107628, 311, 67107624, 312, 67107620, 313, 67107616, 314,
67107612, 315, 67107608, 316, 67107604, 317, 67107600, 318, 67107596, 319, 67107
592, 320, 67107588, 321, 67107584, 322, 67107580, 323, 67107576, 324, 67107572,
325, 67107568, 326, 67107564, 327, 67107560, 328, 67107556, 329, 67107552, 330,
67107548, 331, 67107544, 332, 67107540, 333, 67107536, 334, 67107532, 335, 67107
528, 336, 67107524, 337, 67107520, 338, 67107516, 339, 67107512, 340, 67107508,
341, 67107504, 342, 67107500, 343, 67107496, 344, 67107492, 345, 67107488, 346,
67107484, 347, 67107480, 348, 67107476, 349, 67107472, 350, 67107468, 351, 67107
464, 352, 67107460, 353, 67107456, 354, 67107452, 355, 67107448, 356, 67107444,
357, 67107440, 358, 67107436, 359, 67107432, 360, 67107428, 361, 67107424, 362,
67107420, 363, 67107416, 364, 67107412, 365, 67107408, 366, 67107404, 367, 67107
400, 368, 67107396, 369, 67107392, 370, 67107388, 371, 67107384, 372, 67107380,
373, 67107376, 374, 67107372, 375, 67107368, 376, 67107364, 377, 67107360, 378,
67107356, 379, 67107352, 380, 67107348, 381, 67107344, 382, 67107340, 383, 67107
336, 384, 67107332, 385, 67107328, 386, 67107324, 387, 67107320, 388, 67107316,
389, 67107312, 390, 67107308, 391, 67107304, 1073742216, 67107300, 393, 67107300
, 394, -1572, 395, 67107288, 396, 67107284, 397, 67107280, 398, 67107276, 399, 6
7107272, 400, 67107268, 401, 67107264, 402, 67107260, 403, 67107256, 404, 671072
52, 405, 67107248, 406, 67107244, 407, 67107240, 408, 67107236, 409, 67107232, 4
10, 67107228, 411, 67107224, 412, 67107220, 413, 67107216, 414, 67107212, 415, 6
7107208, 416, 67107204, 417, 67107200, 418, 67107196, 419, 67107192, 420, 671071
88, 421, 67107184, 422, 67107180, 423, 67107176, 424, 67107172, 1073742249, 6710
7168, 426, 67107168, 427, -1704, 428, 67107156, 429, 67107152, 430, 67107148, 43
1, 67107144, 1073742256, 67107140, 433, 67107140, 434, -1732, 435, 67107128, 436
, 67107124, 437, 67107120, 438, 67107116, 439, 67107112, 440, 67107108, 10737422
65, 67107104, 442, 67107104, 443, -1768, 444, 67107092, 445, 67107088, 446, 6710
7084, 447, 67107080, 448, 67107088, 1073742273, -1792, 451, -1792, 452, 67107060
, 453, 67107056, 454, 67107052, 455, 67107048, 456, 67107044, 457, 67107040, 458
, 67107036, 459, 67107032, 460, 67107028, 461, 67107024, 462, 67107020, 463, 671
07016, 464, 67107012, 465, 67107008, 466, 67107004, 467, 67107000, 468, 67106996
, 469, 67106992, 470, 67106988, 471, 67106984, 472, 67106980, 473, 67106976, 474
, 67106972, 475, 67106968, 476, 67106964, 477, 67106960, 478, 67106956, 479, 671
06952, 480, 67106948, 481, 67106944, 482, 67106940, 483, 67106936, 484, 67106932
, 485, 67106928, 486, 67106924, 487, 67106920, 488, 67106916, 489, 67106912, 490
, 67106908, 491, 67106904, 492, 67106900, 493, 67106896, 494, 67106892, 495, 671
06888, 496, 67106884, 497, 67106880, 498, 67106876, 499, 67106872, 500, 67106868
, 501, 67106864, 502, 67106860, 503, 67106856, 504, 67106852, 505, 67106848, 506
, 67106844, 507, 67106840, 508, 67106836, 509, 67106832, 510, 67106828, 511, 671
06824, 512, 67106820, 513, 67106816, 514, 67106812, 515, 67106808, 516, 67106804
, 517, 67106800, 518, 67106796, 519, 67106792, 520, 67106788, 521, 67106784, 522
, 67106780, 523, 67106776, 524, 67106772, 525, 67106768, 526, 67106764, 527, 671
06760, 528, 67106756, 529, 67106752, 530, 67106748, 531, 67106744, 532, 67106740
, 533, 67106736, 534, 67106732, 535, 67106728, 536, 67106724, 537, 67106720, 538
, 67106716, 539, 67106712, 540, 67106708, 541, 67106704, 542, 67106700, 543, 671
06696, 544, 67106692, 545, 67106688, 546, 67106684, 547, 67106680, 548, 67106676
, 549, 67106672, 550, 67106668, 551, 67106664, 552, 67106660, 553, 67106656, 554
, 67106652, 555, 67106648, 556, 67106644, 557, 67106640, 558, 67106636, 559, 671
06632, 560, 67106628, 561, 67106624, 562, 67106620, 563, 67106616, 564, 67106636
, 1073742389, -2256, 570, -2256, 571, 67106584, 572, 67106580, 573, 67106576, 57
4, 67106580, 1073742399, -2296, 576, -2296, 577, 67106560, 578, 67106556, 579, 6
7106552, 580, 67106548, 581, 67106544, 582, 67106540, 583, 67106536, 584, 671065
32, 585, 67106528, 586, 67106524, 587, 67106520, 588, 67106516, 589, 67106512, 5
90, 67106508, 591, 67106504, 592, 67106508, 1073742417, -2368, 594, -2368, 595,
67106488, 596, 67106484, 1073742421, 67106480, 598, 67106480, 599, -2392, 600, 6
7106468, 601, 67106464, 602, 67106460, 603, 67106456, 604, 67106464, 1073742429,
-2416, 607, -2416, 1073742432, 67106436, 609, 67106436, 610, -2436, 611, 671064
24, 612, 67106432, 1073742437, -2448, 615, -2448, 616, 67106404, 617, 67106400,
618, 67106396, 619, 67106392, 620, 67106396, 1073742445, -2480, 622, -2480, 1073
742447, 67106376, 624, 67106376, 625, -2496, 1073742450, 67106364, 627, 67106364
, 628, -2508, 629, 67106352, 630, 67106372, 1073742455, -2520, 636, -2520, 10737
42461, 67106320, 638, 67106320, 639, -2552, 1073742464, 67106308, 641, 67106308,
642, -2564, 643, 67106296, 644, 67106304, 1073742469, -2576, 647, -2576, 648, 6
7106276, 1073742473, 67106272, 650, 67106272, 651, -2600, 652, 67106260, 653, 67
106272, 1073742478, -2612, 657, -2612, 658, 67106236, 659, 67106940, 1073742484,
-2636, 836, -2636, 837, 67105520, 838, 67105724, 1073742663, -3352, 879, -3352,
1073742708, -3352, 885, -3352, 890, -3352, 891, 67105312, 1073742716, -3564, 89
3, -3564, 894, 67105320, 1073742724, -3576, 901, -3576, 902, 67105260, 903, 6710
5256, 904, 67105260, 1073742729, -3616, 906, -3616, 908, 67105236, 910, 67105232
, 911, -3640, 912, 67105220, 913, 67105216, 1073742738, 67105212, 915, 67105212,
916, -3660, 1073742741, 67105200, 918, 67105200, 919, -3672, 920, 67105188, 921
, 67105184, 922, 67105180, 923, 67105176, 924, 67105172, 925, 67105176, 10737427
50, -3700, 927, -3700, 928, 67105156, 929, 67105152, 1073742755, 6, 932, 6710514
4, 933, -3728, 934, 67105132, 935, 67105144, 1073742760, -3740, 939, -3740, 940,
67105108, 941, 67105112, 1073742766, -3764, 943, -3764, 944, 67105092, 945, 671
05088, 1073742770, 67105084, 947, 67105084, 948, -3788, 1073742773, 67105072, 95
0, 67105072, 951, -3800, 952, 67105060, 953, 67105056, 954, 67105052, 955, 67105
048, 956, 67105044, 957, 67105048, 1073742782, -3828, 959, -3828, 960, 67105028,
961, 67105024, 962, 67105020, 1073742787, 67105016, 964, 67105016, 965, -3856,
966, 67105004, 967, 67105016, 1073742792, -3868, 971, -3868, 1073742796, 6710498
0, 973, 67104980, 974, -3892, 976, 67104964, 977, 67104960, 978, 67104964, 10737
42803, -3912, 980, -3912, 981, 67104944, 982, 67104940, 983, 67104936, 984, 6710
4932, 985, 67104928, 986, 67104924, 987, 67104920, 988, 67104916, 989, 67104912,
990, 67104908, 991, 67104904, 992, 67104900, 993, 67104896, 994, 67104892, 995,
67104888, 996, 67104884, 997, 67104880, 998, 67104876, 999, 67104872, 1000, 671
04868, 1001, 67104864, 1002, 67104860, 1003, 67104856, 1004, 67104852, 1005, 671
04848, 1006, 67104844, 1007, 67104840, 1008, 67104836, 1009, 67104832, 107374283
4, 67104828, 1011, 67104828, 1012, -4044, 1013, 67104816, 1014, 67104812, 1015,
67104808, 1016, 67104804, 1017, 67104800, 1018, 67104796, 1019, 67104792, 1020,
67104788, 1021, 67104792, 1073742846, -4084, 1023, -4084, 1024, 67104832, 107374
2849, -4096, 1039, -4096, 1040, 67104832, 1073742865, -4160, 1071, -4160, 1072,
67104704, 1073742897, -4288, 1103, -4288, 1104, 67104512, 1073742929, -4416, 111
9, -4416, 1120, 67104388, 1121, 67104384, 1122, 67104380, 1123, 67104376, 1124,
67104372, 1125, 67104368, 1126, 67104364, 1127, 67104360, 1128, 67104356, 1129,
67104352, 1130, 67104348, 1131, 67104344, 1132, 67104340, 1133, 67104336, 1134,
67104332, 1135, 67104328, 1136, 67104324, 1137, 67104320, 1138, 67104316, 1139,
67104312, 1140, 67104308, 1141, 67104304, 1142, 67104300, 1143, 67104296, 1144,
67104292, 1145, 67104288, 1146, 67104284, 1147, 67104280, 1148, 67104276, 1149,
67104272, 1150, 67104268, 1151, 67104264, 1152, 67104260, 1153, 67104256, 1154,
67104280, 1073742979, -4616, 1158, -4616, 1073742984, -4616, 1161, -4616, 1162,
67104220, 1163, 67104216, 1164, 67104212, 1165, 67104208, 1166, 67104204, 1167,
67104200, 1168, 67104196, 1169, 67104192, 1170, 67104188, 1171, 67104184, 1172,
67104180, 1173, 67104176, 1174, 67104172, 1175, 67104168, 1176, 67104164, 1177,
67104160, 1178, 67104156, 1179, 67104152, 1180, 67104148, 1181, 67104144, 1182,
67104140, 1183, 67104136, 1184, 67104132, 1185, 67104128, 1186, 67104124, 1187,
67104120, 1188, 67104116, 1189, 67104112, 1190, 67104108, 1191, 67104104, 1192,
67104100, 1193, 67104096, 1194, 67104092, 1195, 67104088, 1196, 67104084, 1197,
67104080, 1198, 67104076, 1199, 67104072, 1200, 67104068, 1201, 67104064, 1202,
67104060, 1203, 67104056, 1204, 67104052, 1205, 67104048, 1206, 67104044, 1207,
67104040, 1208, 67104036, 1209, 67104032, 1210, 67104028, 1211, 67104024, 1212,
67104020, 1213, 67104016, 1214, 67104012, 1215, 67104008, 1216, 67104004, 1217,
67104000, 1218, 67103996, 1219, 67103992, 1220, 67103988, 1221, 67103984, 1222,
67103980, 1223, 67103976, 1224, 67103972, 1225, 67103968, 1226, 67103964, 1227,
67103960, 1228, 67103956, 1229, 67103952, 1230, 67103948, 1231, 67103944, 1232,
67103940, 1233, 67103936, 1234, 67103932, 1235, 67103928, 1236, 67103924, 1237,
67103920, 1238, 67103916, 1239, 67103912, 1240, 67103908, 1241, 67103904, 1242,
67103900, 1243, 67103896, 1244, 67103892, 1245, 67103888, 1246, 67103884, 1247,
67103880, 1248, 67103876, 1249, 67103872, 1250, 67103868, 1251, 67103864, 1252,
67103860, 1253, 67103856, 1254, 67103852, 1255, 67103848, 1256, 67103844, 1257,
67103840, 1258, 67103836, 1259, 67103832, 1260, 67103828, 1261, 67103824, 1262,
67103820, 1263, 67103816, 1264, 67103812, 1265, 67103808, 1266, 67103804, 1267,
67103800, 1268, 67103796, 1269, 67103792, 1270, 67103788, 1271, 67103784, 1272,
67103780, 1273, 67103776, 1274, 67103772, 1275, 67103768, 1276, 67103764, 1277,
67103760, 1278, 67103756, 1279, 67103752, 1280, 67103748, 1281, 67103744, 1282,
67103740, 1283, 67103736, 1284, 67103732, 1285, 67103728, 1286, 67103724, 1287,
67103720, 1288, 67103716, 1289, 67103712, 1290, 67103708, 1291, 67103704, 1292,
67103700, 1293, 67103696, 1294, 67103692, 1295, 67103688, 1296, 67103684, 1297,
67103680, 1298, 67103676, 1299, 67103672, 1329, 67103700, 1073743154, -5316, 136
6, -5316, 1073743193, -5468, 1375, -5468, 1377, 67103508, 1073743202, -5508, 141
4, -5508, 1415, 67114568, 1073743241, -5660, 1418, -5660, 1073743249, -5660, 147
9, -5660, 1073743312, -5660, 1514, -5660, 1073743344, -5660, 1524, -5660, 107374
3360, -5660, 1539, -5660, 1073743371, -5660, 1557, -5660, 1563, -5660, 107374339
0, -5660, 1567, -5660, 1073743393, -5660, 1594, -5660, 1073743424, -5660, 1630,
-5660, 1073743456, -5660, 1805, -5660, 1073743631, -5660, 1866, -5660, 107374369
3, -5660, 1901, -5660, 1073743744, -5660, 1969, -5660, 1073743808, -5660, 2042,
-5660, 1073744129, -5660, 2361, -5660, 1073744188, -5660, 2381, -5660, 107374420
8, -5660, 2388, -5660, 1073744216, -5660, 2416, -5660, 1073744251, -5660, 2431,
-5660, 1073744257, -5660, 2435, -5660, 1073744261, -5660, 2444, -5660, 107374427
1, -5660, 2448, -5660, 1073744275, -5660, 2472, -5660, 1073744298, -5660, 2480,
-5660, 2482, -5660, 1073744310, -5660, 2489, -5660, 1073744316, -5660, 2500, -56
60, 1073744327, -5660, 2504, -5660, 1073744331, -5660, 2510, -5660, 2519, -5660,
1073744348, -5660, 2525, -5660, 1073744351, -5660, 2531, -5660, 1073744358, -56
60, 2554, -5660, 1073744385, -5660, 2563, -5660, 1073744389, -5660, 2570, -5660,
1073744399, -5660, 2576, -5660, 1073744403, -5660, 2600, -5660, 1073744426, -56
60, 2608, -5660, 1073744434, -5660, 2611, -5660, 1073744437, -5660, 2614, -5660,
1073744440, -5660, 2617, -5660, 2620, -5660, 1073744446, -5660, 2626, -5660, 10
73744455, -5660, 2632, -5660, 1073744459, -5660, 2637, -5660, 1073744473, -5660,
2652, -5660, 2654, -5660, 1073744486, -5660, 2676, -5660, 1073744513, -5660, 26
91, -5660, 1073744517, -5660, 2701, -5660, 1073744527, -5660, 2705, -5660, 10737
44531, -5660, 2728, -5660, 1073744554, -5660, 2736, -5660, 1073744562, -5660, 27
39, -5660, 1073744565, -5660, 2745, -5660, 1073744572, -5660, 2757, -5660, 10737
44583, -5660, 2761, -5660, 1073744587, -5660, 2765, -5660, 2768, -5660, 10737446
08, -5660, 2787, -5660, 1073744614, -5660, 2799, -5660, 2801, -5660, 1073744641,
-5660, 2819, -5660, 1073744645, -5660, 2828, -5660, 1073744655, -5660, 2832, -5
660, 1073744659, -5660, 2856, -5660, 1073744682, -5660, 2864, -5660, 1073744690,
-5660, 2867, -5660, 1073744693, -5660, 2873, -5660, 1073744700, -5660, 2883, -5
660, 1073744711, -5660, 2888, -5660, 1073744715, -5660, 2893, -5660, 1073744726,
-5660, 2903, -5660, 1073744732, -5660, 2909, -5660, 1073744735, -5660, 2913, -5
660, 1073744742, -5660, 2929, -5660, 1073744770, -5660, 2947, -5660, 1073744773,
-5660, 2954, -5660, 1073744782, -5660, 2960, -5660, 1073744786, -5660, 2965, -5
660, 1073744793, -5660, 2970, -5660, 2972, -5660, 1073744798, -5660, 2975, -5660
, 1073744803, -5660, 2980, -5660, 1073744808, -5660, 2986, -5660, 1073744814, -5
660, 3001, -5660, 1073744830, -5660, 3010, -5660, 1073744838, -5660, 3016, -5660
, 1073744842, -5660, 3021, -5660, 3031, -5660, 1073744870, -5660, 3066, -5660, 1
073744897, -5660, 3075, -5660, 1073744901, -5660, 3084, -5660, 1073744910, -5660
, 3088, -5660, 1073744914, -5660, 3112, -5660, 1073744938, -5660, 3123, -5660, 1
073744949, -5660, 3129, -5660, 1073744958, -5660, 3140, -5660, 1073744966, -5660
, 3144, -5660, 1073744970, -5660, 3149, -5660, 1073744981, -5660, 3158, -5660, 1
073744992, -5660, 3169, -5660, 1073744998, -5660, 3183, -5660, 1073745026, -5660
, 3203, -5660, 1073745029, -5660, 3212, -5660, 1073745038, -5660, 3216, -5660, 1
073745042, -5660, 3240, -5660, 1073745066, -5660, 3251, -5660, 1073745077, -5660
, 3257, -5660, 1073745084, -5660, 3268, -5660, 1073745094, -5660, 3272, -5660, 1
073745098, -5660, 3277, -5660, 1073745109, -5660, 3286, -5660, 3294, -5660, 1073
745120, -5660, 3299, -5660, 1073745126, -5660, 3311, -5660, 1073745137, -5660, 3
314, -5660, 1073745154, -5660, 3331, -5660, 1073745157, -5660, 3340, -5660, 1073
745166, -5660, 3344, -5660, 1073745170, -5660, 3368, -5660, 1073745194, -5660, 3
385, -5660, 1073745214, -5660, 3395, -5660, 1073745222, -5660, 3400, -5660, 1073
745226, -5660, 3405, -5660, 3415, -5660, 1073745248, -5660, 3425, -5660, 1073745
254, -5660, 3439, -5660, 1073745282, -5660, 3459, -5660, 1073745285, -5660, 3478
, -5660, 1073745306, -5660, 3505, -5660, 1073745331, -5660, 3515, -5660, 3517, -
5660, 1073745344, -5660, 3526, -5660, 3530, -5660, 1073745359, -5660, 3540, -566
0, 3542, -5660, 1073745368, -5660, 3551, -5660, 1073745394, -5660, 3572, -5660,
1073745409, -5660, 3642, -5660, 1073745471, -5660, 3675, -5660, 1073745537, -566
0, 3714, -5660, 3716, -5660, 1073745543, -5660, 3720, -5660, 3722, -5660, 3725,
-5660, 1073745556, -5660, 3735, -5660, 1073745561, -5660, 3743, -5660, 107374556
9, -5660, 3747, -5660, 3749, -5660, 3751, -5660, 1073745578, -5660, 3755, -5660,
1073745581, -5660, 3769, -5660, 1073745595, -5660, 3773, -5660, 1073745600, -56
60, 3780, -5660, 3782, -5660, 1073745608, -5660, 3789, -5660, 1073745616, -5660,
3801, -5660, 1073745628, -5660, 3805, -5660, 1073745664, -5660, 3911, -5660, 10
73745737, -5660, 3946, -5660, 1073745777, -5660, 3979, -5660, 1073745808, -5660,
3991, -5660, 1073745817, -5660, 4028, -5660, 1073745854, -5660, 4044, -5660, 10
73745871, -5660, 4049, -5660, 1073745920, -5660, 4129, -5660, 1073745955, -5660,
4135, -5660, 1073745961, -5660, 4138, -5660, 1073745964, -5660, 4146, -5660, 10
73745974, -5660, 4153, -5660, 1073745984, -5660, 4185, -5660, 4256, 67091992, 10
73746081, -17024, 4293, -17024, 1073746128, -17176, 4348, -17176, 1073746176, -1
7176, 4441, -17176, 1073746271, -17176, 4514, -17176, 1073746344, -17176, 4601,
-17176, 1073746432, -17176, 4680, -17176, 1073746506, -17176, 4685, -17176, 1073
746512, -17176, 4694, -17176, 4696, -17176, 1073746522, -17176, 4701, -17176, 10
73746528, -17176, 4744, -17176, 1073746570, -17176, 4749, -17176, 1073746576, -1
7176, 4784, -17176, 1073746610, -17176, 4789, -17176, 1073746616, -17176, 4798,
-17176, 4800, -17176, 1073746626, -17176, 4805, -17176, 1073746632, -17176, 4822
, -17176, 1073746648, -17176, 4880, -17176, 1073746706, -17176, 4885, -17176, 10
73746712, -17176, 4954, -17176, 1073746783, -17176, 4988, -17176, 1073746816, -1
7176, 5017, -17176, 1073746848, -17176, 5108, -17176, 1073746945, -17176, 5750,
-17176, 1073747584, -17176, 5788, -17176, 1073747616, -17176, 5872, -17176, 1073
747712, -17176, 5900, -17176, 1073747726, -17176, 5908, -17176, 1073747744, -171
76, 5942, -17176, 1073747776, -17176, 5971, -17176, 1073747808, -17176, 5996, -1
7176, 1073747822, -17176, 6000, -17176, 1073747826, -17176, 6003, -17176, 107374
7840, -17176, 6109, -17176, 1073747936, -17176, 6121, -17176, 1073747952, -17176
, 6137, -17176, 1073747968, -17176, 6158, -17176, 1073747984, -17176, 6169, -171
76, 1073748000, -17176, 6263, -17176, 1073748096, -17176, 6313, -17176, 10737482
24, -17176, 6428, -17176, 1073748256, -17176, 6443, -17176, 1073748272, -17176,
6459, -17176, 6464, -17176, 1073748292, -17176, 6509, -17176, 1073748336, -17176
, 6516, -17176, 1073748352, -17176, 6569, -17176, 1073748400, -17176, 6601, -171
76, 1073748432, -17176, 6617, -17176, 1073748446, -17176, 6683, -17176, 10737485
10, -17176, 6687, -17176, 1073748736, -17176, 6987, -17176, 1073748816, -17176,
7036, -17176, 1073749248, -17176, 7548, -17176, 7549, 67078672, 7550, 67079184,
1073749375, -30200, 7626, -30200, 1073749502, -30200, 7679, -30200, 7680, 670781
48, 7681, 67078144, 7682, 67078140, 7683, 67078136, 7684, 67078132, 7685, 670781
28, 7686, 67078124, 7687, 67078120, 7688, 67078116, 7689, 67078112, 7690, 670781
08, 7691, 67078104, 7692, 67078100, 7693, 67078096, 7694, 67078092, 7695, 670780
88, 7696, 67078084, 7697, 67078080, 7698, 67078076, 7699, 67078072, 7700, 670780
68, 7701, 67078064, 7702, 67078060, 7703, 67078056, 7704, 67078052, 7705, 670780
48, 7706, 67078044, 7707, 67078040, 7708, 67078036, 7709, 67078032, 7710, 670780
28, 7711, 67078024, 7712, 67078020, 7713, 67078016, 7714, 67078012, 7715, 670780
08, 7716, 67078004, 7717, 67078000, 7718, 67077996, 7719, 67077992, 7720, 670779
88, 7721, 67077984, 7722, 67077980, 7723, 67077976, 7724, 67077972, 7725, 670779
68, 7726, 67077964, 7727, 67077960, 7728, 67077956, 7729, 67077952, 7730, 670779
48, 7731, 67077944, 7732, 67077940, 7733, 67077936, 7734, 67077932, 7735, 670779
28, 7736, 67077924, 7737, 67077920, 7738, 67077916, 7739, 67077912, 7740, 670779
08, 7741, 67077904, 7742, 67077900, 7743, 67077896, 7744, 67077892, 7745, 670778
88, 7746, 67077884, 7747, 67077880, 7748, 67077876, 7749, 67077872, 7750, 670778
68, 7751, 67077864, 7752, 67077860, 7753, 67077856, 7754, 67077852, 7755, 670778
48, 7756, 67077844, 7757, 67077840, 7758, 67077836, 7759, 67077832, 7760, 670778
28, 7761, 67077824, 7762, 67077820, 7763, 67077816, 7764, 67077812, 7765, 670778
08, 7766, 67077804, 7767, 67077800, 7768, 67077796, 7769, 67077792, 7770, 670777
88, 7771, 67077784, 7772, 67077780, 7773, 67077776, 7774, 67077772, 7775, 670777
68, 7776, 67077764, 7777, 67077760, 7778, 67077756, 7779, 67077752, 7780, 670777
48, 7781, 67077744, 7782, 67077740, 7783, 67077736, 7784, 67077732, 7785, 670777
28, 7786, 67077724, 7787, 67077720, 7788, 67077716, 7789, 67077712, 7790, 670777
08, 7791, 67077704, 7792, 67077700, 7793, 67077696, 7794, 67077692, 7795, 670776
88, 7796, 67077684, 7797, 67077680, 7798, 67077676, 7799, 67077672, 7800, 670776
68, 7801, 67077664, 7802, 67077660, 7803, 67077656, 7804, 67077652, 7805, 670776
48, 7806, 67077644, 7807, 67077640, 7808, 67077636, 7809, 67077632, 7810, 670776
28, 7811, 67077624, 7812, 67077620, 7813, 67077616, 7814, 67077612, 7815, 670776
08, 7816, 67077604, 7817, 67077600, 7818, 67077596, 7819, 67077592, 7820, 670775
88, 7821, 67077584, 7822, 67077580, 7823, 67077576, 7824, 67077572, 7825, 670775
68, 7826, 67077564, 7827, 67077560, 7828, 67077556, 7829, 67077552, 7830, 670775
64, 1073749655, -31320, 7834, -31320, 7835, 67077528, 7840, 67077508, 7841, 6707
7504, 7842, 67077500, 7843, 67077496, 7844, 67077492, 7845, 67077488, 7846, 6707
7484, 7847, 67077480, 7848, 67077476, 7849, 67077472, 7850, 67077468, 7851, 6707
7464, 7852, 67077460, 7853, 67077456, 7854, 67077452, 7855, 67077448, 7856, 6707
7444, 7857, 67077440, 7858, 67077436, 7859, 67077432, 7860, 67077428, 7861, 6707
7424, 7862, 67077420, 7863, 67077416, 7864, 67077412, 7865, 67077408, 7866, 6707
7404, 7867, 67077400, 7868, 67077396, 7869, 67077392, 7870, 67077388, 7871, 6707
7384, 7872, 67077380, 7873, 67077376, 7874, 67077372, 7875, 67077368, 7876, 6707
7364, 7877, 67077360, 7878, 67077356, 7879, 67077352, 7880, 67077348, 7881, 6707
7344, 7882, 67077340, 7883, 67077336, 7884, 67077332, 7885, 67077328, 7886, 6707
7324, 7887, 67077320, 7888, 67077316, 7889, 67077312, 7890, 67077308, 7891, 6707
7304, 7892, 67077300, 7893, 67077296, 7894, 67077292, 7895, 67077288, 7896, 6707
7284, 7897, 67077280, 7898, 67077276, 7899, 67077272, 7900, 67077268, 7901, 6707
7264, 7902, 67077260, 7903, 67077256, 7904, 67077252, 7905, 67077248, 7906, 6707
7244, 7907, 67077240, 7908, 67077236, 7909, 67077232, 7910, 67077228, 7911, 6707
7224, 7912, 67077220, 7913, 67077216, 7914, 67077212, 7915, 67077208, 7916, 6707
7204, 7917, 67077200, 7918, 67077196, 7919, 67077192, 7920, 67077188, 7921, 6707
7184, 7922, 67077180, 7923, 67077176, 7924, 67077172, 7925, 67077168, 7926, 6707
7164, 7927, 67077160, 7928, 67077156, 7929, 67077152, 7936, 67077152, 1073749761
, -31744, 7943, -31744, 7944, 67077120, 1073749769, -31776, 7951, -31776, 7952,
67077080, 1073749777, -31808, 7957, -31808, 7960, 67077048, 1073749785, -31840,
7965, -31840, 7968, 67077024, 1073749793, -31872, 7975, -31872, 7976, 67076992,
1073749801, -31904, 7983, -31904, 7984, 67076960, 1073749809, -31936, 7991, -319
36, 7992, 67076928, 1073749817, -31968, 7999, -31968, 8000, 67076888, 1073749825
, -32000, 8005, -32000, 8008, 67076856, 1073749833, -32032, 8013, -32032, 8016,
-32056, 8017, 67076800, 8018, 67076796, 8019, 67076792, 8020, 67076788, 8021, 67
076784, 8022, 67076780, 8023, 67076776, 8025, 67076768, 8027, 67076760, 8029, 67
076752, 8031, 67076744, 8032, 67076768, 1073749857, -32128, 8039, -32128, 8040,
67076736, 1073749865, -32160, 8047, -32160, 8048, 67076680, 8049, -32192, 8050,
67076680, 1073749875, -32200, 8053, -32200, 8054, 67076656, 8055, -32216, 8056,
67076648, 8057, -32224, 8058, 67076640, 8059, -32232, 8060, 67076632, 8061, -322
40, 1073749888, -32248, 8111, -32248, 8112, 67076424, 8113, -32448, 8114, 670764
32, 1073749939, -32456, 8116, -32456, 1073749942, -32456, 8119, -32456, 8120, 67
076392, 8121, -32480, 8122, 67076384, 8123, -32488, 8124, 67076376, 8125, -32496
, 8126, 67076364, 8127, 67076392, 1073749952, -32508, 8132, -32508, 1073749958,
-32508, 8135, -32508, 8136, 67076336, 1073749961, -32544, 8139, -32544, 8140, 67
076320, 1073749965, -32560, 8143, -32560, 8144, 67076296, 8145, -32576, 8146, 67
076304, 8147, -32584, 1073749974, -32584, 8151, -32584, 8152, 67076264, 8153, -3
2608, 8154, 67076256, 8155, -32616, 1073749981, -32624, 8159, -32624, 8160, 6707
6232, 8161, -32640, 8162, 67076228, 1073749987, -32648, 8164, -32648, 1073749989
, 67076208, 8166, 67076208, 8167, -32664, 8168, 67076200, 8169, -32672, 8170, 67
076192, 8171, -32680, 8172, 67076180, 8173, 67076216, 1073749998, -32692, 8175,
-32692, 1073750002, -32692, 8180, -32692, 1073750006, -32692, 8183, -32692, 8184
, 67076136, 8185, -32736, 8186, 67076128, 8187, -32744, 8188, 67077352, 10737500
13, -32752, 8190, -32752, 1073750016, -32752, 8291, -32752, 1073750122, -32752,
8305, -32752, 1073750132, -32752, 8334, -32752, 1073750160, -32752, 8340, -32752
, 1073750176, -32752, 8373, -32752, 1073750224, -32752, 8431, -32752, 1073750272
, -32752, 8497, -32752, 8498, 67074876, 8499, 67074976, 1073750324, -33996, 8525
, -33996, 8526, 67074764, 1073750355, -34108, 8543, -34108, 8544, 67074752, 1073
750369, -34176, 8559, -34176, 8560, 67074688, 1073750385, -34240, 8575, -34240,
8576, 67074572, 1073750401, -34304, 8578, -34304, 8579, 67074552, 8580, 67074548
, 1073750416, -34324, 9191, -34324, 1073751040, -34324, 9254, -34324, 1073751104
, -34324, 9290, -34324, 1073751136, -34324, 9397, -34324, 9398, 67071376, 107375
1223, -37592, 9423, -37592, 9424, 67071272, 1073751249, -37696, 9449, -37696, 94
50, 67078320, 1073751275, -37800, 9884, -37800, 1073751712, -37800, 9906, -37800
, 1073751809, -37800, 9988, -37800, 1073751814, -37800, 9993, -37800, 1073751820
, -37800, 10023, -37800, 1073751849, -37800, 10059, -37800, 10061, -37800, 10737
51887, -37800, 10066, -37800, 10070, -37800, 1073751896, -37800, 10078, -37800,
1073751905, -37800, 10132, -37800, 1073751960, -37800, 10159, -37800, 1073751985
, -37800, 10174, -37800, 1073752000, -37800, 10186, -37800, 1073752016, -37800,
10219, -37800, 1073752048, -37800, 11034, -37800, 1073752864, -37800, 11043, -37
800, 11264, 67063996, 1073753089, -45056, 11310, -45056, 11312, 67063804, 107375
3137, -45248, 11358, -45248, 11360, 67063428, 11361, 67063424, 11362, 67063420,
11363, 67063416, 11364, 67063412, 11365, 67063408, 11366, 67063404, 11367, 67063
400, 11368, 67063396, 11369, 67063392, 11370, 67063388, 11371, 67063384, 11372,
67063380, 11380, -45492, 11381, 67063344, 11382, 67063340, 11383, 67063368, 1139
2, 67063300, 11393, 67063296, 11394, 67063292, 11395, 67063288, 11396, 67063284,
11397, 67063280, 11398, 67063276, 11399, 67063272, 11400, 67063268, 11401, 6706
3264, 11402, 67063260, 11403, 67063256, 11404, 67063252, 11405, 67063248, 11406,
67063244, 11407, 67063240, 11408, 67063236, 11409, 67063232, 11410, 67063228, 1
1411, 67063224, 11412, 67063220, 11413, 67063216, 11414, 67063212, 11415, 670632
08, 11416, 67063204, 11417, 67063200, 11418, 67063196, 11419, 67063192, 11420, 6
7063188, 11421, 67063184, 11422, 67063180, 11423, 67063176, 11424, 67063172, 114
25, 67063168, 11426, 67063164, 11427, 67063160, 11428, 67063156, 11429, 67063152
, 11430, 67063148, 11431, 67063144, 11432, 67063140, 11433, 67063136, 11434, 670
63132, 11435, 67063128, 11436, 67063124, 11437, 67063120, 11438, 67063116, 11439
, 67063112, 11440, 67063108, 11441, 67063104, 11442, 67063100, 11443, 67063096,
11444, 67063092, 11445, 67063088, 11446, 67063084, 11447, 67063080, 11448, 67063
076, 11449, 67063072, 11450, 67063068, 11451, 67063064, 11452, 67063060, 11453,
67063056, 11454, 67063052, 11455, 67063048, 11456, 67063044, 11457, 67063040, 11
458, 67063036, 11459, 67063032, 11460, 67063028, 11461, 67063024, 11462, 6706302
0, 11463, 67063016, 11464, 67063012, 11465, 67063008, 11466, 67063004, 11467, 67
063000, 11468, 67062996, 11469, 67062992, 11470, 67062988, 11471, 67062984, 1147
2, 67062980, 11473, 67062976, 11474, 67062972, 11475, 67062968, 11476, 67062964,
11477, 67062960, 11478, 67062956, 11479, 67062952, 11480, 67062948, 11481, 6706
2944, 11482, 67062940, 11483, 67062936, 11484, 67062932, 11485, 67062928, 11486,
67062924, 11487, 67062920, 11488, 67062916, 11489, 67062912, 11490, 67062908, 1
1491, 67062904, 11492, 67063008, 1073753317, -45968, 11498, -45968, 1073753337,
-45968, 11519, -45968, 11520, 67062936, 1073753345, -46080, 11557, -46080, 10737
53392, -46232, 11621, -46232, 11631, -46232, 1073753472, -46232, 11670, -46232,
1073753504, -46232, 11686, -46232, 1073753512, -46232, 11694, -46232, 1073753520
, -46232, 11702, -46232, 1073753528, -46232, 11710, -46232, 1073753536, -46232,
11718, -46232, 1073753544, -46232, 11726, -46232, 1073753552, -46232, 11734, -46
232, 1073753560, -46232, 11742, -46232, 1073753600, -46232, 11799, -46232, 10737
53628, -46232, 11805, -46232, 1073753728, -46232, 11929, -46232, 1073753755, -46
232, 12019, -46232, 1073753856, -46232, 12245, -46232, 1073754096, -46232, 12283
, -46232, 1073754112, -46232, 12351, -46232, 1073754177, -46232, 12438, -46232,
1073754265, -46232, 12543, -46232, 1073754373, -46232, 12588, -46232, 1073754417
, -46232, 12686, -46232, 1073754512, -46232, 12727, -46232, 1073754560, -46232,
12751, -46232, 1073754608, -46232, 12830, -46232, 1073754656, -46232, 12867, -46
232, 1073754704, -46232, 13054, -46232, 1073754880, -46232, 16953, -46232, 16954
, 67041052, 16955, 67041056, 1073758780, -67820, 16957, -67820, 16958, 67041036,
16959, 67215248, 1073758784, -67836, 19893, -67836, 1073761728, -67836, 32767,
-67836 }; // NOLINT |
| 720 static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings1[]
= { {0, {0}} }; // NOLINT |
| 721 static const uint16_t kCanonicalizationRangeTable1Size = 94; |
| 722 static const int32_t kCanonicalizationRangeTable1[188] = { 1073741824, -67836, 8
123, -67836, 1073750016, -67836, 9356, -67836, 1073751184, -67836, 9414, -67836,
1073751808, -67836, 10010, -67836, 1073751840, -67836, 10017, -67836, 107375206
4, -67836, 10283, -67836, 1073752128, -67836, 10359, -67836, 1073753088, -67836,
22435, -67836, 1073764352, -67836, 27745, -67836, 27746, 66866812, 27747, 66866
808, 27748, 66866804, 27749, 66885980, 1073769574, -242068, 31277, -242068, 1073
773104, -242068, 31338, -242068, 1073773168, -242068, 31449, -242068, 1073773312
, -242068, 31494, -242068, 1073773331, -242068, 31511, -242068, 1073773341, -242
068, 31542, -242068, 1073773368, -242068, 31548, -242068, 31550, -242068, 107377
3376, -242068, 31553, -242068, 1073773379, -242068, 31556, -242068, 1073773382,
-242068, 31665, -242068, 1073773523, -242068, 32063, -242068, 1073773904, -24206
8, 32143, -242068, 1073773970, -242068, 32199, -242068, 1073774064, -242068, 322
53, -242068, 1073774080, -242068, 32281, -242068, 1073774112, -242068, 32291, -2
42068, 1073774128, -242068, 32338, -242068, 1073774164, -242068, 32358, -242068,
1073774184, -242068, 32363, -242068, 1073774192, -242068, 32372, -242068, 10737
74198, -242068, 32508, -242068, 32511, -242068, 1073774337, -242068, 32544, -242
068, 32545, 66847716, 1073774370, -261252, 32570, -261252, 32571, 66847532, 1073
774396, -261356, 32576, -261356, 32577, 66847588, 1073774402, -261380, 32602, -2
61380, 32603, 66848040, 1073774428, -261484, 32702, -261484, 1073774530, -261484
, 32711, -261484, 1073774538, -261484, 32719, -261484, 1073774546, -261484, 3272
7, -261484, 1073774554, -261484, 32732, -261484, 1073774560, -261484, 32742, -26
1484, 1073774568, -261484, 32750, -261484, 1073774585, -261484, 32765, -261484 }
; // NOLINT |
| 723 int CanonicalizationRange::Convert(uchar c, |
| 724 uchar n, |
| 725 uchar* result, |
| 726 bool* allow_caching_ptr) { |
| 727 int chunk_index = c >> 15; |
| 728 switch (chunk_index) { |
| 729 case 0: return LookupMapping(kCanonicalizationRangeTable0, |
| 730 kCanonicalizationRangeTable0Size, |
| 731 kCanonicalizationRangeMultiStrings0, |
| 732 c, |
| 733 n, |
| 734 result, |
| 735 allow_caching_ptr); |
| 736 case 1: return LookupMapping(kCanonicalizationRangeTable1, |
| 737 kCanonicalizationRangeTable1Size, |
| 738 kCanonicalizationRangeMultiStrings1, |
| 739 c, |
| 740 n, |
| 741 result, |
| 742 allow_caching_ptr); |
| 743 default: return 0; |
| 744 } |
| 745 } |
| 746 |
809 | 747 |
810 uchar UnicodeData::kMaxCodePoint = 1114109; | 748 uchar UnicodeData::kMaxCodePoint = 1114109; |
811 | 749 |
812 int UnicodeData::GetByteCount() { | 750 int UnicodeData::GetByteCount() { |
813 return 0 + (sizeof(uint16_t) * kUppercaseTable0Size) + (sizeof(uint16_t) * kUp
percaseTable1Size) + (sizeof(uint16_t) * kUppercaseTable2Size) + (sizeof(uint16_
t) * kUppercaseTable3Size) + (sizeof(uint16_t) * kLowercaseTable0Size) + (sizeof
(uint16_t) * kLowercaseTable1Size) + (sizeof(uint16_t) * kLowercaseTable2Size) +
(sizeof(uint16_t) * kLowercaseTable3Size) + (sizeof(uint16_t) * kLetterTable0Si
ze) + (sizeof(uint16_t) * kLetterTable1Size) + (sizeof(uint16_t) * kLetterTable2
Size) + (sizeof(uint16_t) * kLetterTable3Size) + (sizeof(uint16_t) * kLetterTabl
e4Size) + (sizeof(uint16_t) * kLetterTable5Size) + (sizeof(uint16_t) * kSpaceTab
le0Size) + (sizeof(uint16_t) * kTitlecaseTable0Size) + (sizeof(uint16_t) * kNumb
erTable0Size) + (sizeof(uint16_t) * kNumberTable1Size) + (sizeof(uint16_t) * kNu
mberTable2Size) + (sizeof(uint16_t) * kNumberTable3Size) + (sizeof(uint16_t) * k
DecimalDigitTable0Size) + (sizeof(uint16_t) * kDecimalDigitTable1Size) + (sizeof
(uint16_t) * kDecimalDigitTable2Size) + (sizeof(uint16_t) * kDecimalDigitTable3S
ize) + (sizeof(uint16_t) * kIdeographicTable0Size) + (sizeof(uint16_t) * kIdeogr
aphicTable1Size) + (sizeof(uint16_t) * kIdeographicTable4Size) + (sizeof(uint16_
t) * kIdeographicTable5Size) + (sizeof(uint16_t) * kWhiteSpaceTable0Size) + (siz
eof(uint16_t) * kHexDigitTable0Size) + (sizeof(uint16_t) * kHexDigitTable1Size)
+ (sizeof(uint16_t) * kAsciiHexDigitTable0Size) + (sizeof(uint16_t) * kBidiContr
olTable0Size) + (sizeof(uint16_t) * kJoinControlTable0Size) + (sizeof(uint16_t)
* kDashTable0Size) + (sizeof(uint16_t) * kDashTable1Size) + (sizeof(uint16_t) *
kHyphenTable0Size) + (sizeof(uint16_t) * kHyphenTable1Size) + (sizeof(uint16_t)
* kLineTerminatorTable0Size) + (sizeof(uint16_t) * kRegExpSpecialCharTable0Size)
+ (sizeof(uint16_t) * kCombiningMarkTable0Size) + (sizeof(uint16_t) * kCombinin
gMarkTable1Size) + (sizeof(uint16_t) * kCombiningMarkTable2Size) + (sizeof(uint1
6_t) * kCombiningMarkTable3Size) + (sizeof(uint16_t) * kCombiningMarkTable28Size
) + (sizeof(uint16_t) * kConnectorPunctuationTable0Size) + (sizeof(uint16_t) * k
ConnectorPunctuationTable1Size) + (sizeof(uint16_t) * kToLowercaseTable0Size) +
(sizeof(uint16_t) * kToLowercaseTable1Size) + (sizeof(uint16_t) * kToLowercaseTa
ble2Size) + (sizeof(uint16_t) * kToUppercaseTable0Size) + (sizeof(uint16_t) * kT
oUppercaseTable1Size) + (sizeof(uint16_t) * kToUppercaseTable2Size); // NOLINT | 751 return 0 + (sizeof(uint16_t) * kUppercaseTable0Size) + (sizeof(uint16_t) * kUp
percaseTable1Size) + (sizeof(uint16_t) * kUppercaseTable2Size) + (sizeof(uint16_
t) * kUppercaseTable3Size) + (sizeof(uint16_t) * kLowercaseTable0Size) + (sizeof
(uint16_t) * kLowercaseTable1Size) + (sizeof(uint16_t) * kLowercaseTable2Size) +
(sizeof(uint16_t) * kLowercaseTable3Size) + (sizeof(uint16_t) * kLetterTable0Si
ze) + (sizeof(uint16_t) * kLetterTable1Size) + (sizeof(uint16_t) * kLetterTable2
Size) + (sizeof(uint16_t) * kLetterTable3Size) + (sizeof(uint16_t) * kLetterTabl
e4Size) + (sizeof(uint16_t) * kLetterTable5Size) + (sizeof(uint16_t) * kSpaceTab
le0Size) + (sizeof(uint16_t) * kNumberTable0Size) + (sizeof(uint16_t) * kNumberT
able1Size) + (sizeof(uint16_t) * kNumberTable2Size) + (sizeof(uint16_t) * kNumbe
rTable3Size) + (sizeof(uint16_t) * kWhiteSpaceTable0Size) + (sizeof(uint16_t) *
kLineTerminatorTable0Size) + (sizeof(uint16_t) * kCombiningMarkTable0Size) + (si
zeof(uint16_t) * kCombiningMarkTable1Size) + (sizeof(uint16_t) * kCombiningMarkT
able2Size) + (sizeof(uint16_t) * kCombiningMarkTable3Size) + (sizeof(uint16_t) *
kCombiningMarkTable28Size) + (sizeof(uint16_t) * kConnectorPunctuationTable0Siz
e) + (sizeof(uint16_t) * kConnectorPunctuationTable1Size) + (sizeof(uint16_t) *
kToLowercaseTable0Size) + (sizeof(uint16_t) * kToLowercaseTable1Size) + (sizeof(
uint16_t) * kToLowercaseTable2Size) + (sizeof(uint16_t) * kToUppercaseTable0Size
) + (sizeof(uint16_t) * kToUppercaseTable1Size) + (sizeof(uint16_t) * kToUpperca
seTable2Size) + (sizeof(uint16_t) * kEcma262CanonicalizeTable0Size) + (sizeof(ui
nt16_t) * kEcma262CanonicalizeTable1Size) + (sizeof(uint16_t) * kEcma262Canonica
lizeTable2Size) + (sizeof(uint16_t) * kEcma262UnCanonicalizeTable0Size) + (sizeo
f(uint16_t) * kEcma262UnCanonicalizeTable1Size) + (sizeof(uint16_t) * kEcma262Un
CanonicalizeTable2Size) + (sizeof(uint16_t) * kCanonicalizationRangeTable0Size)
+ (sizeof(uint16_t) * kCanonicalizationRangeTable1Size); // NOLINT |
814 } | 752 } |
815 | 753 |
816 } // namespace unicode | 754 } // namespace unicode |
OLD | NEW |