This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Generalize handling of [perl #133979]
[perl5.git] / regcharclass.h
1 /* -*- buffer-read-only: t -*-
2  *
3  *    regcharclass.h
4  *
5  *    Copyright (C) 2007, 2011 by Larry Wall and others
6  *
7  *    You may distribute under the terms of either the GNU General Public
8  *    License or the Artistic License, as specified in the README file.
9  *
10  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
11  * This file is built by regen/regcharclass.pl.
12  * Any changes made here will be lost!
13  * WARNING: These macros are for internal Perl core use only, and may be
14  * changed or removed without notice.
15  */
16
17
18 #ifndef PERL_REGCHARCLASS_H_ /* Guard against nested #includes */
19 #define PERL_REGCHARCLASS_H_
20
21 #if 'A' == 65 /* ASCII/Latin1 */
22 /*
23         LNBREAK: Line Break: \R
24
25         "\x0D\x0A"      # CRLF - Network (Windows) line ending
26         \p{VertSpace}
27 */
28 /*** GENERATED CODE ***/
29 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
30 ( ((e)-(s) > 2) ?                                                           \
31     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
32     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
33         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
34     : ( is_utf8 ) ?                                                         \
35         ( ( 0xC2 == ((const U8*)s)[0] ) ?                                   \
36             ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                       \
37         : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
38     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
39 : ((e)-(s) > 1) ?                                                           \
40     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
41     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
42         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
43     : ( is_utf8 ) ?                                                         \
44         ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
45     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
46 : ((e)-(s) > 0) ?                                                           \
47     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) ) ? 1                       \
48     : ( !( is_utf8 ) ) ?                                                    \
49         ( 0x85 == ((const U8*)s)[0] )                                       \
50     : 0 )                                                                   \
51 : 0 )
52
53 /*** GENERATED CODE ***/
54 #define is_LNBREAK_utf8_safe(s,e)                                           \
55 ( ((e)-(s) > 2) ?                                                           \
56     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
57     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
58         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
59     : ( 0xC2 == ((const U8*)s)[0] ) ?                                       \
60         ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                           \
61     : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
62 : ((e)-(s) > 1) ?                                                           \
63     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
64     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
65         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
66     : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
67 : ((e)-(s) > 0) ?                                                           \
68     ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) )                             \
69 : 0 )
70
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e)                                         \
73 ( ((e)-(s) > 1) ?                                                           \
74     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
75     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
76         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
77     : 0 )                                                                   \
78 : ((e)-(s) > 0) ?                                                           \
79     ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) || 0x85 == ((const U8*)s)[0] )\
80 : 0 )
81
82 /*
83         HORIZWS: Horizontal Whitespace: \h \H
84
85         \p{HorizSpace}
86 */
87 /*** GENERATED CODE ***/
88 #define is_HORIZWS_high(s)                                                  \
89 ( ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
90     ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
91 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
92     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
93         ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
94     : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
95 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
96
97 /*** GENERATED CODE ***/
98 #define is_HORIZWS_cp_high(cp)                                              \
99 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
100 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
101 ( 0x202F == cp || ( 0x202F < cp &&                                          \
102 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
103
104 /*
105         VERTWS: Vertical Whitespace: \v \V
106
107         \p{VertSpace}
108 */
109 /*** GENERATED CODE ***/
110 #define is_VERTWS_high(s)                                                   \
111 ( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )
112
113 /*** GENERATED CODE ***/
114 #define is_VERTWS_cp_high(cp)                                               \
115 ( 0x2028 == cp || 0x2029 == cp )
116
117 /*
118         XDIGIT: Hexadecimal digits
119
120         \p{XDigit}
121 */
122 /*** GENERATED CODE ***/
123 #define is_XDIGIT_high(s)                                                   \
124 ( ( 0xEF == ((const U8*)s)[0] ) ?                                           \
125     ( ( 0xBC == ((const U8*)s)[1] ) ?                                       \
126         ( ( inRANGE(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\
127     : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 )\
128 : 0 )
129
130 /*** GENERATED CODE ***/
131 #define is_XDIGIT_cp_high(cp)                                               \
132 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
133 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
134
135 /*
136         XPERLSPACE: \p{XPerlSpace}
137
138         \p{XPerlSpace}
139 */
140 /*** GENERATED CODE ***/
141 #define is_XPERLSPACE_high(s)                                               \
142 ( ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
143     ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
144 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
145     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
146         ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
147     : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
148 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
149
150 /*** GENERATED CODE ***/
151 #define is_XPERLSPACE_cp_high(cp)                                           \
152 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
153 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
154 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
155 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
156 ( 0x202F == cp || ( 0x202F < cp &&                                          \
157 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
158
159 /*
160         NONCHAR: Non character code points
161
162         \p{_Perl_Nchar}
163 */
164 /*** GENERATED CODE ***/
165 #define is_NONCHAR_utf8_safe(s,e)                                           \
166 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
167             ( ( 0xB7 == ((const U8*)s)[1] ) ?                               \
168                 ( ( inRANGE(((const U8*)s)[2], 0x90, 0xAF ) ) ? 3 : 0 )     \
169             : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ) ? 3 : 0 )\
170         : ( 0xF0 == ((const U8*)s)[0] ) ?                                   \
171             ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
172         : ( inRANGE(((const U8*)s)[0], 0xF1, 0xF3 ) ) ?                     \
173             ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
174         : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 ) : 0 )
175
176 /*
177         SURROGATE: Surrogate code points
178
179         \p{_Perl_Surrogate}
180 */
181 /*** GENERATED CODE ***/
182 #define is_SURROGATE_utf8_safe(s,e)                                         \
183 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0xA0, 0xBF ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
184
185 /*
186         QUOTEMETA: Meta-characters that \Q should quote
187
188         \p{_Perl_Quotemeta}
189 */
190 /*** GENERATED CODE ***/
191 #define is_QUOTEMETA_high(s)                                                \
192 ( ( 0xCD == ((const U8*)s)[0] ) ?                                           \
193     ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
194 : ( 0xD8 == ((const U8*)s)[0] ) ?                                           \
195     ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 )                               \
196 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
197     ( ( 0x85 == ((const U8*)s)[1] ) ?                                       \
198         ( ( inRANGE(((const U8*)s)[2], 0x9F, 0xA0 ) ) ? 3 : 0 )             \
199     : ( 0x9A == ((const U8*)s)[1] ) ?                                       \
200         ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
201     : ( 0x9E == ((const U8*)s)[1] ) ?                                       \
202         ( ( inRANGE(((const U8*)s)[2], 0xB4, 0xB5 ) ) ? 3 : 0 )             \
203     : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x8B, 0x8E ) ) ) ? 3 : 0 )\
204 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
205     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
206         ( ( inRANGE(((const U8*)s)[2], 0x80, 0xBE ) ) ? 3 : 0 )             \
207     : ( 0x81 == ((const U8*)s)[1] ) ?                                       \
208         ( ( inRANGE(((const U8*)s)[2], 0x81, 0x93 ) || inRANGE(((const U8*)s)[2], 0x95, 0xAF ) ) ? 3 : 0 )\
209     : ( 0x86 == ((const U8*)s)[1] ) ?                                       \
210         ( ( inRANGE(((const U8*)s)[2], 0x90, 0xBF ) ) ? 3 : 0 )             \
211     : ( inRANGE(((const U8*)s)[1], 0x87, 0x90 ) || inRANGE(((const U8*)s)[1], 0x94, 0x9C ) || inRANGE(((const U8*)s)[1], 0x9F, 0xAF ) || inRANGE(((const U8*)s)[1], 0xB8, 0xB9 ) ) ?\
212         3                                                                   \
213     : ( 0x91 == ((const U8*)s)[1] ) ?                                       \
214         ( ( inRANGE(((const U8*)s)[2], 0x80, 0x9F ) ) ? 3 : 0 )             \
215     : ( 0x9D == ((const U8*)s)[1] ) ?                                       \
216         ( ( inRANGE(((const U8*)s)[2], 0x80, 0xB5 ) ) ? 3 : 0 )             \
217     : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x94, 0xBF ) ) ) ? 3 : 0 )\
218 : ( 0xE3 == ((const U8*)s)[0] ) ?                                           \
219     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
220         ( ( inRANGE(((const U8*)s)[2], 0x80, 0x83 ) || inRANGE(((const U8*)s)[2], 0x88, 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
221     : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
222 : ( 0xEF == ((const U8*)s)[0] ) ?                                           \
223     ( ( 0xB4 == ((const U8*)s)[1] ) ?                                       \
224         ( ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ? 3 : 0 )             \
225     : ( 0xB8 == ((const U8*)s)[1] ) ?                                       \
226         ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8F ) ) ? 3 : 0 )             \
227     : ( 0xB9 == ((const U8*)s)[1] ) ?                                       \
228         ( ( inRANGE(((const U8*)s)[2], 0x85, 0x86 ) ) ? 3 : 0 )             \
229     : ( 0xBB == ((const U8*)s)[1] ) ?                                       \
230         ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 )                           \
231     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
232         ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
233     : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xB0, 0xB8 ) ) ) ? 3 : 0 )\
234 : ( 0xF0 == ((const U8*)s)[0] ) ?                                           \
235     ( ( 0x9B == ((const U8*)s)[1] ) ?                                       \
236         ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0xA0, 0xA3 ) ) ) ? 4 : 0 )\
237     : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xB3, 0xBA ) ) ) ? 4 : 0 )\
238 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
239
240 /*
241         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
242
243         &regcharclass_multi_char_folds::multi_char_folds(1)
244 */
245 /*** GENERATED CODE ***/
246 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
247 ( ( 0x61 == ((const U8*)s)[0] ) ?                                           \
248         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
249     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
250         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
251             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
252         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
253     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
254         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
255     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
256         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
257     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
258         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
259     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
260         ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
261     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
262         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
263     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
264         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
265     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
266         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
267     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
268         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
269     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
270         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
271             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
272         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
273             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
274                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
275             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276         : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
277     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
278         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
279             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
280         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
281             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
282                 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
283             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
284         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
285             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
286                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
287             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
288         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
289     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
290         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
291             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
292         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
293             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
294         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
295     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
296         ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
297             ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
298         : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
299     : 0 )
300
301
302 /*** GENERATED CODE ***/
303 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
304 ( ((e)-(s) > 3) ?                                                           \
305     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
306         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
307     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
308         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
309             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
310         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
311     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
312         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
313     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
314         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
315     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
316         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
317     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
318         ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
319     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
320         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
321     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
322         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
323     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
324         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
325     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
326         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
327     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
328         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
329             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
330         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
331             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
332                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
333             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
334         : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
335     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
336         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
337             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
338         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
339             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
340                 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
341             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
342         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
343             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
344                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
345             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
346         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
347     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
348         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
349             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
350         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
351             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
352         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
353     : 0 )                                                                   \
354 : ((e)-(s) > 2) ?                                                           \
355     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
356         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
357     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
358         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
359             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
360         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
361     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
362         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
363     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
364         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
365     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
366         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
367     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
368         ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
369     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
370         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
371     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
372         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
373     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
374 : ((e)-(s) > 1) ?                                                           \
375     ( ( 0x66 == ((const U8*)s)[0] ) ?                                       \
376         ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
377     : ( ( 0x73 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
378 : 0 )
379
380
381 /*** GENERATED CODE ***/
382 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
383 ( ((e)-(s) > 5) ?                                                           \
384     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
385         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
386     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
387         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
388             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
389         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
390     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
391         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
392     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
393         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
394     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
395         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
396     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
397         ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
398     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
399         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
400     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
401         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
402     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
403         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
404     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
405         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
406     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
407         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
408             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
409         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
410             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
411                 ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
412                     ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
413                 : 0 )                                                       \
414             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
415         : ( 0xB9 == ((const U8*)s)[1] ) ?                                   \
416             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
417                 ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
418                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
419                         ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
420                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
421                 : 0 )                                                       \
422             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
423         : 0 )                                                               \
424     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
425         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
426             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
427         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
428             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
429                 ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
430                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
431                         ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
432                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
433                 : ( 0x93 == ((const U8*)s)[3] ) ?                           \
434                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
435                         ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 4 )\
436                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
437                 : 0 )                                                       \
438             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
439         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
440             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
441                 ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
442                     ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
443                 : 0 )                                                       \
444             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
445         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
446     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
447         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
448             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
449         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
450             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
451         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
452     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
453         ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
454             ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
455         : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
456     : 0 )                                                                   \
457 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
458
459 /*
460         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
461
462         &regcharclass_multi_char_folds::multi_char_folds(0)
463 */
464 /*** GENERATED CODE ***/
465 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
466 ( ((e)-(s) > 2) ?                                                           \
467     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
468         ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ?                        \
469             ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
470         : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
471     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
472 : ((e)-(s) > 1) ?                                                           \
473     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
474         ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
475     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
476 : 0 )
477
478 /*
479         FOLDS_TO_MULTI: characters that fold to multi-char strings
480
481         \p{_Perl_Folds_To_Multi_Char}
482 */
483 /*** GENERATED CODE ***/
484 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
485 ( ( 0xC3 == ((const U8*)s)[0] ) ?                                           \
486     ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
487 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ?              \
488     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
489 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
490     ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
491 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
492     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 )                    \
493 : ( 0xD6 == ((const U8*)s)[0] ) ?                                           \
494     ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
495 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
496     ( ( 0xBA == ((const U8*)s)[1] ) ?                                       \
497         ( ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
498     : ( 0xBD == ((const U8*)s)[1] ) ?                                       \
499         ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 )                \
500     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
501         ( ( inRANGE(((const U8*)s)[2], 0x80, 0xAF ) || inRANGE(((const U8*)s)[2], 0xB2, 0xB4 ) || inRANGE(((const U8*)s)[2], 0xB6, 0xB7 ) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
502     : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
503 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) || inRANGE(((const U8*)s)[2], 0x93, 0x97 ) ) ) ? 3 : 0 )
504
505 /*
506         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
507
508         \p{_Perl_Problematic_Locale_Folds}
509 */
510 /*** GENERATED CODE ***/
511 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
512 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
513 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ?                             \
514     2                                                                       \
515 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
516     ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 )                 \
517 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
518     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
519 : ( 0xC7 == ((const U8*)s)[0] ) ?                                           \
520     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
521 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
522     ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
523 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
524     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
525 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
526     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
527 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
528     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
529 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
530
531 /*** GENERATED CODE ***/
532 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
533 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
534 ( 0x130 == cp || ( 0x130 < cp &&                                            \
535 ( 0x131 == cp || ( 0x131 < cp &&                                            \
536 ( 0x149 == cp || ( 0x149 < cp &&                                            \
537 ( 0x178 == cp || ( 0x178 < cp &&                                            \
538 ( 0x17F == cp || ( 0x17F < cp &&                                            \
539 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
540 ( 0x307 == cp || ( 0x307 < cp &&                                            \
541 ( 0x39C == cp || ( 0x39C < cp &&                                            \
542 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
543 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
544 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
545 ( 0x212A == cp || ( 0x212A < cp &&                                          \
546 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
547
548 /*
549         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
550
551         \p{_Perl_Problematic_Locale_Foldeds_Start}
552 */
553 /*** GENERATED CODE ***/
554 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
555 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
556 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ?                             \
557     2                                                                       \
558 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
559     ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 )                 \
560 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
561     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
562 : ( 0xC7 == ((const U8*)s)[0] ) ?                                           \
563     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
564 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
565     ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 )                               \
566 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
567     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
568 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
569     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
570 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
571     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
572 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
573
574 /*** GENERATED CODE ***/
575 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
576 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
577 ( 0x130 == cp || ( 0x130 < cp &&                                            \
578 ( 0x131 == cp || ( 0x131 < cp &&                                            \
579 ( 0x149 == cp || ( 0x149 < cp &&                                            \
580 ( 0x178 == cp || ( 0x178 < cp &&                                            \
581 ( 0x17F == cp || ( 0x17F < cp &&                                            \
582 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
583 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
584 ( 0x39C == cp || ( 0x39C < cp &&                                            \
585 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
586 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
587 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
588 ( 0x212A == cp || ( 0x212A < cp &&                                          \
589 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
590
591 /*
592         PATWS: pattern white space
593
594         \p{_Perl_PatWS}
595 */
596 /*** GENERATED CODE ***/
597 #define is_PATWS_safe(s,e,is_utf8)                                          \
598 ( ( LIKELY((e) > (s)) ) ?                                                   \
599     ( ( inRANGE(((const U8*)s)[0], 0x09, 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
600     : (! is_utf8 ) ?                                                        \
601             ( 0x85 == ((const U8*)s)[0] )                                   \
602         : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                          \
603             ( ( 0xC2 == ((const U8*)s)[0] ) ?                               \
604                 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                   \
605             : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x8E, 0x8F ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
606         : 0 )                                                               \
607 : 0 )
608
609 /*** GENERATED CODE ***/
610 #define is_PATWS_cp(cp)                                                     \
611 ( inRANGE(cp, 0x09, 0x0D) || ( 0x0D < cp &&                                 \
612 ( 0x20 == cp || ( 0x20 < cp &&                                              \
613 ( 0x85 == cp || ( 0x85 < cp &&                                              \
614 ( 0x200E == cp || ( 0x200E < cp &&                                          \
615 ( 0x200F == cp || ( 0x200F < cp &&                                          \
616 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
617
618 /*
619         HANGUL_ED: Hangul syllables whose first character is \xED
620
621         0xD000 - 0xD7FF
622 */
623 /*** GENERATED CODE ***/
624 #define is_HANGUL_ED_utf8_safe(s,e)                                         \
625 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x80, 0x9F ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
626
627 #endif  /* ASCII/Latin1 */
628
629 #if 'A' == 193 /* EBCDIC 1047 */ \
630      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
631      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
632      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
633 /*
634         LNBREAK: Line Break: \R
635
636         "\x0D\x0A"      # CRLF - Network (Windows) line ending
637         \p{VertSpace}
638 */
639 /*** GENERATED CODE ***/
640 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
641 ( ((e)-(s) > 2) ?                                                           \
642     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
643     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
644         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
645     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
646 : ((e)-(s) > 1) ?                                                           \
647     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
648     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
649         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
650     : 0 )                                                                   \
651 : ((e)-(s) > 0) ?                                                           \
652     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
653 : 0 )
654
655 /*** GENERATED CODE ***/
656 #define is_LNBREAK_utf8_safe(s,e)                                           \
657 ( ((e)-(s) > 2) ?                                                           \
658     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
659     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
660         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
661     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
662 : ((e)-(s) > 1) ?                                                           \
663     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
664     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
665         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
666     : 0 )                                                                   \
667 : ((e)-(s) > 0) ?                                                           \
668     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
669 : 0 )
670
671 /*** GENERATED CODE ***/
672 #define is_LNBREAK_latin1_safe(s,e)                                         \
673 ( ((e)-(s) > 1) ?                                                           \
674     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
675     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
676         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
677     : 0 )                                                                   \
678 : ((e)-(s) > 0) ?                                                           \
679     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
680 : 0 )
681
682 /*
683         HORIZWS: Horizontal Whitespace: \h \H
684
685         \p{HorizSpace}
686 */
687 /*** GENERATED CODE ***/
688 #define is_HORIZWS_high(s)                                                  \
689 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
690     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
691 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
692     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
693         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
694     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
695         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
696     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
697 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
698
699 /*** GENERATED CODE ***/
700 #define is_HORIZWS_cp_high(cp)                                              \
701 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
702 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
703 ( 0x202F == cp || ( 0x202F < cp &&                                          \
704 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
705
706 /*
707         VERTWS: Vertical Whitespace: \v \V
708
709         \p{VertSpace}
710 */
711 /*** GENERATED CODE ***/
712 #define is_VERTWS_high(s)                                                   \
713 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
714
715 /*** GENERATED CODE ***/
716 #define is_VERTWS_cp_high(cp)                                               \
717 ( 0x2028 == cp || 0x2029 == cp )
718
719 /*
720         XDIGIT: Hexadecimal digits
721
722         \p{XDigit}
723 */
724 /*** GENERATED CODE ***/
725 #define is_XDIGIT_high(s)                                                   \
726 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
727             ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\
728         : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
729
730 /*** GENERATED CODE ***/
731 #define is_XDIGIT_cp_high(cp)                                               \
732 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
733 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
734
735 /*
736         XPERLSPACE: \p{XPerlSpace}
737
738         \p{XPerlSpace}
739 */
740 /*** GENERATED CODE ***/
741 #define is_XPERLSPACE_high(s)                                               \
742 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
743     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
744 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
745     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
746         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
747     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
748         ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
749     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
750 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
751
752 /*** GENERATED CODE ***/
753 #define is_XPERLSPACE_cp_high(cp)                                           \
754 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
755 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
756 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
757 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
758 ( 0x202F == cp || ( 0x202F < cp &&                                          \
759 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
760
761 /*
762         NONCHAR: Non character code points
763
764         \p{_Perl_Nchar}
765 */
766 /*** GENERATED CODE ***/
767 #define is_NONCHAR_utf8_safe(s,e)                                           \
768 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
769             ( ( 0x73 == ((const U8*)s)[1] ) ?                               \
770                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
771                     ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ? 4 : 0 )\
772                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
773                     ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
774                 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
775             : 0 )                                                           \
776         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
777             ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
778         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
779             ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 )\
780         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 ) : 0 )
781
782 /*
783         SURROGATE: Surrogate code points
784
785         \p{_Perl_Surrogate}
786 */
787 /*** GENERATED CODE ***/
788 #define is_SURROGATE_utf8_safe(s,e)                                         \
789 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x65, 0x66 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) ? 4 : 0 )
790
791 /*
792         QUOTEMETA: Meta-characters that \Q should quote
793
794         \p{_Perl_Quotemeta}
795 */
796 /*** GENERATED CODE ***/
797 #define is_QUOTEMETA_high(s)                                                \
798 ( ( 0xB1 == ((const U8*)s)[0] ) ?                                           \
799     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
800 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
801     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
802 : ( 0xBB == ((const U8*)s)[0] ) ?                                           \
803     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
804         ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
805     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
806 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
807     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
808         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
809     : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x64 ) ) ) ? 3 : 0 )\
810 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
811     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
812 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
813     ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ?\
814         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
815     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
816         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
817     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
818         ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
819     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
820         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
821     : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
822 : ( 0xCB == ((const U8*)s)[0] ) ?                                           \
823     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x69 ) || inRANGE(((const U8*)s)[1], 0x71, 0x73 ) ) ?\
824         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
825     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
826         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x64 ) ) ? 3 : 0 )\
827     : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
828 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
829     ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
830 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
831     ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
832 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
833     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
834         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
835     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
836         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
837     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
838 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
839     ( ( 0x73 == ((const U8*)s)[1] ) ?                                       \
840         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
841             ( ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ? 4 : 0 )         \
842         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
843             ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
844         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
845             ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 )         \
846         : ( 0x66 == ((const U8*)s)[2] ) ?                                   \
847             ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
848         : ( 0x71 == ((const U8*)s)[2] ) ?                                   \
849             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
850         : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ) ? 4 : 0 )\
851     : 0 )                                                                   \
852 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
853     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
854         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
855     : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x62, 0x69 ) ) ) ? 4 : 0 )\
856 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x73 ) ) ) ? 5 : 0 )
857
858 /*
859         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
860
861         &regcharclass_multi_char_folds::multi_char_folds(1)
862 */
863 /*** GENERATED CODE ***/
864 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
865 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
866             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
867         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
868
869
870 /*** GENERATED CODE ***/
871 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
872 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
873         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
874     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
875         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
876     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
877         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
878     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
879         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
880     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
881         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
882     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
883         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
884     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
885         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
886     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
887         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
888     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
889         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
890             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
891         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
892             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
893                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
894                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
895                 : 0 )                                                       \
896             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
897         : ( 0x68 == ((const U8*)s)[1] ) ?                                   \
898             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
899                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
900                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
901                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
902                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
903                 : 0 )                                                       \
904             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
905         : 0 )                                                               \
906     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
907         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
908             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
909         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
910             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
911                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
912                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
913                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
914                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
915                 : ( 0x62 == ((const U8*)s)[3] ) ?                           \
916                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
917                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
918                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
919                 : 0 )                                                       \
920             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
921         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
922             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
923                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
924                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
925                 : 0 )                                                       \
926             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
927         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
928     : ( 0xB8 == ((const U8*)s)[0] ) ?                                       \
929         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
930             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
931                 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
932             : ( 0x63 == ((const U8*)s)[2] ) ?                               \
933                 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
934             : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
935         : 0 )                                                               \
936     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
937         ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ?                     \
938             ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
939         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
940     : 0 )
941
942
943 /*** GENERATED CODE ***/
944 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
945 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
946         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
947     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
948         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
949             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
950         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
951     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
952         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
953     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
954         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
955     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
956         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
957     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
958         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
959     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
960         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
961     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
962         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
963     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
964         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
965     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
966         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
967     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
968         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
969             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
970         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
971             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
972                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
973             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
974         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
975     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
976         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
977             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
978         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
979             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
980                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
981             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
982         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
983             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
984                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
985             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
986         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
987     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
988         ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ?                     \
989             ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
990         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
991     : 0 )
992
993
994 /*** GENERATED CODE ***/
995 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
996 ( ((e)-(s) > 3) ?                                                           \
997     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
998         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
999     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1000         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1001             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1002         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1003     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1004         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1005     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1006         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1007     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
1008         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1009     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1010         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1011     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1012         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1013     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1014         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1015     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1016         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1017     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
1018         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1019     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1020         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1021             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1022         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
1023             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1024                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1025             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1026         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1027     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
1028         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1029             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1030         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1031             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1032                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1033             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1034         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1035             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1036                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1037             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1038         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1039     : 0 )                                                                   \
1040 : ((e)-(s) > 2) ?                                                           \
1041     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1042         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1043     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1044         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1045             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1046         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1047     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1048         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1049     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1050         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1051     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1052         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1053     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1054         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1055     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1056         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1057     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1058         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1059     : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1060 : ((e)-(s) > 1) ?                                                           \
1061     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1062         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1063     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
1064 : 0 )
1065
1066
1067 /*** GENERATED CODE ***/
1068 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1069 ( ((e)-(s) > 5) ?                                                           \
1070     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1071         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1072     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1073 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1074
1075 /*
1076         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1077
1078         &regcharclass_multi_char_folds::multi_char_folds(0)
1079 */
1080 /*** GENERATED CODE ***/
1081 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1082 ( ((e)-(s) > 2) ?                                                           \
1083     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1084         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1085             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1086         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1087     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1088 : ((e)-(s) > 1) ?                                                           \
1089     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1090         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1091     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1092 : 0 )
1093
1094 /*
1095         FOLDS_TO_MULTI: characters that fold to multi-char strings
1096
1097         \p{_Perl_Folds_To_Multi_Char}
1098 */
1099 /*** GENERATED CODE ***/
1100 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1101 ( ( 0x8A == ((const U8*)s)[0] ) ?                                           \
1102     ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1103 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
1104     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1105 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1106     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1107 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
1108     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1109 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1110     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
1111         ( ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1112     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1113         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1114     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1115         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
1116     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1117         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
1118     : ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1119         ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) ) ? 3 : 0 )\
1120     : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1121 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )
1122
1123 /*
1124         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1125
1126         \p{_Perl_Problematic_Locale_Folds}
1127 */
1128 /*** GENERATED CODE ***/
1129 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1130 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1131 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1132     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
1133 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1134     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
1135 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1136     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1137 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1138     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1139 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
1140     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1141 : ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1142     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1143 : ( inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?                             \
1144     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1145 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1146     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1147 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1148     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1149 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1150
1151 /*** GENERATED CODE ***/
1152 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1153 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1154 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1155 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1156 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1157 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1158 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1159 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1160 ( 0x307 == cp || ( 0x307 < cp &&                                            \
1161 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1162 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1163 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
1164 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1165 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1166 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1167
1168 /*
1169         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1170
1171         \p{_Perl_Problematic_Locale_Foldeds_Start}
1172 */
1173 /*** GENERATED CODE ***/
1174 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1175 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1176 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1177     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
1178 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1179     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
1180 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1181     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1182 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1183     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1184 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
1185     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1186 : ( 0xAB == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
1187     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1188 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1189     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1190 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1191     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1192 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1193
1194 /*** GENERATED CODE ***/
1195 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1196 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1197 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1198 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1199 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1200 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1201 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1202 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1203 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1204 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1205 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1206 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
1207 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1208 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1209 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1210
1211 /*
1212         PATWS: pattern white space
1213
1214         \p{_Perl_PatWS}
1215 */
1216 /*** GENERATED CODE ***/
1217 #define is_PATWS_safe(s,e,is_utf8)                                          \
1218 ( ( LIKELY((e) > (s)) ) ?                                                   \
1219     ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
1220     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1221                     ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
1222                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
1223 : 0 )
1224
1225 /*** GENERATED CODE ***/
1226 #define is_PATWS_cp(cp)                                                     \
1227 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1228 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp &&                                 \
1229 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1230 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1231 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1232 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1233 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1234 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1235
1236 #endif  /* EBCDIC 1047 */
1237
1238 #if 'A' == 193 /* EBCDIC 037 */ \
1239      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1240      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1241      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
1242 /*
1243         LNBREAK: Line Break: \R
1244
1245         "\x0D\x0A"      # CRLF - Network (Windows) line ending
1246         \p{VertSpace}
1247 */
1248 /*** GENERATED CODE ***/
1249 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
1250 ( ((e)-(s) > 2) ?                                                           \
1251     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1252     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1253         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1254     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
1255 : ((e)-(s) > 1) ?                                                           \
1256     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1257     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1258         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1259     : 0 )                                                                   \
1260 : ((e)-(s) > 0) ?                                                           \
1261     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1262 : 0 )
1263
1264 /*** GENERATED CODE ***/
1265 #define is_LNBREAK_utf8_safe(s,e)                                           \
1266 ( ((e)-(s) > 2) ?                                                           \
1267     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1268     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1269         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1270     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
1271 : ((e)-(s) > 1) ?                                                           \
1272     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1273     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1274         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1275     : 0 )                                                                   \
1276 : ((e)-(s) > 0) ?                                                           \
1277     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1278 : 0 )
1279
1280 /*** GENERATED CODE ***/
1281 #define is_LNBREAK_latin1_safe(s,e)                                         \
1282 ( ((e)-(s) > 1) ?                                                           \
1283     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1284     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1285         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1286     : 0 )                                                                   \
1287 : ((e)-(s) > 0) ?                                                           \
1288     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1289 : 0 )
1290
1291 /*
1292         HORIZWS: Horizontal Whitespace: \h \H
1293
1294         \p{HorizSpace}
1295 */
1296 /*** GENERATED CODE ***/
1297 #define is_HORIZWS_high(s)                                                  \
1298 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1299     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1300 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1301     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1302         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1303     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1304         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1305     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1306 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1307
1308 /*** GENERATED CODE ***/
1309 #define is_HORIZWS_cp_high(cp)                                              \
1310 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1311 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
1312 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1313 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1314
1315 /*
1316         VERTWS: Vertical Whitespace: \v \V
1317
1318         \p{VertSpace}
1319 */
1320 /*** GENERATED CODE ***/
1321 #define is_VERTWS_high(s)                                                   \
1322 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
1323
1324 /*** GENERATED CODE ***/
1325 #define is_VERTWS_cp_high(cp)                                               \
1326 ( 0x2028 == cp || 0x2029 == cp )
1327
1328 /*
1329         XDIGIT: Hexadecimal digits
1330
1331         \p{XDigit}
1332 */
1333 /*** GENERATED CODE ***/
1334 #define is_XDIGIT_high(s)                                                   \
1335 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1336             ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\
1337         : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
1338
1339 /*** GENERATED CODE ***/
1340 #define is_XDIGIT_cp_high(cp)                                               \
1341 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
1342 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
1343
1344 /*
1345         XPERLSPACE: \p{XPerlSpace}
1346
1347         \p{XPerlSpace}
1348 */
1349 /*** GENERATED CODE ***/
1350 #define is_XPERLSPACE_high(s)                                               \
1351 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1352     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1353 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1354     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1355         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1356     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1357         ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1358     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1359 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1360
1361 /*** GENERATED CODE ***/
1362 #define is_XPERLSPACE_cp_high(cp)                                           \
1363 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1364 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
1365 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
1366 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
1367 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1368 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1369
1370 /*
1371         NONCHAR: Non character code points
1372
1373         \p{_Perl_Nchar}
1374 */
1375 /*** GENERATED CODE ***/
1376 #define is_NONCHAR_utf8_safe(s,e)                                           \
1377 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1378             ( ( 0x72 == ((const U8*)s)[1] ) ?                               \
1379                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
1380                     ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ? 4 : 0 )\
1381                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
1382                     ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
1383                 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
1384             : 0 )                                                           \
1385         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1386             ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
1387         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
1388             ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 )\
1389         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 ) : 0 )
1390
1391 /*
1392         SURROGATE: Surrogate code points
1393
1394         \p{_Perl_Surrogate}
1395 */
1396 /*** GENERATED CODE ***/
1397 #define is_SURROGATE_utf8_safe(s,e)                                         \
1398 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x64, 0x65 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) ? 4 : 0 )
1399
1400 /*
1401         QUOTEMETA: Meta-characters that \Q should quote
1402
1403         \p{_Perl_Quotemeta}
1404 */
1405 /*** GENERATED CODE ***/
1406 #define is_QUOTEMETA_high_part0(s)                                          \
1407 ( ( 0x51 == ((const U8*)s)[1] ) ?                                           \
1408         ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1409     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1410
1411
1412 /*** GENERATED CODE ***/
1413 #define is_QUOTEMETA_high_part1(s)                                          \
1414 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1415     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1416         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1417     : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ) ? 3 : 0 )\
1418 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
1419     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
1420 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1421     ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1422         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1423     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1424         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x71 ) ) ? 3 : 0 )\
1425     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
1426         ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1427     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
1428         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
1429     : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1430 : ( 0xCB == ((const U8*)s)[0] ) ?                                           \
1431     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x68 ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1432         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1433     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1434         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ? 3 : 0 )\
1435     : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1436 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
1437     ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1438 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
1439     ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1440 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
1441     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1442         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1443     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1444         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1445     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1446 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
1447     ( ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1448         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
1449             ( ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ? 4 : 0 )         \
1450         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
1451             ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
1452         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
1453             ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 )         \
1454         : ( 0x65 == ((const U8*)s)[2] ) ?                                   \
1455             ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1456         : ( 0x70 == ((const U8*)s)[2] ) ?                                   \
1457             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1458         : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )\
1459     : 0 )                                                                   \
1460 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
1461     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
1462         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
1463     : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ) ? 4 : 0 )\
1464 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[4] || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x72 ) ) ) ? 5 : 0 )
1465
1466
1467 /*** GENERATED CODE ***/
1468 #define is_QUOTEMETA_high(s)                                                \
1469 ( ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1470     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1471 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1472     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1473 : ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1474
1475 /*
1476         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1477
1478         &regcharclass_multi_char_folds::multi_char_folds(1)
1479 */
1480 /*** GENERATED CODE ***/
1481 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1482 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
1483             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1484         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
1485
1486
1487 /*** GENERATED CODE ***/
1488 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1489 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
1490         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1491     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1492         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1493     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1494         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1495     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1496         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1497     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1498         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1499     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1500         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1501     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1502         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1503     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1504         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1505     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1506         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1507             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1508         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1509             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1510                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1511                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1512                 : 0 )                                                       \
1513             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1514         : ( 0x67 == ((const U8*)s)[1] ) ?                                   \
1515             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1516                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1517                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1518                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1519                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1520                 : 0 )                                                       \
1521             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1522         : 0 )                                                               \
1523     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1524         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1525             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1526         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1527             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1528                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1529                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1530                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1531                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1532                 : ( 0x5F == ((const U8*)s)[3] ) ?                           \
1533                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1534                         ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
1535                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1536                 : 0 )                                                       \
1537             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1538         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1539             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1540                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1541                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1542                 : 0 )                                                       \
1543             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1544         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1545     : ( 0xB7 == ((const U8*)s)[0] ) ?                                       \
1546         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
1547             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
1548                 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1549             : ( 0x62 == ((const U8*)s)[2] ) ?                               \
1550                 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1551             : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1552         : 0 )                                                               \
1553     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1554         ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ?                     \
1555             ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1556         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1557     : 0 )
1558
1559
1560 /*** GENERATED CODE ***/
1561 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
1562 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
1563         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1564     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1565         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1566             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1567         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1568     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1569         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1570     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1571         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1572     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1573         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1574     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1575         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1576     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1577         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1578     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1579         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1580     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1581         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1582     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1583         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1584     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1585         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1586             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1587         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1588             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1589                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1590             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1591         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1592     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1593         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1594             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1595         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1596             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1597                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1598             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1599         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1600             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1601                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1602             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1603         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1604     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1605         ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ?                     \
1606             ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1607         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1608     : 0 )
1609
1610
1611 /*** GENERATED CODE ***/
1612 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1613 ( ((e)-(s) > 3) ?                                                           \
1614     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1615         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1616     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1617         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1618             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1619         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1620     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1621         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1622     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1623         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1624     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1625         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1626     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1627         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1628     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1629         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1630     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1631         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1632     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1633         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1634     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1635         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1636     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1637         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1638             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1639         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1640             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1641                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1642             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1643         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1644     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1645         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1646             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1647         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1648             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1649                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1650             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1651         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1652             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1653                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1654             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1655         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1656     : 0 )                                                                   \
1657 : ((e)-(s) > 2) ?                                                           \
1658     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1659         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1660     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1661         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1662             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1663         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1664     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1665         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1666     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1667         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1668     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1669         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1670     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1671         ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
1672     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1673         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1674     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1675         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676     : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1677 : ((e)-(s) > 1) ?                                                           \
1678     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1679         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1680     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
1681 : 0 )
1682
1683
1684 /*** GENERATED CODE ***/
1685 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1686 ( ((e)-(s) > 5) ?                                                           \
1687     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1688         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1689     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1690 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1691
1692 /*
1693         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1694
1695         &regcharclass_multi_char_folds::multi_char_folds(0)
1696 */
1697 /*** GENERATED CODE ***/
1698 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1699 ( ((e)-(s) > 2) ?                                                           \
1700     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1701         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1702             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1703         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1704     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1705 : ((e)-(s) > 1) ?                                                           \
1706     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1707         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1708     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1709 : 0 )
1710
1711 /*
1712         FOLDS_TO_MULTI: characters that fold to multi-char strings
1713
1714         \p{_Perl_Folds_To_Multi_Char}
1715 */
1716 /*** GENERATED CODE ***/
1717 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1718 ( ( 0x80 == ((const U8*)s)[0] ) ?                                           \
1719     ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1720 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
1721     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1722 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1723     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1724 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1725     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1726 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1727     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1728         ( ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1729     : ( 0x68 == ((const U8*)s)[1] ) ?                                       \
1730         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1731     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
1732         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1733     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1734         ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
1735     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1736         ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) ) ? 3 : 0 )\
1737     : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
1738 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x65 ) ) ) ? 4 : 0 )
1739
1740 /*
1741         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1742
1743         \p{_Perl_Problematic_Locale_Folds}
1744 */
1745 /*** GENERATED CODE ***/
1746 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1747 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1748 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1749     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
1750 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
1751     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
1752 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1753     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1754 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1755     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1756 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
1757     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1758 : ( 0xAD == ((const U8*)s)[0] ) ?                                           \
1759     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1760 : ( inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?                             \
1761     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1762 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1763     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1764 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1765     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1766 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1767
1768 /*** GENERATED CODE ***/
1769 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1770 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1771 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1772 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1773 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1774 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1775 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1776 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1777 ( 0x307 == cp || ( 0x307 < cp &&                                            \
1778 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1779 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1780 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
1781 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1782 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1783 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1784
1785 /*
1786         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1787
1788         \p{_Perl_Problematic_Locale_Foldeds_Start}
1789 */
1790 /*** GENERATED CODE ***/
1791 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1792 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1793 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1794     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
1795 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
1796     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
1797 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1798     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1799 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1800     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1801 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
1802     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1803 : ( 0xAA == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
1804     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1805 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1806     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1807 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1808     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1809 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1810
1811 /*** GENERATED CODE ***/
1812 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1813 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1814 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1815 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1816 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1817 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1818 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1819 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1820 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1821 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1822 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1823 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
1824 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1825 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1826 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1827
1828 /*
1829         PATWS: pattern white space
1830
1831         \p{_Perl_PatWS}
1832 */
1833 /*** GENERATED CODE ***/
1834 #define is_PATWS_safe(s,e,is_utf8)                                          \
1835 ( ( LIKELY((e) > (s)) ) ?                                                   \
1836     ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
1837     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1838                     ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
1839                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
1840 : 0 )
1841
1842 /*** GENERATED CODE ***/
1843 #define is_PATWS_cp(cp)                                                     \
1844 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1845 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp &&                                 \
1846 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1847 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1848 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1849 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1850 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1851 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1852
1853 #endif  /* EBCDIC 037 */
1854
1855 #endif /* PERL_REGCHARCLASS_H_ */
1856
1857 /* Generated from:
1858  * d34c77b7e7a94986cc82056919f4ffc1503b73091561e16bd8ef145ac0fd04c5 lib/Unicode/UCD.pm
1859  * 5e91b649379ec79af7cfb6b09410a24557cba4c6d733cd0a2b8a78a1448736d2 lib/unicore/ArabicShaping.txt
1860  * f5feb19cd084b2b1568fbc0f94f4b4b54941406e7fb36c7570f8352fd5022dbe lib/unicore/BidiBrackets.txt
1861  * e6cbd8ffe94f2e0fbfa6695d6c06c1e72eef7d3aa93cb6329d111285198b5e62 lib/unicore/BidiMirroring.txt
1862  * a28b205afe8625fffdb6544a5fe14cf02b91493d9900f07820fa2102a17548f7 lib/unicore/Blocks.txt
1863  * 9c772627c6ee77eea6a17b42927b8ee28ca05dc65d6a511062104baaf3d12294 lib/unicore/CaseFolding.txt
1864  * abc8394c5bde62453118b00c1c5842160a04d7fffb2e829ee5426b846596d081 lib/unicore/CompositionExclusions.txt
1865  * 2fc081011d8fabaf7cf4937732dd5a6d6a57e492c43f3adfeded513387ee0ec3 lib/unicore/DAge.txt
1866  * a6eb7a8671fb532fbd88c37fd7b20b5b2e7dbfc8b121f74c14abe2947db0da68 lib/unicore/DCoreProperties.txt
1867  * 92dcdda84142194a1596f22180fcdf8c0e7f86897f09cc9203c7dc636c549f5f lib/unicore/DNormalizationProps.txt
1868  * 904500178b2e752635bef27aaed3a2a3718a100bce35ff96b3890be7a8315d8f lib/unicore/EastAsianWidth.txt
1869  * 1989b03d93023d8f5cc33eebf0d2ea80c8bd8f8c97843059ea039acb582c2078 lib/unicore/EmojiData.txt
1870  * d7930c2a7318e66b4ba756d5e5b41fbc586c2ad43d450ae9d320a758510bae2e lib/unicore/EquivalentUnifiedIdeograph.txt
1871  * 8606af08712a8c18fe268d418e2e5a87eddee6e190cce4c2d5a76b4fadf035e8 lib/unicore/HangulSyllableType.txt
1872  * 49a1bf18b048454154881f6a8a605b5e2fc73e85fcc4df1cb26d52e8c2aeb9bf lib/unicore/IndicPositionalCategory.txt
1873  * 1b6f3ef6e00e5b2e2a93d2d3c954ca1cce368599c5f11874cd0f0ce222d4637b lib/unicore/IndicSyllabicCategory.txt
1874  * 285c5c1ae458bc3ccd6a1398a94d2d67ce6bc1d7fc0f098762836050345e9434 lib/unicore/Jamo.txt
1875  * 961f842fc70b5afd1d82c6645e68c10d1f701382aed38ae38cb2ff27f671903c lib/unicore/LineBreak.txt
1876  * ff61a0687d2f32c0dd1094254b8bde967883b43c2d4d50fd17531d498e41ab2c lib/unicore/NameAliases.txt
1877  * d3eb9a288ebeaf9de1237989f490705e287b6f610b59d2459fb1b7c2d8e39c39 lib/unicore/NamedSequences.txt
1878  * d30d3ee430cf3527449d024954f053e419fa4aa2246eb59e5cd8d621af0c4b3f lib/unicore/PropList.txt
1879  * efce54f7c715a332c19b3d14c6a0eea30c6cde91caf6ff0d21c755be933736f4 lib/unicore/PropValueAliases.txt
1880  * d3cc3f9f0b6a8f0b7ef1d6ef202675426c28f4a75de01fc69ed977a93a00982b lib/unicore/PropertyAliases.txt
1881  * 3746848c181b5dbc1e614dfac9b8a5e3568e6525c693ac14e692ac55dec57e91 lib/unicore/ScriptExtensions.txt
1882  * e6313a8edfd24f36c7a006fbcf1d1b7245b5dd009c6dde80441f0da08b822c43 lib/unicore/Scripts.txt
1883  * 817ce2e9edca8e075a153f54b8f3b020345e37652cd2bda9b1495c366af17e7e lib/unicore/SpecialCasing.txt
1884  * 93ab1acd8fd9d450463b50ae77eab151a7cda48f98b25b56baed8070f80fc936 lib/unicore/UnicodeData.txt
1885  * ec5ba64af58297a46de17848eb984d2b231adb304de92e9d0d3befdbf9dc2551 lib/unicore/VerticalOrientation.txt
1886  * 95bd55cf803b93eb0b4990cf0e1d70ede263b36412d9c6921fd6f15cef058961 lib/unicore/auxiliary/GCBTest.txt
1887  * 39d73448fd257e6082f83ddf4c8bf6feb191e85dc8fc56b1a8512482de5e3dea lib/unicore/auxiliary/GraphemeBreakProperty.txt
1888  * f385e70f79f5959ae66d64b00f4bda39db6cef78e5363a0cdd88db46eafc6c8f lib/unicore/auxiliary/LBTest.txt
1889  * 7d6c909af97d0ab545a132d412f6e4e65c7eb5158514a7feb9bf00bcd05875f9 lib/unicore/auxiliary/SBTest.txt
1890  * c47d674ef4170c46185bf56f7a4c6627f65f012295e0994f7dc4aea51f8fd8cf lib/unicore/auxiliary/SentenceBreakProperty.txt
1891  * 3e3320bbbe775de7f1a0b9a30021eb949116a9b05cb461c90596c5ecf1743831 lib/unicore/auxiliary/WBTest.txt
1892  * 40a50d1af5b4f7233b4762b11966e83ae3d873a0328dd0786796782bb9bced15 lib/unicore/auxiliary/WordBreakProperty.txt
1893  * db2c41c618bab54b00e58223ad11cec550f9b9fd1a471de236e660da92fe4870 lib/unicore/extracted/DBidiClass.txt
1894  * fecd8a1c49935d794c4c1012f4158aa536a13049a4c10d01aaf7b5f90f3b2cbc lib/unicore/extracted/DBinaryProperties.txt
1895  * db6f38fb4aa8b9181b5e6a9f320de9d5c2c9b5687116a619b3cb90138b025e0b lib/unicore/extracted/DCombiningClass.txt
1896  * 2524f69c175831fd84bfbaf13ea37992f41db167d728c51b1d0002c1d0b130b0 lib/unicore/extracted/DDecompositionType.txt
1897  * 16852301d54ae59b5cfe0daa6b8e17fb688ed055d59b2a5a11eaafc650cc9d30 lib/unicore/extracted/DEastAsianWidth.txt
1898  * 78f898b988049a5bea5039cea6ffe87a92596859ac660a6c438519b512fe2ee6 lib/unicore/extracted/DGeneralCategory.txt
1899  * 33441692403901287c834f96bd33b671133a6f74e2732c61a497608b9e434932 lib/unicore/extracted/DJoinGroup.txt
1900  * a792ac5ef602e3bace679cc96d7491701dcdb73d81c782253de88fdcc5e70e50 lib/unicore/extracted/DJoinType.txt
1901  * 78e2600e24fa7d5ab62117de50b382f8b31b08401c37a0782c38dacb340b64e7 lib/unicore/extracted/DLineBreak.txt
1902  * 1bde4ad73e271c6349fbd1972e54f38bba5cc1900c28f678e79b9e8909b31793 lib/unicore/extracted/DNumType.txt
1903  * 6278722699123f3890e4b1cc42011e96d8960e4958a3b93484361530983d2611 lib/unicore/extracted/DNumValues.txt
1904  * 0361666b8b957b7d50ed80a464742b2a979e2a387c5715f5e28b3a39bc149f6e lib/unicore/mktables
1905  * a712c758275b460d18fa77a26ed3589689bb3f69dcc1ea99b913e32db92a5cd2 lib/unicore/version
1906  * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
1907  * 830144f6afdd047b009754ffa06134397268f6638837fe85283483eb0cfdd558 regen/regcharclass.pl
1908  * c6b0b0b7e4ac4f5a57d203e84194749987477ea55b2366e3b343aadf8cc7d6b5 regen/regcharclass_multi_char_folds.pl
1909  * ex: set ro: */