github.com/shadialtarsha/go-pcre@v0.0.0-20220904164957-b4f1834ceecc/lib/pcre2_linux_386.go (about) 1 // Code generated by 'ccgo -o pcre2_linux_386.go -pkgname lib -trace-translation-units -export-externs X -export-defines D -export-fields F -export-structs S -export-typedefs T pcre.json .libs/libpcre2-8.a', DO NOT EDIT. 2 3 package lib 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 11 "modernc.org/libc" 12 "modernc.org/libc/sys/types" 13 ) 14 15 var _ = math.Pi 16 var _ reflect.Kind 17 var _ atomic.Value 18 var _ unsafe.Pointer 19 var _ *libc.TLS 20 var _ types.Size_t 21 22 const ( 23 DAIO_PRIO_DELTA_MAX = 20 // local_lim.h:78:1: 24 DBC_BASE_MAX = 99 // posix2_lim.h:63:1: 25 DBC_DIM_MAX = 2048 // posix2_lim.h:66:1: 26 DBC_SCALE_MAX = 99 // posix2_lim.h:69:1: 27 DBC_STRING_MAX = 1000 // posix2_lim.h:72:1: 28 DBIG_ENDIAN = 4321 // endian.h:28:1: 29 DBOOL_MAX = 1 // limits.h:186:1: 30 DBOOL_WIDTH = 1 // limits.h:189:1: 31 DBSR_DEFAULT = 1 // pcre2_internal.h:243:1: 32 DBUFSIZ = 8192 // stdio.h:99:1: 33 DBYTE_ORDER = 1234 // endian.h:30:1: 34 DCHARCLASS_NAME_MAX = 2048 // posix2_lim.h:84:1: 35 DCHAR_0 = 48 // pcre2_internal.h:999:1: 36 DCHAR_1 = 49 // pcre2_internal.h:1000:1: 37 DCHAR_2 = 50 // pcre2_internal.h:1001:1: 38 DCHAR_3 = 51 // pcre2_internal.h:1002:1: 39 DCHAR_4 = 52 // pcre2_internal.h:1003:1: 40 DCHAR_5 = 53 // pcre2_internal.h:1004:1: 41 DCHAR_6 = 54 // pcre2_internal.h:1005:1: 42 DCHAR_7 = 55 // pcre2_internal.h:1006:1: 43 DCHAR_8 = 56 // pcre2_internal.h:1007:1: 44 DCHAR_9 = 57 // pcre2_internal.h:1008:1: 45 DCHAR_A = 65 // pcre2_internal.h:1016:1: 46 DCHAR_AMPERSAND = 38 // pcre2_internal.h:989:1: 47 DCHAR_APOSTROPHE = 39 // pcre2_internal.h:990:1: 48 DCHAR_ASTERISK = 42 // pcre2_internal.h:993:1: 49 DCHAR_B = 66 // pcre2_internal.h:1017:1: 50 DCHAR_BACKSLASH = 92 // pcre2_internal.h:1043:1: 51 DCHAR_BEL = 7 // pcre2_internal.h:978:1: 52 DCHAR_BIT = 8 // limits.h:64:1: 53 DCHAR_BS = 8 // pcre2_internal.h:977:1: 54 DCHAR_C = 67 // pcre2_internal.h:1018:1: 55 DCHAR_CIRCUMFLEX_ACCENT = 94 // pcre2_internal.h:1045:1: 56 DCHAR_COLON = 58 // pcre2_internal.h:1009:1: 57 DCHAR_COMMA = 44 // pcre2_internal.h:995:1: 58 DCHAR_COMMERCIAL_AT = 64 // pcre2_internal.h:1015:1: 59 DCHAR_CR = 13 // pcre2_internal.h:973:1: 60 DCHAR_D = 68 // pcre2_internal.h:1019:1: 61 DCHAR_DEL = 127 // pcre2_internal.h:980:1: 62 DCHAR_DOLLAR_SIGN = 36 // pcre2_internal.h:987:1: 63 DCHAR_DOT = 46 // pcre2_internal.h:997:1: 64 DCHAR_E = 69 // pcre2_internal.h:1020:1: 65 DCHAR_EQUALS_SIGN = 61 // pcre2_internal.h:1012:1: 66 DCHAR_ESC = 27 // pcre2_internal.h:979:1: 67 DCHAR_EXCLAMATION_MARK = 33 // pcre2_internal.h:984:1: 68 DCHAR_F = 70 // pcre2_internal.h:1021:1: 69 DCHAR_FF = 12 // pcre2_internal.h:972:1: 70 DCHAR_G = 71 // pcre2_internal.h:1022:1: 71 DCHAR_GRAVE_ACCENT = 96 // pcre2_internal.h:1047:1: 72 DCHAR_GREATER_THAN_SIGN = 62 // pcre2_internal.h:1013:1: 73 DCHAR_H = 72 // pcre2_internal.h:1023:1: 74 DCHAR_HT = 9 // pcre2_internal.h:970:1: 75 DCHAR_I = 73 // pcre2_internal.h:1024:1: 76 DCHAR_J = 74 // pcre2_internal.h:1025:1: 77 DCHAR_K = 75 // pcre2_internal.h:1026:1: 78 DCHAR_L = 76 // pcre2_internal.h:1027:1: 79 DCHAR_LEFT_CURLY_BRACKET = 123 // pcre2_internal.h:1074:1: 80 DCHAR_LEFT_PARENTHESIS = 40 // pcre2_internal.h:991:1: 81 DCHAR_LEFT_SQUARE_BRACKET = 91 // pcre2_internal.h:1042:1: 82 DCHAR_LESS_THAN_SIGN = 60 // pcre2_internal.h:1011:1: 83 DCHAR_LF = 10 // pcre2_internal.h:974:1: 84 DCHAR_M = 77 // pcre2_internal.h:1028:1: 85 DCHAR_MAX = 127 // limits.h:99:1: 86 DCHAR_MIN = -128 // limits.h:97:1: 87 DCHAR_MINUS = 45 // pcre2_internal.h:996:1: 88 DCHAR_N = 78 // pcre2_internal.h:1029:1: 89 DCHAR_NL = 10 // pcre2_internal.h:975:1: 90 DCHAR_NUL = 0 // pcre2_internal.h:982:1: 91 DCHAR_NUMBER_SIGN = 35 // pcre2_internal.h:986:1: 92 DCHAR_O = 79 // pcre2_internal.h:1030:1: 93 DCHAR_P = 80 // pcre2_internal.h:1031:1: 94 DCHAR_PERCENT_SIGN = 37 // pcre2_internal.h:988:1: 95 DCHAR_PLUS = 43 // pcre2_internal.h:994:1: 96 DCHAR_Q = 81 // pcre2_internal.h:1032:1: 97 DCHAR_QUESTION_MARK = 63 // pcre2_internal.h:1014:1: 98 DCHAR_QUOTATION_MARK = 34 // pcre2_internal.h:985:1: 99 DCHAR_R = 82 // pcre2_internal.h:1033:1: 100 DCHAR_RIGHT_CURLY_BRACKET = 125 // pcre2_internal.h:1076:1: 101 DCHAR_RIGHT_PARENTHESIS = 41 // pcre2_internal.h:992:1: 102 DCHAR_RIGHT_SQUARE_BRACKET = 93 // pcre2_internal.h:1044:1: 103 DCHAR_S = 83 // pcre2_internal.h:1034:1: 104 DCHAR_SEMICOLON = 59 // pcre2_internal.h:1010:1: 105 DCHAR_SLASH = 47 // pcre2_internal.h:998:1: 106 DCHAR_SPACE = 32 // pcre2_internal.h:983:1: 107 DCHAR_T = 84 // pcre2_internal.h:1035:1: 108 DCHAR_TILDE = 126 // pcre2_internal.h:1077:1: 109 DCHAR_U = 85 // pcre2_internal.h:1036:1: 110 DCHAR_UNDERSCORE = 95 // pcre2_internal.h:1046:1: 111 DCHAR_V = 86 // pcre2_internal.h:1037:1: 112 DCHAR_VERTICAL_LINE = 124 // pcre2_internal.h:1075:1: 113 DCHAR_VT = 11 // pcre2_internal.h:971:1: 114 DCHAR_W = 87 // pcre2_internal.h:1038:1: 115 DCHAR_WIDTH = 8 // limits.h:165:1: 116 DCHAR_X = 88 // pcre2_internal.h:1039:1: 117 DCHAR_Y = 89 // pcre2_internal.h:1040:1: 118 DCHAR_Z = 90 // pcre2_internal.h:1041:1: 119 DCHAR_a = 97 // pcre2_internal.h:1048:1: 120 DCHAR_b = 98 // pcre2_internal.h:1049:1: 121 DCHAR_c = 99 // pcre2_internal.h:1050:1: 122 DCHAR_d = 100 // pcre2_internal.h:1051:1: 123 DCHAR_e = 101 // pcre2_internal.h:1052:1: 124 DCHAR_f = 102 // pcre2_internal.h:1053:1: 125 DCHAR_g = 103 // pcre2_internal.h:1054:1: 126 DCHAR_h = 104 // pcre2_internal.h:1055:1: 127 DCHAR_i = 105 // pcre2_internal.h:1056:1: 128 DCHAR_j = 106 // pcre2_internal.h:1057:1: 129 DCHAR_k = 107 // pcre2_internal.h:1058:1: 130 DCHAR_l = 108 // pcre2_internal.h:1059:1: 131 DCHAR_m = 109 // pcre2_internal.h:1060:1: 132 DCHAR_n = 110 // pcre2_internal.h:1061:1: 133 DCHAR_o = 111 // pcre2_internal.h:1062:1: 134 DCHAR_p = 112 // pcre2_internal.h:1063:1: 135 DCHAR_q = 113 // pcre2_internal.h:1064:1: 136 DCHAR_r = 114 // pcre2_internal.h:1065:1: 137 DCHAR_s = 115 // pcre2_internal.h:1066:1: 138 DCHAR_t = 116 // pcre2_internal.h:1067:1: 139 DCHAR_u = 117 // pcre2_internal.h:1068:1: 140 DCHAR_v = 118 // pcre2_internal.h:1069:1: 141 DCHAR_w = 119 // pcre2_internal.h:1070:1: 142 DCHAR_x = 120 // pcre2_internal.h:1071:1: 143 DCHAR_y = 121 // pcre2_internal.h:1072:1: 144 DCHAR_z = 122 // pcre2_internal.h:1073:1: 145 DCOLL_WEIGHTS_MAX = 255 // posix2_lim.h:75:1: 146 DCOMPILE_ERROR_BASE = 100 // pcre2_internal.h:221:1: 147 DDELAYTIMER_MAX = 2147483647 // local_lim.h:84:1: 148 DDFA_START_RWS_SIZE = 30720 // pcre2_internal.h:236:1: 149 DEOF = -1 // stdio.h:104:1: 150 DEXIT_FAILURE = 1 // stdlib.h:92:1: 151 DEXIT_SUCCESS = 0 // stdlib.h:93:1: 152 DEXPR_NEST_MAX = 32 // posix2_lim.h:78:1: 153 DFALSE = 0 // pcre2_internal.h:69:1: 154 DFD_SETSIZE = 1024 // select.h:73:1: 155 DFILENAME_MAX = 4096 // stdio_lim.h:27:1: 156 DFOPEN_MAX = 16 // stdio_lim.h:37:1: 157 DHAVE_BCOPY = 1 // config.h:60:1: 158 DHAVE_BZLIB_H = 1 // config.h:63:1: 159 DHAVE_CONFIG_H = 1 // <defines>:1:1: 160 DHAVE_DIRENT_H = 1 // config.h:66:1: 161 DHAVE_DLFCN_H = 1 // config.h:69:1: 162 DHAVE_INTTYPES_H = 1 // config.h:78:1: 163 DHAVE_LIMITS_H = 1 // config.h:81:1: 164 DHAVE_MEMFD_CREATE = 1 // config.h:84:1: 165 DHAVE_MEMMOVE = 1 // config.h:87:1: 166 DHAVE_MKOSTEMP = 1 // config.h:93:1: 167 DHAVE_REALPATH = 1 // config.h:111:1: 168 DHAVE_SECURE_GETENV = 1 // config.h:114:1: 169 DHAVE_STDINT_H = 1 // config.h:117:1: 170 DHAVE_STDIO_H = 1 // config.h:120:1: 171 DHAVE_STDLIB_H = 1 // config.h:123:1: 172 DHAVE_STRERROR = 1 // config.h:126:1: 173 DHAVE_STRINGS_H = 1 // config.h:129:1: 174 DHAVE_STRING_H = 1 // config.h:132:1: 175 DHAVE_SYS_STAT_H = 1 // config.h:135:1: 176 DHAVE_SYS_TYPES_H = 1 // config.h:138:1: 177 DHAVE_SYS_WAIT_H = 1 // config.h:141:1: 178 DHAVE_UNISTD_H = 1 // config.h:144:1: 179 DHAVE_VISIBILITY = 1 // config.h:147:1: 180 DHAVE_WCHAR_H = 1 // config.h:150:1: 181 DHAVE_ZLIB_H = 1 // config.h:156:1: 182 DHEAP_LIMIT = 20000000 // config.h:161:1: 183 DHOST_NAME_MAX = 64 // local_lim.h:93:1: 184 DIMM2_SIZE = 2 // pcre2_intmodedep.h:193:1: 185 DINT16_MAX = 32767 // stdint.h:122:1: 186 DINT16_MIN = -32768 // stdint.h:117:1: 187 DINT16_WIDTH = 16 // stdint.h:280:1: 188 DINT32_MAX = 2147483647 // stdint.h:123:1: 189 DINT32_MIN = -2147483648 // stdint.h:118:1: 190 DINT32_WIDTH = 32 // stdint.h:282:1: 191 DINT64_MAX = 9223372036854775807 // stdint.h:124:1: 192 DINT64_MIN = -9223372036854775808 // stdint.h:119:1: 193 DINT64_WIDTH = 64 // stdint.h:284:1: 194 DINT8_MAX = 127 // stdint.h:121:1: 195 DINT8_MIN = -128 // stdint.h:116:1: 196 DINT8_WIDTH = 8 // stdint.h:278:1: 197 DINTMAX_MAX = 9223372036854775807 // stdint.h:199:1: 198 DINTMAX_MIN = -9223372036854775808 // stdint.h:197:1: 199 DINTMAX_WIDTH = 64 // stdint.h:308:1: 200 DINTPTR_MAX = 9223372036854775807 // stdint.h:187:1: 201 DINTPTR_MIN = -9223372036854775808 // stdint.h:186:1: 202 DINTPTR_WIDTH = 64 // stdint.h:305:1: 203 DINT_FAST16_MAX = 9223372036854775807 // stdint.h:164:1: 204 DINT_FAST16_MIN = -9223372036854775808 // stdint.h:154:1: 205 DINT_FAST16_WIDTH = 64 // stdint.h:298:1: 206 DINT_FAST32_MAX = 9223372036854775807 // stdint.h:165:1: 207 DINT_FAST32_MIN = -9223372036854775808 // stdint.h:155:1: 208 DINT_FAST32_WIDTH = 64 // stdint.h:300:1: 209 DINT_FAST64_MAX = 9223372036854775807 // stdint.h:170:1: 210 DINT_FAST64_MIN = -9223372036854775808 // stdint.h:160:1: 211 DINT_FAST64_WIDTH = 64 // stdint.h:302:1: 212 DINT_FAST8_MAX = 127 // stdint.h:162:1: 213 DINT_FAST8_MIN = -128 // stdint.h:152:1: 214 DINT_FAST8_WIDTH = 8 // stdint.h:296:1: 215 DINT_LEAST16_MAX = 32767 // stdint.h:140:1: 216 DINT_LEAST16_MIN = -32768 // stdint.h:135:1: 217 DINT_LEAST16_WIDTH = 16 // stdint.h:289:1: 218 DINT_LEAST32_MAX = 2147483647 // stdint.h:141:1: 219 DINT_LEAST32_MIN = -2147483648 // stdint.h:136:1: 220 DINT_LEAST32_WIDTH = 32 // stdint.h:291:1: 221 DINT_LEAST64_MAX = 9223372036854775807 // stdint.h:142:1: 222 DINT_LEAST64_MIN = -9223372036854775808 // stdint.h:137:1: 223 DINT_LEAST64_WIDTH = 64 // stdint.h:293:1: 224 DINT_LEAST8_MAX = 127 // stdint.h:139:1: 225 DINT_LEAST8_MIN = -128 // stdint.h:134:1: 226 DINT_LEAST8_WIDTH = 8 // stdint.h:287:1: 227 DINT_MAX = 2147483647 // limits.h:120:1: 228 DINT_MIN = -2147483648 // limits.h:118:1: 229 DINT_WIDTH = 32 // limits.h:175:1: 230 DIOV_MAX = 1024 // xopen_lim.h:66:1: 231 DLINE_MAX = 2048 // posix2_lim.h:81:1: 232 DLINK_SIZE = 2 // config.h:168:1: 233 DLITTLE_ENDIAN = 1234 // endian.h:27:1: 234 DLLONG_MAX = 9223372036854775807 // limits.h:142:1: 235 DLLONG_MIN = -9223372036854775808 // limits.h:140:1: 236 DLLONG_WIDTH = 64 // limits.h:183:1: 237 DLOGIN_NAME_MAX = 256 // local_lim.h:90:1: 238 DLONG_BIT = 64 // xopen_lim.h:137:1: 239 DLONG_LONG_MAX = 9223372036854775807 // limits.h:154:1: 240 DLONG_LONG_MIN = -9223372036854775808 // limits.h:152:1: 241 DLONG_MAX = 9223372036854775807 // limits.h:131:1: 242 DLONG_MIN = -9223372036854775808 // limits.h:129:1: 243 DLONG_WIDTH = 64 // limits.h:179:1: 244 DLOOKBEHIND_MAX = 65535 // pcre2_intmodedep.h:616:1: 245 DLT_OBJDIR = ".libs/" // config.h:171:1: 246 DL_ctermid = 9 // stdio_lim.h:30:1: 247 DL_cuserid = 9 // stdio_lim.h:32:1: 248 DL_tmpnam = 20 // stdio_lim.h:25:1: 249 DMAGIC_NUMBER = 0x50435245 // pcre2_internal.h:547:1: 250 DMATCH_LIMIT = 10000000 // config.h:180:1: 251 DMATCH_LIMIT_DEPTH = 10000000 // config.h:192:1: 252 DMAX_CANON = 255 // limits.h:10:1: 253 DMAX_INPUT = 255 // limits.h:11:1: 254 DMAX_MARK = 255 // pcre2_intmodedep.h:213:1: 255 DMAX_NAME_COUNT = 10000 // config.h:197:1: 256 DMAX_NAME_SIZE = 32 // config.h:202:1: 257 DMAX_NON_UTF_CHAR = 255 // pcre2_internal.h:1894:1: 258 DMAX_PATTERN_SIZE = 65536 // pcre2_intmodedep.h:110:1: 259 DMAX_UTF_CODE_POINT = 0x10ffff // pcre2_internal.h:209:1: 260 DMAX_UTF_SINGLE_CU = 127 // pcre2_intmodedep.h:282:1: 261 DMAYBE_UTF_MULTI = 0 // pcre2_intmodedep.h:278:1: 262 DMB_LEN_MAX = 16 // limits.h:32:1: 263 DMQ_PRIO_MAX = 32768 // local_lim.h:96:1: 264 DNAME_MAX = 255 // limits.h:12:1: 265 DNEWLINE_DEFAULT = 2 // config.h:211:1: 266 DNGROUPS_MAX = 65536 // limits.h:7:1: 267 DNLTYPE_ANY = 1 // pcre2_internal.h:474:1: 268 DNLTYPE_ANYCRLF = 2 // pcre2_internal.h:475:1: 269 DNLTYPE_FIXED = 0 // pcre2_internal.h:473:1: 270 DNL_ARGMAX = 4096 // xopen_lim.h:73:1: 271 DNL_LANGMAX = 2048 // xopen_lim.h:76:1: 272 DNL_MSGMAX = 2147483647 // xopen_lim.h:79:1: 273 DNL_NMAX = 2147483647 // xopen_lim.h:84:1: 274 DNL_SETMAX = 2147483647 // xopen_lim.h:88:1: 275 DNL_TEXTMAX = 2147483647 // xopen_lim.h:91:1: 276 DNOTACHAR = 0xffffffff // pcre2_internal.h:205:1: 277 DNZERO = 20 // xopen_lim.h:94:1: 278 DPACKAGE = "pcre2" // config.h:214:1: 279 DPACKAGE_BUGREPORT = "" // config.h:217:1: 280 DPACKAGE_NAME = "PCRE2" // config.h:220:1: 281 DPACKAGE_STRING = "PCRE2 10.40" // config.h:223:1: 282 DPACKAGE_TARNAME = "pcre2" // config.h:226:1: 283 DPACKAGE_URL = "" // config.h:229:1: 284 DPACKAGE_VERSION = "10.40" // config.h:232:1: 285 DPARENS_NEST_LIMIT = 250 // config.h:237:1: 286 DPATH_MAX = 4096 // limits.h:13:1: 287 DPCRE2GREP_BUFSIZE = 20480 // config.h:245:1: 288 DPCRE2GREP_MAX_BUFSIZE = 1048576 // config.h:251:1: 289 DPCRE2_ALLOW_EMPTY_CLASS = 0x00000001 // pcre2.h:119:1: 290 DPCRE2_ALT_BSUX = 0x00000002 // pcre2.h:120:1: 291 DPCRE2_ALT_CIRCUMFLEX = 0x00200000 // pcre2.h:140:1: 292 DPCRE2_ALT_VERBNAMES = 0x00400000 // pcre2.h:141:1: 293 DPCRE2_ANCHORED = 0x80000000 // pcre2.h:105:1: 294 DPCRE2_AUTO_CALLOUT = 0x00000004 // pcre2.h:121:1: 295 DPCRE2_BSR_ANYCRLF = 2 // pcre2.h:211:1: 296 DPCRE2_BSR_SET = 0x00004000 // pcre2_internal.h:522:1: 297 DPCRE2_BSR_UNICODE = 1 // pcre2.h:210:1: 298 DPCRE2_CALLOUT_BACKTRACK = 0x00000002 // pcre2.h:513:1: 299 DPCRE2_CALLOUT_STARTMATCH = 0x00000001 // pcre2.h:512:1: 300 DPCRE2_CALL_CONVENTION = 0 // pcre2.h:81:1: 301 DPCRE2_CASELESS = 0x00000008 // pcre2.h:122:1: 302 DPCRE2_CODE_UNIT_WIDTH = 8 // <defines>:2:1: 303 DPCRE2_CONFIG_BSR = 0 // pcre2.h:437:1: 304 DPCRE2_CONFIG_COMPILED_WIDTHS = 14 // pcre2.h:452:1: 305 DPCRE2_CONFIG_DEPTHLIMIT = 7 // pcre2.h:444:1: 306 DPCRE2_CONFIG_HEAPLIMIT = 12 // pcre2.h:450:1: 307 DPCRE2_CONFIG_JIT = 1 // pcre2.h:438:1: 308 DPCRE2_CONFIG_JITTARGET = 2 // pcre2.h:439:1: 309 DPCRE2_CONFIG_LINKSIZE = 3 // pcre2.h:440:1: 310 DPCRE2_CONFIG_MATCHLIMIT = 4 // pcre2.h:441:1: 311 DPCRE2_CONFIG_NEVER_BACKSLASH_C = 13 // pcre2.h:451:1: 312 DPCRE2_CONFIG_NEWLINE = 5 // pcre2.h:442:1: 313 DPCRE2_CONFIG_PARENSLIMIT = 6 // pcre2.h:443:1: 314 DPCRE2_CONFIG_RECURSIONLIMIT = 7 // pcre2.h:445:1: 315 DPCRE2_CONFIG_STACKRECURSE = 8 // pcre2.h:446:1: 316 DPCRE2_CONFIG_TABLES_LENGTH = 15 // pcre2.h:453:1: 317 DPCRE2_CONFIG_UNICODE = 9 // pcre2.h:447:1: 318 DPCRE2_CONFIG_UNICODE_VERSION = 10 // pcre2.h:448:1: 319 DPCRE2_CONFIG_VERSION = 11 // pcre2.h:449:1: 320 DPCRE2_CONVERT_GLOB = 0x00000010 // pcre2.h:195:1: 321 DPCRE2_CONVERT_GLOB_NO_STARSTAR = 0x00000050 // pcre2.h:197:1: 322 DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR = 0x00000030 // pcre2.h:196:1: 323 DPCRE2_CONVERT_NO_UTF_CHECK = 0x00000002 // pcre2.h:192:1: 324 DPCRE2_CONVERT_POSIX_BASIC = 0x00000004 // pcre2.h:193:1: 325 DPCRE2_CONVERT_POSIX_EXTENDED = 0x00000008 // pcre2.h:194:1: 326 DPCRE2_CONVERT_UTF = 0x00000001 // pcre2.h:191:1: 327 DPCRE2_COPY_MATCHED_SUBJECT = 0x00004000 // pcre2.h:184:1: 328 DPCRE2_DATE = 2004 // pcre2.h:47:1: 329 DPCRE2_DEREF_TABLES = 0x00040000 // pcre2_internal.h:526:1: 330 DPCRE2_DFA_RESTART = 0x00000040 // pcre2.h:176:1: 331 DPCRE2_DFA_SHORTEST = 0x00000080 // pcre2.h:177:1: 332 DPCRE2_DOLLAR_ENDONLY = 0x00000010 // pcre2.h:123:1: 333 DPCRE2_DOTALL = 0x00000020 // pcre2.h:124:1: 334 DPCRE2_DUPCAPUSED = 0x00200000 // pcre2_internal.h:529:1: 335 DPCRE2_DUPNAMES = 0x00000040 // pcre2.h:125:1: 336 DPCRE2_ENDANCHORED = 0x20000000 // pcre2.h:107:1: 337 DPCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN = 195 // pcre2.h:311:1: 338 DPCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED = 183 // pcre2.h:299:1: 339 DPCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED = 185 // pcre2.h:301:1: 340 DPCRE2_ERROR_BACKSLASH_C_SYNTAX = 168 // pcre2.h:284:1: 341 DPCRE2_ERROR_BACKSLASH_G_SYNTAX = 157 // pcre2.h:272:1: 342 DPCRE2_ERROR_BACKSLASH_K_IN_LOOKAROUND = 199 // pcre2.h:315:1: 343 DPCRE2_ERROR_BACKSLASH_K_SYNTAX = 169 // pcre2.h:285:1: 344 DPCRE2_ERROR_BACKSLASH_N_IN_CLASS = 171 // pcre2.h:287:1: 345 DPCRE2_ERROR_BACKSLASH_O_MISSING_BRACE = 155 // pcre2.h:270:1: 346 DPCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG = 177 // pcre2.h:293:1: 347 DPCRE2_ERROR_BADDATA = -29 // pcre2.h:363:1: 348 DPCRE2_ERROR_BADMAGIC = -31 // pcre2.h:365:1: 349 DPCRE2_ERROR_BADMODE = -32 // pcre2.h:366:1: 350 DPCRE2_ERROR_BADOFFSET = -33 // pcre2.h:367:1: 351 DPCRE2_ERROR_BADOFFSETLIMIT = -56 // pcre2.h:391:1: 352 DPCRE2_ERROR_BADOPTION = -34 // pcre2.h:368:1: 353 DPCRE2_ERROR_BADREPESCAPE = -57 // pcre2.h:392:1: 354 DPCRE2_ERROR_BADREPLACEMENT = -35 // pcre2.h:369:1: 355 DPCRE2_ERROR_BADSERIALIZEDDATA = -62 // pcre2.h:397:1: 356 DPCRE2_ERROR_BADSUBSPATTERN = -60 // pcre2.h:395:1: 357 DPCRE2_ERROR_BADSUBSTITUTION = -59 // pcre2.h:394:1: 358 DPCRE2_ERROR_BADUTFOFFSET = -36 // pcre2.h:370:1: 359 DPCRE2_ERROR_BAD_LITERAL_OPTIONS = 192 // pcre2.h:308:1: 360 DPCRE2_ERROR_BAD_OPTIONS = 117 // pcre2.h:232:1: 361 DPCRE2_ERROR_BAD_RELATIVE_REFERENCE = 129 // pcre2.h:244:1: 362 DPCRE2_ERROR_BAD_SUBPATTERN_REFERENCE = 115 // pcre2.h:230:1: 363 DPCRE2_ERROR_CALLOUT = -37 // pcre2.h:371:1: 364 DPCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER = 182 // pcre2.h:298:1: 365 DPCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER = 181 // pcre2.h:297:1: 366 DPCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG = 138 // pcre2.h:253:1: 367 DPCRE2_ERROR_CALLOUT_STRING_TOO_LONG = 172 // pcre2.h:288:1: 368 DPCRE2_ERROR_CLASS_INVALID_RANGE = 150 // pcre2.h:265:1: 369 DPCRE2_ERROR_CLASS_RANGE_ORDER = 108 // pcre2.h:223:1: 370 DPCRE2_ERROR_CODE_POINT_TOO_BIG = 134 // pcre2.h:249:1: 371 DPCRE2_ERROR_CONDITION_ASSERTION_EXPECTED = 128 // pcre2.h:243:1: 372 DPCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED = 198 // pcre2.h:314:1: 373 DPCRE2_ERROR_CONVERT_SYNTAX = -64 // pcre2.h:399:1: 374 DPCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES = 154 // pcre2.h:269:1: 375 DPCRE2_ERROR_DEPTHLIMIT = -53 // pcre2.h:387:1: 376 DPCRE2_ERROR_DFA_BADRESTART = -38 // pcre2.h:372:1: 377 DPCRE2_ERROR_DFA_RECURSE = -39 // pcre2.h:373:1: 378 DPCRE2_ERROR_DFA_UCOND = -40 // pcre2.h:374:1: 379 DPCRE2_ERROR_DFA_UFUNC = -41 // pcre2.h:375:1: 380 DPCRE2_ERROR_DFA_UINVALID_UTF = -66 // pcre2.h:401:1: 381 DPCRE2_ERROR_DFA_UITEM = -42 // pcre2.h:376:1: 382 DPCRE2_ERROR_DFA_WSSIZE = -43 // pcre2.h:377:1: 383 DPCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME = 143 // pcre2.h:258:1: 384 DPCRE2_ERROR_END_BACKSLASH = 101 // pcre2.h:216:1: 385 DPCRE2_ERROR_END_BACKSLASH_C = 102 // pcre2.h:217:1: 386 DPCRE2_ERROR_ESCAPE_INVALID_IN_CLASS = 107 // pcre2.h:222:1: 387 DPCRE2_ERROR_ESCAPE_INVALID_IN_VERB = 140 // pcre2.h:255:1: 388 DPCRE2_ERROR_HEAPLIMIT = -63 // pcre2.h:398:1: 389 DPCRE2_ERROR_HEAP_FAILED = 121 // pcre2.h:236:1: 390 DPCRE2_ERROR_INTERNAL = -44 // pcre2.h:378:1: 391 DPCRE2_ERROR_INTERNAL_BAD_CODE = 189 // pcre2.h:305:1: 392 DPCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS = 180 // pcre2.h:296:1: 393 DPCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP = 190 // pcre2.h:306:1: 394 DPCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS = 170 // pcre2.h:286:1: 395 DPCRE2_ERROR_INTERNAL_CODE_OVERFLOW = 123 // pcre2.h:238:1: 396 DPCRE2_ERROR_INTERNAL_DUPMATCH = -65 // pcre2.h:400:1: 397 DPCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN = 153 // pcre2.h:268:1: 398 DPCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE = 152 // pcre2.h:267:1: 399 DPCRE2_ERROR_INTERNAL_PARSED_OVERFLOW = 163 // pcre2.h:279:1: 400 DPCRE2_ERROR_INTERNAL_STUDY_ERROR = 131 // pcre2.h:246:1: 401 DPCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT = 110 // pcre2.h:225:1: 402 DPCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE = 156 // pcre2.h:271:1: 403 DPCRE2_ERROR_INVALID_AFTER_PARENS_QUERY = 111 // pcre2.h:226:1: 404 DPCRE2_ERROR_INVALID_HEXADECIMAL = 167 // pcre2.h:283:1: 405 DPCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS = 194 // pcre2.h:310:1: 406 DPCRE2_ERROR_INVALID_OCTAL = 164 // pcre2.h:280:1: 407 DPCRE2_ERROR_INVALID_SUBPATTERN_NAME = 144 // pcre2.h:259:1: 408 DPCRE2_ERROR_JIT_BADOPTION = -45 // pcre2.h:379:1: 409 DPCRE2_ERROR_JIT_STACKLIMIT = -46 // pcre2.h:380:1: 410 DPCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C = 136 // pcre2.h:251:1: 411 DPCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH = 125 // pcre2.h:240:1: 412 DPCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED = 135 // pcre2.h:250:1: 413 DPCRE2_ERROR_LOOKBEHIND_TOO_LONG = 187 // pcre2.h:303:1: 414 DPCRE2_ERROR_MALFORMED_UNICODE_PROPERTY = 146 // pcre2.h:261:1: 415 DPCRE2_ERROR_MARK_MISSING_ARGUMENT = 166 // pcre2.h:282:1: 416 DPCRE2_ERROR_MATCHLIMIT = -47 // pcre2.h:381:1: 417 DPCRE2_ERROR_MISSING_CALLOUT_CLOSING = 139 // pcre2.h:254:1: 418 DPCRE2_ERROR_MISSING_CLOSING_PARENTHESIS = 114 // pcre2.h:229:1: 419 DPCRE2_ERROR_MISSING_COMMENT_CLOSING = 118 // pcre2.h:233:1: 420 DPCRE2_ERROR_MISSING_CONDITION_CLOSING = 124 // pcre2.h:239:1: 421 DPCRE2_ERROR_MISSING_NAME_TERMINATOR = 142 // pcre2.h:257:1: 422 DPCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS = 178 // pcre2.h:294:1: 423 DPCRE2_ERROR_MISSING_SQUARE_BRACKET = 106 // pcre2.h:221:1: 424 DPCRE2_ERROR_MIXEDTABLES = -30 // pcre2.h:364:1: 425 DPCRE2_ERROR_NOMATCH = -1 // pcre2.h:320:1: 426 DPCRE2_ERROR_NOMEMORY = -48 // pcre2.h:382:1: 427 DPCRE2_ERROR_NOSUBSTRING = -49 // pcre2.h:383:1: 428 DPCRE2_ERROR_NOUNIQUESUBSTRING = -50 // pcre2.h:384:1: 429 DPCRE2_ERROR_NO_SURROGATES_IN_UTF16 = 191 // pcre2.h:307:1: 430 DPCRE2_ERROR_NULL = -51 // pcre2.h:385:1: 431 DPCRE2_ERROR_NULL_PATTERN = 116 // pcre2.h:231:1: 432 DPCRE2_ERROR_OCTAL_BYTE_TOO_BIG = 151 // pcre2.h:266:1: 433 DPCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING = 158 // pcre2.h:273:1: 434 DPCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP = 119 // pcre2.h:234:1: 435 DPCRE2_ERROR_PARENTHESES_STACK_CHECK = 133 // pcre2.h:248:1: 436 DPCRE2_ERROR_PARTIAL = -2 // pcre2.h:321:1: 437 DPCRE2_ERROR_PATTERN_STRING_TOO_LONG = 188 // pcre2.h:304:1: 438 DPCRE2_ERROR_PATTERN_TOO_COMPLICATED = 186 // pcre2.h:302:1: 439 DPCRE2_ERROR_PATTERN_TOO_LARGE = 120 // pcre2.h:235:1: 440 DPCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS = 112 // pcre2.h:227:1: 441 DPCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING = 113 // pcre2.h:228:1: 442 DPCRE2_ERROR_QUANTIFIER_INVALID = 109 // pcre2.h:224:1: 443 DPCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER = 104 // pcre2.h:219:1: 444 DPCRE2_ERROR_QUANTIFIER_TOO_BIG = 105 // pcre2.h:220:1: 445 DPCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP = 184 // pcre2.h:300:1: 446 DPCRE2_ERROR_RECURSELOOP = -52 // pcre2.h:386:1: 447 DPCRE2_ERROR_RECURSIONLIMIT = -53 // pcre2.h:388:1: 448 DPCRE2_ERROR_REPMISSINGBRACE = -58 // pcre2.h:393:1: 449 DPCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE = 196 // pcre2.h:312:1: 450 DPCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH = 165 // pcre2.h:281:1: 451 DPCRE2_ERROR_SUBPATTERN_NAME_EXPECTED = 162 // pcre2.h:278:1: 452 DPCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG = 148 // pcre2.h:263:1: 453 DPCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG = 161 // pcre2.h:277:1: 454 DPCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE = 193 // pcre2.h:309:1: 455 DPCRE2_ERROR_TOOMANYREPLACE = -61 // pcre2.h:396:1: 456 DPCRE2_ERROR_TOO_MANY_CAPTURES = 197 // pcre2.h:313:1: 457 DPCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES = 127 // pcre2.h:242:1: 458 DPCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS = 149 // pcre2.h:264:1: 459 DPCRE2_ERROR_UCP_IS_DISABLED = 175 // pcre2.h:291:1: 460 DPCRE2_ERROR_UNAVAILABLE = -54 // pcre2.h:389:1: 461 DPCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT = 173 // pcre2.h:289:1: 462 DPCRE2_ERROR_UNICODE_NOT_SUPPORTED = 132 // pcre2.h:247:1: 463 DPCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE = 145 // pcre2.h:260:1: 464 DPCRE2_ERROR_UNKNOWN_ESCAPE = 103 // pcre2.h:218:1: 465 DPCRE2_ERROR_UNKNOWN_POSIX_CLASS = 130 // pcre2.h:245:1: 466 DPCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY = 147 // pcre2.h:262:1: 467 DPCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS = 122 // pcre2.h:237:1: 468 DPCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P = 141 // pcre2.h:256:1: 469 DPCRE2_ERROR_UNSET = -55 // pcre2.h:390:1: 470 DPCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE = 137 // pcre2.h:252:1: 471 DPCRE2_ERROR_UTF16_ERR1 = -24 // pcre2.h:349:1: 472 DPCRE2_ERROR_UTF16_ERR2 = -25 // pcre2.h:350:1: 473 DPCRE2_ERROR_UTF16_ERR3 = -26 // pcre2.h:351:1: 474 DPCRE2_ERROR_UTF32_ERR1 = -27 // pcre2.h:355:1: 475 DPCRE2_ERROR_UTF32_ERR2 = -28 // pcre2.h:356:1: 476 DPCRE2_ERROR_UTF8_ERR1 = -3 // pcre2.h:325:1: 477 DPCRE2_ERROR_UTF8_ERR10 = -12 // pcre2.h:334:1: 478 DPCRE2_ERROR_UTF8_ERR11 = -13 // pcre2.h:335:1: 479 DPCRE2_ERROR_UTF8_ERR12 = -14 // pcre2.h:336:1: 480 DPCRE2_ERROR_UTF8_ERR13 = -15 // pcre2.h:337:1: 481 DPCRE2_ERROR_UTF8_ERR14 = -16 // pcre2.h:338:1: 482 DPCRE2_ERROR_UTF8_ERR15 = -17 // pcre2.h:339:1: 483 DPCRE2_ERROR_UTF8_ERR16 = -18 // pcre2.h:340:1: 484 DPCRE2_ERROR_UTF8_ERR17 = -19 // pcre2.h:341:1: 485 DPCRE2_ERROR_UTF8_ERR18 = -20 // pcre2.h:342:1: 486 DPCRE2_ERROR_UTF8_ERR19 = -21 // pcre2.h:343:1: 487 DPCRE2_ERROR_UTF8_ERR2 = -4 // pcre2.h:326:1: 488 DPCRE2_ERROR_UTF8_ERR20 = -22 // pcre2.h:344:1: 489 DPCRE2_ERROR_UTF8_ERR21 = -23 // pcre2.h:345:1: 490 DPCRE2_ERROR_UTF8_ERR3 = -5 // pcre2.h:327:1: 491 DPCRE2_ERROR_UTF8_ERR4 = -6 // pcre2.h:328:1: 492 DPCRE2_ERROR_UTF8_ERR5 = -7 // pcre2.h:329:1: 493 DPCRE2_ERROR_UTF8_ERR6 = -8 // pcre2.h:330:1: 494 DPCRE2_ERROR_UTF8_ERR7 = -9 // pcre2.h:331:1: 495 DPCRE2_ERROR_UTF8_ERR8 = -10 // pcre2.h:332:1: 496 DPCRE2_ERROR_UTF8_ERR9 = -11 // pcre2.h:333:1: 497 DPCRE2_ERROR_UTF_IS_DISABLED = 174 // pcre2.h:290:1: 498 DPCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED = 159 // pcre2.h:275:1: 499 DPCRE2_ERROR_VERB_NAME_TOO_LONG = 176 // pcre2.h:292:1: 500 DPCRE2_ERROR_VERB_UNKNOWN = 160 // pcre2.h:276:1: 501 DPCRE2_ERROR_VERSION_CONDITION_SYNTAX = 179 // pcre2.h:295:1: 502 DPCRE2_ERROR_ZERO_RELATIVE_REFERENCE = 126 // pcre2.h:241:1: 503 DPCRE2_EXTENDED = 0x00000080 // pcre2.h:126:1: 504 DPCRE2_EXTENDED_MORE = 0x01000000 // pcre2.h:143:1: 505 DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK = 0x00000040 // pcre2.h:155:1: 506 DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES = 0x00000001 // pcre2.h:149:1: 507 DPCRE2_EXTRA_ALT_BSUX = 0x00000020 // pcre2.h:154:1: 508 DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL = 0x00000002 // pcre2.h:150:1: 509 DPCRE2_EXTRA_ESCAPED_CR_IS_LF = 0x00000010 // pcre2.h:153:1: 510 DPCRE2_EXTRA_MATCH_LINE = 0x00000008 // pcre2.h:152:1: 511 DPCRE2_EXTRA_MATCH_WORD = 0x00000004 // pcre2.h:151:1: 512 DPCRE2_FIRSTCASELESS = 0x00000020 // pcre2_internal.h:513:1: 513 DPCRE2_FIRSTLINE = 0x00000100 // pcre2.h:127:1: 514 DPCRE2_FIRSTMAPSET = 0x00000040 // pcre2_internal.h:514:1: 515 DPCRE2_FIRSTSET = 0x00000010 // pcre2_internal.h:512:1: 516 DPCRE2_HASACCEPT = 0x00800000 // pcre2_internal.h:531:1: 517 DPCRE2_HASBKC = 0x00400000 // pcre2_internal.h:530:1: 518 DPCRE2_HASBKPORX = 0x00100000 // pcre2_internal.h:528:1: 519 DPCRE2_HASCRORLF = 0x00000800 // pcre2_internal.h:519:1: 520 DPCRE2_HASTHEN = 0x00001000 // pcre2_internal.h:520:1: 521 DPCRE2_H_IDEMPOTENT_GUARD = 0 // pcre2.h:40:1: 522 DPCRE2_INFO_ALLOPTIONS = 0 // pcre2.h:406:1: 523 DPCRE2_INFO_ARGOPTIONS = 1 // pcre2.h:407:1: 524 DPCRE2_INFO_BACKREFMAX = 2 // pcre2.h:408:1: 525 DPCRE2_INFO_BSR = 3 // pcre2.h:409:1: 526 DPCRE2_INFO_CAPTURECOUNT = 4 // pcre2.h:410:1: 527 DPCRE2_INFO_DEPTHLIMIT = 21 // pcre2.h:427:1: 528 DPCRE2_INFO_EXTRAOPTIONS = 26 // pcre2.h:433:1: 529 DPCRE2_INFO_FIRSTBITMAP = 7 // pcre2.h:413:1: 530 DPCRE2_INFO_FIRSTCODETYPE = 6 // pcre2.h:412:1: 531 DPCRE2_INFO_FIRSTCODEUNIT = 5 // pcre2.h:411:1: 532 DPCRE2_INFO_FRAMESIZE = 24 // pcre2.h:431:1: 533 DPCRE2_INFO_HASBACKSLASHC = 23 // pcre2.h:430:1: 534 DPCRE2_INFO_HASCRORLF = 8 // pcre2.h:414:1: 535 DPCRE2_INFO_HEAPLIMIT = 25 // pcre2.h:432:1: 536 DPCRE2_INFO_JCHANGED = 9 // pcre2.h:415:1: 537 DPCRE2_INFO_JITSIZE = 10 // pcre2.h:416:1: 538 DPCRE2_INFO_LASTCODETYPE = 12 // pcre2.h:418:1: 539 DPCRE2_INFO_LASTCODEUNIT = 11 // pcre2.h:417:1: 540 DPCRE2_INFO_MATCHEMPTY = 13 // pcre2.h:419:1: 541 DPCRE2_INFO_MATCHLIMIT = 14 // pcre2.h:420:1: 542 DPCRE2_INFO_MAXLOOKBEHIND = 15 // pcre2.h:421:1: 543 DPCRE2_INFO_MINLENGTH = 16 // pcre2.h:422:1: 544 DPCRE2_INFO_NAMECOUNT = 17 // pcre2.h:423:1: 545 DPCRE2_INFO_NAMEENTRYSIZE = 18 // pcre2.h:424:1: 546 DPCRE2_INFO_NAMETABLE = 19 // pcre2.h:425:1: 547 DPCRE2_INFO_NEWLINE = 20 // pcre2.h:426:1: 548 DPCRE2_INFO_RECURSIONLIMIT = 21 // pcre2.h:428:1: 549 DPCRE2_INFO_SIZE = 22 // pcre2.h:429:1: 550 DPCRE2_INTERNAL_H_IDEMPOTENT_GUARD = 0 // pcre2_internal.h:42:1: 551 DPCRE2_JCHANGED = 0x00000400 // pcre2_internal.h:518:1: 552 DPCRE2_JIT_COMPLETE = 0x00000001 // pcre2.h:159:1: 553 DPCRE2_JIT_INVALID_UTF = 0x00000100 // pcre2.h:162:1: 554 DPCRE2_JIT_PARTIAL_HARD = 0x00000004 // pcre2.h:161:1: 555 DPCRE2_JIT_PARTIAL_SOFT = 0x00000002 // pcre2.h:160:1: 556 DPCRE2_KEEP_UNINITIALIZED = 0 // pcre2_internal.h:87:1: 557 DPCRE2_LASTCASELESS = 0x00000100 // pcre2_internal.h:516:1: 558 DPCRE2_LASTSET = 0x00000080 // pcre2_internal.h:515:1: 559 DPCRE2_LITERAL = 0x02000000 // pcre2.h:144:1: 560 DPCRE2_MAJOR = 10 // pcre2.h:44:1: 561 DPCRE2_MATCH_EMPTY = 0x00002000 // pcre2_internal.h:521:1: 562 DPCRE2_MATCH_INVALID_UTF = 0x04000000 // pcre2.h:145:1: 563 DPCRE2_MATCH_UNSET_BACKREF = 0x00000200 // pcre2.h:128:1: 564 DPCRE2_MD_COPIED_SUBJECT = 0x01 // pcre2_internal.h:543:1: 565 DPCRE2_MINOR = 40 // pcre2.h:45:1: 566 DPCRE2_MODE16 = 0x00000002 // pcre2_internal.h:510:1: 567 DPCRE2_MODE32 = 0x00000004 // pcre2_internal.h:511:1: 568 DPCRE2_MODE8 = 0x00000001 // pcre2_internal.h:509:1: 569 DPCRE2_MODE_MASK = 7 // pcre2_internal.h:533:1: 570 DPCRE2_MULTILINE = 0x00000400 // pcre2.h:129:1: 571 DPCRE2_NEVER_BACKSLASH_C = 0x00100000 // pcre2.h:139:1: 572 DPCRE2_NEVER_UCP = 0x00000800 // pcre2.h:130:1: 573 DPCRE2_NEVER_UTF = 0x00001000 // pcre2.h:131:1: 574 DPCRE2_NEWLINE_ANY = 4 // pcre2.h:206:1: 575 DPCRE2_NEWLINE_ANYCRLF = 5 // pcre2.h:207:1: 576 DPCRE2_NEWLINE_CR = 1 // pcre2.h:203:1: 577 DPCRE2_NEWLINE_CRLF = 3 // pcre2.h:205:1: 578 DPCRE2_NEWLINE_LF = 2 // pcre2.h:204:1: 579 DPCRE2_NEWLINE_NUL = 6 // pcre2.h:208:1: 580 DPCRE2_NE_ATST_SET = 0x00020000 // pcre2_internal.h:525:1: 581 DPCRE2_NL_SET = 0x00008000 // pcre2_internal.h:523:1: 582 DPCRE2_NOJIT = 0x00080000 // pcre2_internal.h:527:1: 583 DPCRE2_NOTBOL = 0x00000001 // pcre2.h:170:1: 584 DPCRE2_NOTEMPTY = 0x00000004 // pcre2.h:172:1: 585 DPCRE2_NOTEMPTY_ATSTART = 0x00000008 // pcre2.h:173:1: 586 DPCRE2_NOTEMPTY_SET = 0x00010000 // pcre2_internal.h:524:1: 587 DPCRE2_NOTEOL = 0x00000002 // pcre2.h:171:1: 588 DPCRE2_NO_AUTO_CAPTURE = 0x00002000 // pcre2.h:132:1: 589 DPCRE2_NO_AUTO_POSSESS = 0x00004000 // pcre2.h:133:1: 590 DPCRE2_NO_DOTSTAR_ANCHOR = 0x00008000 // pcre2.h:134:1: 591 DPCRE2_NO_JIT = 0x00002000 // pcre2.h:183:1: 592 DPCRE2_NO_START_OPTIMIZE = 0x00010000 // pcre2.h:135:1: 593 DPCRE2_NO_UTF_CHECK = 0x40000000 // pcre2.h:106:1: 594 DPCRE2_PARTIAL_HARD = 0x00000020 // pcre2.h:175:1: 595 DPCRE2_PARTIAL_SOFT = 0x00000010 // pcre2.h:174:1: 596 DPCRE2_PRERELEASE = 0 // pcre2.h:46:1: 597 DPCRE2_SIZE_MAX = 18446744073709551615 // pcre2.h:472:1: 598 DPCRE2_STARTLINE = 0x00000200 // pcre2_internal.h:517:1: 599 DPCRE2_STATIC = 1 // config.h:278:1: 600 DPCRE2_SUBSTITUTE_EXTENDED = 0x00000200 // pcre2.h:179:1: 601 DPCRE2_SUBSTITUTE_GLOBAL = 0x00000100 // pcre2.h:178:1: 602 DPCRE2_SUBSTITUTE_LITERAL = 0x00008000 // pcre2.h:185:1: 603 DPCRE2_SUBSTITUTE_MATCHED = 0x00010000 // pcre2.h:186:1: 604 DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH = 0x00001000 // pcre2.h:182:1: 605 DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY = 0x00020000 // pcre2.h:187:1: 606 DPCRE2_SUBSTITUTE_UNKNOWN_UNSET = 0x00000800 // pcre2.h:181:1: 607 DPCRE2_SUBSTITUTE_UNSET_EMPTY = 0x00000400 // pcre2.h:180:1: 608 DPCRE2_UCP = 0x00020000 // pcre2.h:136:1: 609 DPCRE2_UCP_H_IDEMPOTENT_GUARD = 0 // pcre2_ucp.h:46:1: 610 DPCRE2_UNGREEDY = 0x00040000 // pcre2.h:137:1: 611 DPCRE2_USE_OFFSET_LIMIT = 0x00800000 // pcre2.h:142:1: 612 DPCRE2_UTF = 0x00080000 // pcre2.h:138:1: 613 DPDP_ENDIAN = 3412 // endian.h:29:1: 614 DPIPE_BUF = 4096 // limits.h:14:1: 615 DPRIX16 = "X" // inttypes.h:135:1: 616 DPRIX32 = "X" // inttypes.h:136:1: 617 DPRIX8 = "X" // inttypes.h:134:1: 618 DPRIXFAST8 = "X" // inttypes.h:144:1: 619 DPRIXLEAST16 = "X" // inttypes.h:140:1: 620 DPRIXLEAST32 = "X" // inttypes.h:141:1: 621 DPRIXLEAST8 = "X" // inttypes.h:139:1: 622 DPRId16 = "d" // inttypes.h:55:1: 623 DPRId32 = "d" // inttypes.h:56:1: 624 DPRId8 = "d" // inttypes.h:54:1: 625 DPRIdFAST8 = "d" // inttypes.h:64:1: 626 DPRIdLEAST16 = "d" // inttypes.h:60:1: 627 DPRIdLEAST32 = "d" // inttypes.h:61:1: 628 DPRIdLEAST8 = "d" // inttypes.h:59:1: 629 DPRIi16 = "i" // inttypes.h:71:1: 630 DPRIi32 = "i" // inttypes.h:72:1: 631 DPRIi8 = "i" // inttypes.h:70:1: 632 DPRIiFAST8 = "i" // inttypes.h:80:1: 633 DPRIiLEAST16 = "i" // inttypes.h:76:1: 634 DPRIiLEAST32 = "i" // inttypes.h:77:1: 635 DPRIiLEAST8 = "i" // inttypes.h:75:1: 636 DPRIo16 = "o" // inttypes.h:87:1: 637 DPRIo32 = "o" // inttypes.h:88:1: 638 DPRIo8 = "o" // inttypes.h:86:1: 639 DPRIoFAST8 = "o" // inttypes.h:96:1: 640 DPRIoLEAST16 = "o" // inttypes.h:92:1: 641 DPRIoLEAST32 = "o" // inttypes.h:93:1: 642 DPRIoLEAST8 = "o" // inttypes.h:91:1: 643 DPRIu16 = "u" // inttypes.h:103:1: 644 DPRIu32 = "u" // inttypes.h:104:1: 645 DPRIu8 = "u" // inttypes.h:102:1: 646 DPRIuFAST8 = "u" // inttypes.h:112:1: 647 DPRIuLEAST16 = "u" // inttypes.h:108:1: 648 DPRIuLEAST32 = "u" // inttypes.h:109:1: 649 DPRIuLEAST8 = "u" // inttypes.h:107:1: 650 DPRIx16 = "x" // inttypes.h:119:1: 651 DPRIx32 = "x" // inttypes.h:120:1: 652 DPRIx8 = "x" // inttypes.h:118:1: 653 DPRIxFAST8 = "x" // inttypes.h:128:1: 654 DPRIxLEAST16 = "x" // inttypes.h:124:1: 655 DPRIxLEAST32 = "x" // inttypes.h:125:1: 656 DPRIxLEAST8 = "x" // inttypes.h:123:1: 657 DPTHREAD_DESTRUCTOR_ITERATIONS = 4 // local_lim.h:69:1: 658 DPTHREAD_KEYS_MAX = 1024 // local_lim.h:64:1: 659 DPTRDIFF_MAX = 9223372036854775807 // stdint.h:210:1: 660 DPTRDIFF_MIN = -9223372036854775808 // stdint.h:209:1: 661 DPTRDIFF_WIDTH = 64 // stdint.h:311:1: 662 DPT_ALNUM = 6 // pcre2_internal.h:1282:1: 663 DPT_ANY = 0 // pcre2_internal.h:1276:1: 664 DPT_BIDICL = 12 // pcre2_internal.h:1288:1: 665 DPT_BOOL = 13 // pcre2_internal.h:1289:1: 666 DPT_CLIST = 10 // pcre2_internal.h:1286:1: 667 DPT_GC = 2 // pcre2_internal.h:1278:1: 668 DPT_LAMP = 1 // pcre2_internal.h:1277:1: 669 DPT_NOTSCRIPT = 255 // pcre2_internal.h:1305:1: 670 DPT_PC = 3 // pcre2_internal.h:1279:1: 671 DPT_PXGRAPH = 14 // pcre2_internal.h:1298:1: 672 DPT_PXPRINT = 15 // pcre2_internal.h:1299:1: 673 DPT_PXPUNCT = 16 // pcre2_internal.h:1300:1: 674 DPT_PXSPACE = 8 // pcre2_internal.h:1284:1: 675 DPT_SC = 4 // pcre2_internal.h:1280:1: 676 DPT_SCX = 5 // pcre2_internal.h:1281:1: 677 DPT_SPACE = 7 // pcre2_internal.h:1283:1: 678 DPT_TABSIZE = 14 // pcre2_internal.h:1290:1: 679 DPT_UCNC = 11 // pcre2_internal.h:1287:1: 680 DPT_WORD = 9 // pcre2_internal.h:1285:1: 681 DP_tmpdir = "/tmp" // stdio.h:120:1: 682 DRAND_MAX = 2147483647 // stdlib.h:87:1: 683 DRENAME_EXCHANGE = 2 // stdio.h:165:1: 684 DRENAME_NOREPLACE = 1 // stdio.h:164:1: 685 DRENAME_WHITEOUT = 4 // stdio.h:166:1: 686 DREQ_CU_MAX = 5000 // pcre2_internal.h:555:1: 687 DRE_DUP_MAX = 32767 // posix2_lim.h:88:1: 688 DRREF_ANY = 0xffff // pcre2_internal.h:1783:1: 689 DRTSIG_MAX = 32 // limits.h:19:1: 690 DSCHAR_MAX = 127 // limits.h:75:1: 691 DSCHAR_MIN = -128 // limits.h:73:1: 692 DSCHAR_WIDTH = 8 // limits.h:167:1: 693 DSCNd16 = "hd" // inttypes.h:172:1: 694 DSCNd32 = "d" // inttypes.h:173:1: 695 DSCNd8 = "hhd" // inttypes.h:171:1: 696 DSCNdFAST8 = "hhd" // inttypes.h:181:1: 697 DSCNdLEAST16 = "hd" // inttypes.h:177:1: 698 DSCNdLEAST32 = "d" // inttypes.h:178:1: 699 DSCNdLEAST8 = "hhd" // inttypes.h:176:1: 700 DSCNi16 = "hi" // inttypes.h:188:1: 701 DSCNi32 = "i" // inttypes.h:189:1: 702 DSCNi8 = "hhi" // inttypes.h:187:1: 703 DSCNiFAST8 = "hhi" // inttypes.h:197:1: 704 DSCNiLEAST16 = "hi" // inttypes.h:193:1: 705 DSCNiLEAST32 = "i" // inttypes.h:194:1: 706 DSCNiLEAST8 = "hhi" // inttypes.h:192:1: 707 DSCNo16 = "ho" // inttypes.h:220:1: 708 DSCNo32 = "o" // inttypes.h:221:1: 709 DSCNo8 = "hho" // inttypes.h:219:1: 710 DSCNoFAST8 = "hho" // inttypes.h:229:1: 711 DSCNoLEAST16 = "ho" // inttypes.h:225:1: 712 DSCNoLEAST32 = "o" // inttypes.h:226:1: 713 DSCNoLEAST8 = "hho" // inttypes.h:224:1: 714 DSCNu16 = "hu" // inttypes.h:204:1: 715 DSCNu32 = "u" // inttypes.h:205:1: 716 DSCNu8 = "hhu" // inttypes.h:203:1: 717 DSCNuFAST8 = "hhu" // inttypes.h:213:1: 718 DSCNuLEAST16 = "hu" // inttypes.h:209:1: 719 DSCNuLEAST32 = "u" // inttypes.h:210:1: 720 DSCNuLEAST8 = "hhu" // inttypes.h:208:1: 721 DSCNx16 = "hx" // inttypes.h:236:1: 722 DSCNx32 = "x" // inttypes.h:237:1: 723 DSCNx8 = "hhx" // inttypes.h:235:1: 724 DSCNxFAST8 = "hhx" // inttypes.h:245:1: 725 DSCNxLEAST16 = "hx" // inttypes.h:241:1: 726 DSCNxLEAST32 = "x" // inttypes.h:242:1: 727 DSCNxLEAST8 = "hhx" // inttypes.h:240:1: 728 DSEEK_CUR = 1 // stdio.h:110:1: 729 DSEEK_DATA = 3 // stdio.h:113:1: 730 DSEEK_END = 2 // stdio.h:111:1: 731 DSEEK_HOLE = 4 // stdio.h:114:1: 732 DSEEK_SET = 0 // stdio.h:109:1: 733 DSEM_VALUE_MAX = 2147483647 // local_lim.h:99:1: 734 DSHRT_MAX = 32767 // limits.h:106:1: 735 DSHRT_MIN = -32768 // limits.h:104:1: 736 DSHRT_WIDTH = 16 // limits.h:171:1: 737 DSIG_ATOMIC_MAX = 2147483647 // stdint.h:223:1: 738 DSIG_ATOMIC_MIN = -2147483648 // stdint.h:222:1: 739 DSIG_ATOMIC_WIDTH = 32 // stdint.h:312:1: 740 DSIZE_MAX = 18446744073709551615 // stdint.h:227:1: 741 DSIZE_WIDTH = 64 // stdint.h:313:1: 742 DSSIZE_MAX = 9223372036854775807 // posix1_lim.h:169:1: 743 DSTART_FRAMES_SIZE = 20480 // pcre2_internal.h:231:1: 744 DSTDC_HEADERS = 1 // config.h:292:1: 745 DSTR_0 = "\060" // pcre2_internal.h:1106:1: 746 DSTR_1 = "\061" // pcre2_internal.h:1107:1: 747 DSTR_2 = "\062" // pcre2_internal.h:1108:1: 748 DSTR_3 = "\063" // pcre2_internal.h:1109:1: 749 DSTR_4 = "\064" // pcre2_internal.h:1110:1: 750 DSTR_5 = "\065" // pcre2_internal.h:1111:1: 751 DSTR_6 = "\066" // pcre2_internal.h:1112:1: 752 DSTR_7 = "\067" // pcre2_internal.h:1113:1: 753 DSTR_8 = "\070" // pcre2_internal.h:1114:1: 754 DSTR_9 = "\071" // pcre2_internal.h:1115:1: 755 DSTR_A = "\101" // pcre2_internal.h:1123:1: 756 DSTR_AMPERSAND = "\046" // pcre2_internal.h:1096:1: 757 DSTR_APOSTROPHE = "\047" // pcre2_internal.h:1097:1: 758 DSTR_ASTERISK = "\052" // pcre2_internal.h:1100:1: 759 DSTR_B = "\102" // pcre2_internal.h:1124:1: 760 DSTR_BACKSLASH = "\134" // pcre2_internal.h:1150:1: 761 DSTR_BEL = "\007" // pcre2_internal.h:1086:1: 762 DSTR_BS = "\010" // pcre2_internal.h:1085:1: 763 DSTR_C = "\103" // pcre2_internal.h:1125:1: 764 DSTR_CIRCUMFLEX_ACCENT = "\136" // pcre2_internal.h:1152:1: 765 DSTR_COLON = "\072" // pcre2_internal.h:1116:1: 766 DSTR_COMMA = "\054" // pcre2_internal.h:1102:1: 767 DSTR_COMMERCIAL_AT = "\100" // pcre2_internal.h:1122:1: 768 DSTR_CR = "\015" // pcre2_internal.h:1083:1: 769 DSTR_D = "\104" // pcre2_internal.h:1126:1: 770 DSTR_DEL = "\177" // pcre2_internal.h:1088:1: 771 DSTR_DOLLAR_SIGN = "\044" // pcre2_internal.h:1094:1: 772 DSTR_DOT = "\056" // pcre2_internal.h:1104:1: 773 DSTR_E = "\105" // pcre2_internal.h:1127:1: 774 DSTR_EQUALS_SIGN = "\075" // pcre2_internal.h:1119:1: 775 DSTR_ESC = "\033" // pcre2_internal.h:1087:1: 776 DSTR_EXCLAMATION_MARK = "\041" // pcre2_internal.h:1091:1: 777 DSTR_F = "\106" // pcre2_internal.h:1128:1: 778 DSTR_FF = "\014" // pcre2_internal.h:1082:1: 779 DSTR_G = "\107" // pcre2_internal.h:1129:1: 780 DSTR_GRAVE_ACCENT = "\140" // pcre2_internal.h:1154:1: 781 DSTR_GREATER_THAN_SIGN = "\076" // pcre2_internal.h:1120:1: 782 DSTR_H = "\110" // pcre2_internal.h:1130:1: 783 DSTR_HT = "\011" // pcre2_internal.h:1080:1: 784 DSTR_I = "\111" // pcre2_internal.h:1131:1: 785 DSTR_J = "\112" // pcre2_internal.h:1132:1: 786 DSTR_K = "\113" // pcre2_internal.h:1133:1: 787 DSTR_L = "\114" // pcre2_internal.h:1134:1: 788 DSTR_LEFT_CURLY_BRACKET = "\173" // pcre2_internal.h:1181:1: 789 DSTR_LEFT_PARENTHESIS = "\050" // pcre2_internal.h:1098:1: 790 DSTR_LEFT_SQUARE_BRACKET = "\133" // pcre2_internal.h:1149:1: 791 DSTR_LESS_THAN_SIGN = "\074" // pcre2_internal.h:1118:1: 792 DSTR_M = "\115" // pcre2_internal.h:1135:1: 793 DSTR_MINUS = "\055" // pcre2_internal.h:1103:1: 794 DSTR_N = "\116" // pcre2_internal.h:1136:1: 795 DSTR_NL = "\012" // pcre2_internal.h:1084:1: 796 DSTR_NUMBER_SIGN = "\043" // pcre2_internal.h:1093:1: 797 DSTR_O = "\117" // pcre2_internal.h:1137:1: 798 DSTR_P = "\120" // pcre2_internal.h:1138:1: 799 DSTR_PERCENT_SIGN = "\045" // pcre2_internal.h:1095:1: 800 DSTR_PLUS = "\053" // pcre2_internal.h:1101:1: 801 DSTR_Q = "\121" // pcre2_internal.h:1139:1: 802 DSTR_QUESTION_MARK = "\077" // pcre2_internal.h:1121:1: 803 DSTR_QUOTATION_MARK = "\042" // pcre2_internal.h:1092:1: 804 DSTR_R = "\122" // pcre2_internal.h:1140:1: 805 DSTR_RIGHT_CURLY_BRACKET = "\175" // pcre2_internal.h:1183:1: 806 DSTR_RIGHT_PARENTHESIS = "\051" // pcre2_internal.h:1099:1: 807 DSTR_RIGHT_SQUARE_BRACKET = "\135" // pcre2_internal.h:1151:1: 808 DSTR_S = "\123" // pcre2_internal.h:1141:1: 809 DSTR_SEMICOLON = "\073" // pcre2_internal.h:1117:1: 810 DSTR_SLASH = "\057" // pcre2_internal.h:1105:1: 811 DSTR_SPACE = "\040" // pcre2_internal.h:1090:1: 812 DSTR_T = "\124" // pcre2_internal.h:1142:1: 813 DSTR_TILDE = "\176" // pcre2_internal.h:1184:1: 814 DSTR_U = "\125" // pcre2_internal.h:1143:1: 815 DSTR_UNDERSCORE = "\137" // pcre2_internal.h:1153:1: 816 DSTR_V = "\126" // pcre2_internal.h:1144:1: 817 DSTR_VERTICAL_LINE = "\174" // pcre2_internal.h:1182:1: 818 DSTR_VT = "\013" // pcre2_internal.h:1081:1: 819 DSTR_W = "\127" // pcre2_internal.h:1145:1: 820 DSTR_X = "\130" // pcre2_internal.h:1146:1: 821 DSTR_Y = "\131" // pcre2_internal.h:1147:1: 822 DSTR_Z = "\132" // pcre2_internal.h:1148:1: 823 DSTR_a = "\141" // pcre2_internal.h:1155:1: 824 DSTR_b = "\142" // pcre2_internal.h:1156:1: 825 DSTR_c = "\143" // pcre2_internal.h:1157:1: 826 DSTR_d = "\144" // pcre2_internal.h:1158:1: 827 DSTR_e = "\145" // pcre2_internal.h:1159:1: 828 DSTR_f = "\146" // pcre2_internal.h:1160:1: 829 DSTR_g = "\147" // pcre2_internal.h:1161:1: 830 DSTR_h = "\150" // pcre2_internal.h:1162:1: 831 DSTR_i = "\151" // pcre2_internal.h:1163:1: 832 DSTR_j = "\152" // pcre2_internal.h:1164:1: 833 DSTR_k = "\153" // pcre2_internal.h:1165:1: 834 DSTR_l = "\154" // pcre2_internal.h:1166:1: 835 DSTR_m = "\155" // pcre2_internal.h:1167:1: 836 DSTR_n = "\156" // pcre2_internal.h:1168:1: 837 DSTR_o = "\157" // pcre2_internal.h:1169:1: 838 DSTR_p = "\160" // pcre2_internal.h:1170:1: 839 DSTR_q = "\161" // pcre2_internal.h:1171:1: 840 DSTR_r = "\162" // pcre2_internal.h:1172:1: 841 DSTR_s = "\163" // pcre2_internal.h:1173:1: 842 DSTR_t = "\164" // pcre2_internal.h:1174:1: 843 DSTR_u = "\165" // pcre2_internal.h:1175:1: 844 DSTR_v = "\166" // pcre2_internal.h:1176:1: 845 DSTR_w = "\167" // pcre2_internal.h:1177:1: 846 DSTR_x = "\170" // pcre2_internal.h:1178:1: 847 DSTR_y = "\171" // pcre2_internal.h:1179:1: 848 DSTR_z = "\172" // pcre2_internal.h:1180:1: 849 DSUPPORT_PCRE2GREP_CALLOUT = 0 // config.h:312:1: 850 DSUPPORT_PCRE2GREP_CALLOUT_FORK = 0 // config.h:317:1: 851 DSUPPORT_PCRE2_8 = 0 // config.h:330:1: 852 DSUPPORT_UNICODE = 0 // config.h:336:1: 853 DSUPPORT_WIDE_CHARS = 0 // pcre2_intmodedep.h:216:1: 854 DTABLES_LENGTH = 1088 // pcre2_internal.h:593:1: 855 DTMP_MAX = 238328 // stdio_lim.h:26:1: 856 DTRUE = 1 // pcre2_internal.h:70:1: 857 DTTY_NAME_MAX = 32 // local_lim.h:87:1: 858 DUCD_BIDICLASS_SHIFT = 11 // pcre2_internal.h:1844:1: 859 DUCD_BLOCK_SIZE = 128 // pcre2_internal.h:1831:1: 860 DUCD_BPROPS_MASK = 0xfff // pcre2_internal.h:1845:1: 861 DUCD_SCRIPTX_MASK = 0x3ff // pcre2_internal.h:1843:1: 862 DUCHAR_MAX = 255 // limits.h:82:1: 863 DUCHAR_WIDTH = 8 // limits.h:169:1: 864 DUINT16_MAX = 65535 // stdint.h:128:1: 865 DUINT16_WIDTH = 16 // stdint.h:281:1: 866 DUINT32_MAX = 4294967295 // stdint.h:129:1: 867 DUINT32_WIDTH = 32 // stdint.h:283:1: 868 DUINT64_MAX = 18446744073709551615 // stdint.h:130:1: 869 DUINT64_WIDTH = 64 // stdint.h:285:1: 870 DUINT8_MAX = 255 // stdint.h:127:1: 871 DUINT8_WIDTH = 8 // stdint.h:279:1: 872 DUINTMAX_MAX = 18446744073709551615 // stdint.h:202:1: 873 DUINTMAX_WIDTH = 64 // stdint.h:309:1: 874 DUINTPTR_MAX = 18446744073709551615 // stdint.h:188:1: 875 DUINTPTR_WIDTH = 64 // stdint.h:306:1: 876 DUINT_FAST16_MAX = 18446744073709551615 // stdint.h:175:1: 877 DUINT_FAST16_WIDTH = 64 // stdint.h:299:1: 878 DUINT_FAST32_MAX = 18446744073709551615 // stdint.h:176:1: 879 DUINT_FAST32_WIDTH = 64 // stdint.h:301:1: 880 DUINT_FAST64_MAX = 18446744073709551615 // stdint.h:181:1: 881 DUINT_FAST64_WIDTH = 64 // stdint.h:303:1: 882 DUINT_FAST8_MAX = 255 // stdint.h:173:1: 883 DUINT_FAST8_WIDTH = 8 // stdint.h:297:1: 884 DUINT_LEAST16_MAX = 65535 // stdint.h:146:1: 885 DUINT_LEAST16_WIDTH = 16 // stdint.h:290:1: 886 DUINT_LEAST32_MAX = 4294967295 // stdint.h:147:1: 887 DUINT_LEAST32_WIDTH = 32 // stdint.h:292:1: 888 DUINT_LEAST64_MAX = 18446744073709551615 // stdint.h:148:1: 889 DUINT_LEAST64_WIDTH = 64 // stdint.h:294:1: 890 DUINT_LEAST8_MAX = 255 // stdint.h:145:1: 891 DUINT_LEAST8_WIDTH = 8 // stdint.h:288:1: 892 DUINT_MAX = 4294967295 // limits.h:124:1: 893 DUINT_WIDTH = 32 // limits.h:177:1: 894 DULLONG_MAX = 18446744073709551615 // limits.h:146:1: 895 DULLONG_WIDTH = 64 // limits.h:185:1: 896 DULONG_LONG_MAX = 18446744073709551615 // limits.h:158:1: 897 DULONG_MAX = 18446744073709551615 // limits.h:135:1: 898 DULONG_WIDTH = 64 // limits.h:181:1: 899 DUSHRT_MAX = 65535 // limits.h:113:1: 900 DUSHRT_WIDTH = 16 // limits.h:173:1: 901 DVERSION = "10.40" // config.h:430:1: 902 DWCHAR_MAX = 2147483647 // stdint.h:240:1: 903 DWCHAR_MIN = -2147483648 // stdint.h:239:1: 904 DWCHAR_WIDTH = 32 // stdint.h:314:1: 905 DWCONTINUED = 8 // waitflags.h:32:1: 906 DWEXITED = 4 // waitflags.h:31:1: 907 DWINT_MAX = 4294967295 // stdint.h:245:1: 908 DWINT_MIN = 0 // stdint.h:244:1: 909 DWINT_WIDTH = 32 // stdint.h:315:1: 910 DWNOHANG = 1 // waitflags.h:25:1: 911 DWNOWAIT = 0x01000000 // waitflags.h:33:1: 912 DWORD_BIT = 32 // xopen_lim.h:114:1: 913 DWSTOPPED = 2 // waitflags.h:30:1: 914 DWUNTRACED = 2 // waitflags.h:26:1: 915 DXATTR_LIST_MAX = 65536 // limits.h:17:1: 916 DXATTR_NAME_MAX = 255 // limits.h:15:1: 917 DXATTR_SIZE_MAX = 65536 // limits.h:16:1: 918 DXCL_END = 0 // pcre2_internal.h:1314:1: 919 DXCL_HASPROP = 0x04 // pcre2_internal.h:1312:1: 920 DXCL_MAP = 0x02 // pcre2_internal.h:1311:1: 921 DXCL_NOT = 0x01 // pcre2_internal.h:1310:1: 922 DXCL_NOTPROP = 4 // pcre2_internal.h:1318:1: 923 DXCL_PROP = 3 // pcre2_internal.h:1317:1: 924 DXCL_RANGE = 2 // pcre2_internal.h:1316:1: 925 DXCL_SINGLE = 1 // pcre2_internal.h:1315:1: 926 D_ALLOCA_H = 1 // alloca.h:19:1: 927 D_ALL_SOURCE = 1 // config.h:343:1: 928 D_ANSI_STDDEF_H = 0 // stddef.h:42:1: 929 D_ATFILE_SOURCE = 1 // features.h:351:1: 930 D_BITS_ATOMIC_WIDE_COUNTER_H = 0 // atomic_wide_counter.h:20:1: 931 D_BITS_BYTESWAP_H = 1 // byteswap.h:24:1: 932 D_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: 933 D_BITS_ENDIAN_H = 1 // endian.h:20:1: 934 D_BITS_FLOATN_COMMON_H = 0 // floatn-common.h:21:1: 935 D_BITS_FLOATN_H = 0 // floatn.h:20:1: 936 D_BITS_POSIX1_LIM_H = 1 // posix1_lim.h:25:1: 937 D_BITS_POSIX2_LIM_H = 1 // posix2_lim.h:23:1: 938 D_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:19:1: 939 D_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: 940 D_BITS_STDINT_INTN_H = 1 // stdint-intn.h:20:1: 941 D_BITS_STDINT_UINTN_H = 1 // stdint-uintn.h:20:1: 942 D_BITS_STDIO_LIM_H = 1 // stdio_lim.h:19:1: 943 D_BITS_TIME64_H = 1 // time64.h:24:1: 944 D_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: 945 D_BITS_TYPES_H = 1 // types.h:24:1: 946 D_BITS_TYPES_LOCALE_T_H = 1 // locale_t.h:20:1: 947 D_BITS_TYPES___LOCALE_T_H = 1 // __locale_t.h:20:1: 948 D_BITS_UINTN_IDENTITY_H = 1 // uintn-identity.h:24:1: 949 D_BITS_UIO_LIM_H = 1 // uio_lim.h:20:1: 950 D_BITS_WCHAR_H = 1 // wchar.h:20:1: 951 D_BSD_PTRDIFF_T_ = 0 // stddef.h:136:1: 952 D_BSD_SIZE_T_ = 0 // stddef.h:189:1: 953 D_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: 954 D_CTYPE_H = 1 // ctype.h:23:1: 955 D_DARWIN_C_SOURCE = 1 // config.h:347:1: 956 D_DEFAULT_SOURCE = 1 // features.h:236:1: 957 D_DYNAMIC_STACK_SIZE_SOURCE = 1 // features.h:224:1: 958 D_ENDIAN_H = 1 // endian.h:19:1: 959 D_FEATURES_H = 1 // features.h:19:1: 960 D_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 961 D_GCC_LIMITS_H_ = 0 // limits.h:30:1: 962 D_GCC_MAX_ALIGN_T = 0 // stddef.h:411:1: 963 D_GCC_PTRDIFF_T = 0 // stddef.h:138:1: 964 D_GCC_SIZE_T = 0 // stddef.h:195:1: 965 D_GCC_WCHAR_T = 0 // stddef.h:273:1: 966 D_GCC_WRAP_STDINT_H = 0 // stdint.h:13:1: 967 D_GNU_SOURCE = 1 // config.h:355:1: 968 D_HPUX_ALT_XOPEN_SOCKET_API = 1 // config.h:360:1: 969 D_INTTYPES_H = 1 // inttypes.h:23:1: 970 D_IOFBF = 0 // stdio.h:93:1: 971 D_IOLBF = 1 // stdio.h:94:1: 972 D_IONBF = 2 // stdio.h:95:1: 973 D_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: 974 D_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: 975 D_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: 976 D_ISOC11_SOURCE = 1 // features.h:206:1: 977 D_ISOC2X_SOURCE = 1 // features.h:208:1: 978 D_ISOC95_SOURCE = 1 // features.h:202:1: 979 D_ISOC99_SOURCE = 1 // features.h:204:1: 980 D_LARGEFILE64_SOURCE = 1 // features.h:218:1: 981 D_LARGEFILE_SOURCE = 1 // features.h:360:1: 982 D_LIBC_LIMITS_H_ = 1 // limits.h:23:1: 983 D_LIMITS_H___ = 0 // limits.h:60:1: 984 D_LINUX_LIMITS_H = 0 // limits.h:3:1: 985 D_LP64 = 1 // <predefined>:297:1: 986 D_NETBSD_SOURCE = 1 // config.h:371:1: 987 D_OPENBSD_SOURCE = 1 // config.h:376:1: 988 D_POSIX2_BC_BASE_MAX = 99 // posix2_lim.h:27:1: 989 D_POSIX2_BC_DIM_MAX = 2048 // posix2_lim.h:30:1: 990 D_POSIX2_BC_SCALE_MAX = 99 // posix2_lim.h:33:1: 991 D_POSIX2_BC_STRING_MAX = 1000 // posix2_lim.h:36:1: 992 D_POSIX2_CHARCLASS_NAME_MAX = 14 // posix2_lim.h:55:1: 993 D_POSIX2_COLL_WEIGHTS_MAX = 2 // posix2_lim.h:40:1: 994 D_POSIX2_EXPR_NEST_MAX = 32 // posix2_lim.h:44:1: 995 D_POSIX2_LINE_MAX = 2048 // posix2_lim.h:47:1: 996 D_POSIX2_RE_DUP_MAX = 255 // posix2_lim.h:51:1: 997 D_POSIX_AIO_LISTIO_MAX = 2 // posix1_lim.h:32:1: 998 D_POSIX_AIO_MAX = 1 // posix1_lim.h:35:1: 999 D_POSIX_ARG_MAX = 4096 // posix1_lim.h:38:1: 1000 D_POSIX_CHILD_MAX = 25 // posix1_lim.h:42:1: 1001 D_POSIX_CLOCKRES_MIN = 20000000 // posix1_lim.h:157:1: 1002 D_POSIX_C_SOURCE = 200809 // features.h:290:1: 1003 D_POSIX_DELAYTIMER_MAX = 32 // posix1_lim.h:48:1: 1004 D_POSIX_FD_SETSIZE = 20 // posix1_lim.h:93:1: 1005 D_POSIX_HIWAT = 512 // posix1_lim.h:150:1: 1006 D_POSIX_HOST_NAME_MAX = 255 // posix1_lim.h:52:1: 1007 D_POSIX_LINK_MAX = 8 // posix1_lim.h:55:1: 1008 D_POSIX_LOGIN_NAME_MAX = 9 // posix1_lim.h:58:1: 1009 D_POSIX_MAX_CANON = 255 // posix1_lim.h:61:1: 1010 D_POSIX_MAX_INPUT = 255 // posix1_lim.h:65:1: 1011 D_POSIX_MQ_OPEN_MAX = 8 // posix1_lim.h:68:1: 1012 D_POSIX_MQ_PRIO_MAX = 32 // posix1_lim.h:71:1: 1013 D_POSIX_NAME_MAX = 14 // posix1_lim.h:74:1: 1014 D_POSIX_NGROUPS_MAX = 8 // posix1_lim.h:78:1: 1015 D_POSIX_OPEN_MAX = 20 // posix1_lim.h:85:1: 1016 D_POSIX_PATH_MAX = 256 // posix1_lim.h:97:1: 1017 D_POSIX_PIPE_BUF = 512 // posix1_lim.h:100:1: 1018 D_POSIX_PTHREAD_SEMANTICS = 1 // config.h:388:1: 1019 D_POSIX_QLIMIT = 1 // posix1_lim.h:146:1: 1020 D_POSIX_RE_DUP_MAX = 255 // posix1_lim.h:104:1: 1021 D_POSIX_RTSIG_MAX = 8 // posix1_lim.h:107:1: 1022 D_POSIX_SEM_NSEMS_MAX = 256 // posix1_lim.h:110:1: 1023 D_POSIX_SEM_VALUE_MAX = 32767 // posix1_lim.h:113:1: 1024 D_POSIX_SIGQUEUE_MAX = 32 // posix1_lim.h:116:1: 1025 D_POSIX_SOURCE = 1 // features.h:288:1: 1026 D_POSIX_SSIZE_MAX = 32767 // posix1_lim.h:119:1: 1027 D_POSIX_STREAM_MAX = 8 // posix1_lim.h:122:1: 1028 D_POSIX_SYMLINK_MAX = 255 // posix1_lim.h:125:1: 1029 D_POSIX_SYMLOOP_MAX = 8 // posix1_lim.h:129:1: 1030 D_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 // local_lim.h:67:1: 1031 D_POSIX_THREAD_KEYS_MAX = 128 // local_lim.h:62:1: 1032 D_POSIX_THREAD_THREADS_MAX = 64 // local_lim.h:72:1: 1033 D_POSIX_TIMER_MAX = 32 // posix1_lim.h:132:1: 1034 D_POSIX_TTY_NAME_MAX = 9 // posix1_lim.h:135:1: 1035 D_POSIX_TZNAME_MAX = 6 // posix1_lim.h:139:1: 1036 D_POSIX_UIO_MAXIOV = 16 // posix1_lim.h:153:1: 1037 D_PRINTF_NAN_LEN_MAX = 4 // stdio.h:138:1: 1038 D_PTRDIFF_T = 0 // stddef.h:131:1: 1039 D_PTRDIFF_T_ = 0 // stddef.h:135:1: 1040 D_PTRDIFF_T_DECLARED = 0 // stddef.h:139:1: 1041 D_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: 1042 D_SIZET_ = 0 // stddef.h:196:1: 1043 D_SIZE_T = 0 // stddef.h:183:1: 1044 D_SIZE_T_ = 0 // stddef.h:188:1: 1045 D_SIZE_T_DECLARED = 0 // stddef.h:193:1: 1046 D_SIZE_T_DEFINED = 0 // stddef.h:191:1: 1047 D_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: 1048 D_STDC_PREDEF_H = 1 // <predefined>:168:1: 1049 D_STDDEF_H = 0 // stddef.h:39:1: 1050 D_STDDEF_H_ = 0 // stddef.h:40:1: 1051 D_STDINT_H = 1 // stdint.h:23:1: 1052 D_STDIO_H = 1 // stdio.h:24:1: 1053 D_STDLIB_H = 1 // stdlib.h:36:1: 1054 D_STRINGS_H = 1 // strings.h:19:1: 1055 D_STRING_H = 1 // string.h:23:1: 1056 D_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: 1057 D_SYS_CDEFS_H = 1 // cdefs.h:20:1: 1058 D_SYS_SELECT_H = 1 // select.h:22:1: 1059 D_SYS_SIZE_T_H = 0 // stddef.h:184:1: 1060 D_SYS_TYPES_H = 1 // types.h:23:1: 1061 D_TANDEM_SOURCE = 1 // config.h:420:1: 1062 D_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: 1063 D_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: 1064 D_T_PTRDIFF = 0 // stddef.h:133:1: 1065 D_T_PTRDIFF_ = 0 // stddef.h:132:1: 1066 D_T_SIZE = 0 // stddef.h:186:1: 1067 D_T_SIZE_ = 0 // stddef.h:185:1: 1068 D_T_WCHAR = 0 // stddef.h:264:1: 1069 D_T_WCHAR_ = 0 // stddef.h:263:1: 1070 D_VA_LIST_DEFINED = 0 // stdio.h:53:1: 1071 D_WCHAR_T = 0 // stddef.h:262:1: 1072 D_WCHAR_T_ = 0 // stddef.h:266:1: 1073 D_WCHAR_T_DECLARED = 0 // stddef.h:274:1: 1074 D_WCHAR_T_DEFINED = 0 // stddef.h:269:1: 1075 D_WCHAR_T_DEFINED_ = 0 // stddef.h:268:1: 1076 D_WCHAR_T_H = 0 // stddef.h:270:1: 1077 D_XOPEN_IOV_MAX = 16 // xopen_lim.h:62:1: 1078 D_XOPEN_LIM_H = 1 // xopen_lim.h:30:1: 1079 D_XOPEN_SOURCE = 700 // features.h:214:1: 1080 D_XOPEN_SOURCE_EXTENDED = 1 // features.h:216:1: 1081 Dcbit_cntrl = 288 // pcre2_internal.h:573:1: 1082 Dcbit_digit = 64 // pcre2_internal.h:566:1: 1083 Dcbit_graph = 192 // pcre2_internal.h:570:1: 1084 Dcbit_length = 320 // pcre2_internal.h:574:1: 1085 Dcbit_lower = 128 // pcre2_internal.h:568:1: 1086 Dcbit_print = 224 // pcre2_internal.h:571:1: 1087 Dcbit_punct = 256 // pcre2_internal.h:572:1: 1088 Dcbit_space = 0 // pcre2_internal.h:564:1: 1089 Dcbit_upper = 96 // pcre2_internal.h:567:1: 1090 Dcbit_word = 160 // pcre2_internal.h:569:1: 1091 Dcbit_xdigit = 32 // pcre2_internal.h:565:1: 1092 Dcbits_offset = 512 // pcre2_internal.h:591:1: 1093 Dctype_digit = 0x08 // pcre2_internal.h:583:1: 1094 Dctype_lcletter = 0x04 // pcre2_internal.h:582:1: 1095 Dctype_letter = 0x02 // pcre2_internal.h:581:1: 1096 Dctype_space = 0x01 // pcre2_internal.h:580:1: 1097 Dctype_word = 0x10 // pcre2_internal.h:584:1: 1098 Dctypes_offset = 832 // pcre2_internal.h:592:1: 1099 Dfcc_offset = 256 // pcre2_internal.h:590:1: 1100 Dlcc_offset = 0 // pcre2_internal.h:589:1: 1101 Dlinux = 1 // <predefined>:243:1: 1102 Ducd_boolprop_sets_item_size = 2 // pcre2_ucp.h:164:1: 1103 Ducd_script_sets_item_size = 3 // pcre2_ucp.h:390:1: 1104 Dunix = 1 // <predefined>:184:1: 1105 DCOMPILE_WORK_SIZE = 6000 // pcre2_compile.c:166:1: 1106 DESCAPES_FIRST = 48 // pcre2_compile.c:507:1: 1107 DESCAPES_LAST = 122 // pcre2_compile.c:508:1: 1108 DGI_FIXED_LENGTH_MASK = 0x0000ffff // pcre2_compile.c:402:1: 1109 DGI_NOT_FIXED_LENGTH = 0x40000000 // pcre2_compile.c:401:1: 1110 DGI_SET_FIXED_LENGTH = 0x80000000 // pcre2_compile.c:400:1: 1111 DGROUPINFO_DEFAULT_SIZE = 256 // pcre2_compile.c:175:1: 1112 DMAX_GROUP_NUMBER = 65535 // pcre2_compile.c:147:1: 1113 DMAX_REPEAT_COUNT = 65535 // pcre2_compile.c:148:1: 1114 DMETA_ACCEPT = 0x802a0000 // pcre2_compile.c:266:1: 1115 DMETA_ALT = 0x80010000 // pcre2_compile.c:213:1: 1116 DMETA_ASTERISK = 0x80340000 // pcre2_compile.c:279:1: 1117 DMETA_ASTERISK_PLUS = 0x80350000 // pcre2_compile.c:280:1: 1118 DMETA_ASTERISK_QUERY = 0x80360000 // pcre2_compile.c:281:1: 1119 DMETA_ATOMIC = 0x80020000 // pcre2_compile.c:214:1: 1120 DMETA_ATOMIC_SCRIPT_RUN = 0x8fff0000 // pcre2_compile.c:300:1: 1121 DMETA_BACKREF = 0x80030000 // pcre2_compile.c:215:1: 1122 DMETA_BACKREF_BYNAME = 0x80040000 // pcre2_compile.c:216:1: 1123 DMETA_BIGVALUE = 0x80050000 // pcre2_compile.c:217:1: 1124 DMETA_CALLOUT_NUMBER = 0x80060000 // pcre2_compile.c:218:1: 1125 DMETA_CALLOUT_STRING = 0x80070000 // pcre2_compile.c:219:1: 1126 DMETA_CAPTURE = 0x80080000 // pcre2_compile.c:220:1: 1127 DMETA_CIRCUMFLEX = 0x80090000 // pcre2_compile.c:221:1: 1128 DMETA_CLASS = 0x800a0000 // pcre2_compile.c:222:1: 1129 DMETA_CLASS_EMPTY = 0x800b0000 // pcre2_compile.c:223:1: 1130 DMETA_CLASS_EMPTY_NOT = 0x800c0000 // pcre2_compile.c:224:1: 1131 DMETA_CLASS_END = 0x800d0000 // pcre2_compile.c:225:1: 1132 DMETA_CLASS_NOT = 0x800e0000 // pcre2_compile.c:226:1: 1133 DMETA_COMMIT = 0x802c0000 // pcre2_compile.c:268:1: 1134 DMETA_COMMIT_ARG = 0x802d0000 // pcre2_compile.c:269:1: 1135 DMETA_COND_ASSERT = 0x800f0000 // pcre2_compile.c:227:1: 1136 DMETA_COND_DEFINE = 0x80100000 // pcre2_compile.c:228:1: 1137 DMETA_COND_NAME = 0x80110000 // pcre2_compile.c:229:1: 1138 DMETA_COND_NUMBER = 0x80120000 // pcre2_compile.c:230:1: 1139 DMETA_COND_RNAME = 0x80130000 // pcre2_compile.c:231:1: 1140 DMETA_COND_RNUMBER = 0x80140000 // pcre2_compile.c:232:1: 1141 DMETA_COND_VERSION = 0x80150000 // pcre2_compile.c:233:1: 1142 DMETA_DOLLAR = 0x80160000 // pcre2_compile.c:234:1: 1143 DMETA_DOT = 0x80170000 // pcre2_compile.c:235:1: 1144 DMETA_END = 0x80000000 // pcre2_compile.c:211:1: 1145 DMETA_ESCAPE = 0x80180000 // pcre2_compile.c:236:1: 1146 DMETA_FAIL = 0x802b0000 // pcre2_compile.c:267:1: 1147 DMETA_FIRST_QUANTIFIER = 2150891520 // pcre2_compile.c:292:1: 1148 DMETA_KET = 0x80190000 // pcre2_compile.c:237:1: 1149 DMETA_LAST_QUANTIFIER = 2151612416 // pcre2_compile.c:293:1: 1150 DMETA_LOOKAHEAD = 0x80230000 // pcre2_compile.c:251:1: 1151 DMETA_LOOKAHEADNOT = 0x80240000 // pcre2_compile.c:252:1: 1152 DMETA_LOOKAHEAD_NA = 0x80270000 // pcre2_compile.c:258:1: 1153 DMETA_LOOKBEHIND = 0x80250000 // pcre2_compile.c:253:1: 1154 DMETA_LOOKBEHINDNOT = 0x80260000 // pcre2_compile.c:254:1: 1155 DMETA_LOOKBEHIND_NA = 0x80280000 // pcre2_compile.c:259:1: 1156 DMETA_MARK = 0x80290000 // pcre2_compile.c:265:1: 1157 DMETA_MINMAX = 0x803d0000 // pcre2_compile.c:288:1: 1158 DMETA_MINMAX_PLUS = 0x803e0000 // pcre2_compile.c:289:1: 1159 DMETA_MINMAX_QUERY = 0x803f0000 // pcre2_compile.c:290:1: 1160 DMETA_NOCAPTURE = 0x801a0000 // pcre2_compile.c:238:1: 1161 DMETA_OPTIONS = 0x801b0000 // pcre2_compile.c:239:1: 1162 DMETA_PLUS = 0x80370000 // pcre2_compile.c:282:1: 1163 DMETA_PLUS_PLUS = 0x80380000 // pcre2_compile.c:283:1: 1164 DMETA_PLUS_QUERY = 0x80390000 // pcre2_compile.c:284:1: 1165 DMETA_POSIX = 0x801c0000 // pcre2_compile.c:240:1: 1166 DMETA_POSIX_NEG = 0x801d0000 // pcre2_compile.c:241:1: 1167 DMETA_PRUNE = 0x802e0000 // pcre2_compile.c:270:1: 1168 DMETA_PRUNE_ARG = 0x802f0000 // pcre2_compile.c:271:1: 1169 DMETA_QUERY = 0x803a0000 // pcre2_compile.c:285:1: 1170 DMETA_QUERY_PLUS = 0x803b0000 // pcre2_compile.c:286:1: 1171 DMETA_QUERY_QUERY = 0x803c0000 // pcre2_compile.c:287:1: 1172 DMETA_RANGE_ESCAPED = 0x801e0000 // pcre2_compile.c:242:1: 1173 DMETA_RANGE_LITERAL = 0x801f0000 // pcre2_compile.c:243:1: 1174 DMETA_RECURSE = 0x80200000 // pcre2_compile.c:244:1: 1175 DMETA_RECURSE_BYNAME = 0x80210000 // pcre2_compile.c:245:1: 1176 DMETA_SCRIPT_RUN = 0x80220000 // pcre2_compile.c:246:1: 1177 DMETA_SKIP = 0x80300000 // pcre2_compile.c:272:1: 1178 DMETA_SKIP_ARG = 0x80310000 // pcre2_compile.c:273:1: 1179 DMETA_THEN = 0x80320000 // pcre2_compile.c:274:1: 1180 DMETA_THEN_ARG = 0x80330000 // pcre2_compile.c:275:1: 1181 DNAMED_GROUP_LIST_SIZE = 20 // pcre2_compile.c:187:1: 1182 DNSF_ATOMICSR = 0x0004 // pcre2_compile.c:2565:1: 1183 DNSF_CONDASSERT = 0x0002 // pcre2_compile.c:2564:1: 1184 DNSF_RESET = 0x0001 // pcre2_compile.c:2563:1: 1185 DOFLOW_MAX = 2147483627 // pcre2_compile.c:200:1: 1186 DPARSED_PATTERN_DEFAULT_SIZE = 1024 // pcre2_compile.c:193:1: 1187 DPARSE_TRACKED_OPTIONS = 17048808 // pcre2_compile.c:2572:1: 1188 DPC_GRAPH = 8 // pcre2_compile.c:709:1: 1189 DPC_PRINT = 9 // pcre2_compile.c:710:1: 1190 DPC_PUNCT = 10 // pcre2_compile.c:711:1: 1191 DPUBLIC_COMPILE_EXTRA_OPTIONS = 127 // pcre2_compile.c:784:1: 1192 DPUBLIC_COMPILE_OPTIONS = 3892314111 // pcre2_compile.c:772:1: 1193 DPUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS = 12 // pcre2_compile.c:781:1: 1194 DPUBLIC_LITERAL_COMPILE_OPTIONS = 3867738380 // pcre2_compile.c:767:1: 1195 DREPEAT_UNLIMITED = 65536 // pcre2_compile.c:149:1: 1196 DREQ_CASELESS = 0x00000001 // pcre2_compile.c:395:1: 1197 DREQ_NONE = 0xfffffffe // pcre2_compile.c:394:1: 1198 DREQ_UNSET = 0xffffffff // pcre2_compile.c:393:1: 1199 DREQ_VARY = 0x00000002 // pcre2_compile.c:396:1: 1200 DRSCAN_CACHE_SIZE = 8 // pcre2_compile.c:10359:1: 1201 DSIZEOFFSET = 2 // pcre2_compile.c:108:1: 1202 DWORK_SIZE_SAFETY_MARGIN = 100 // pcre2_compile.c:180:1: 1203 DALL_OPTIONS = 127 // pcre2_convert.c:51:1: 1204 DDUMMY_BUFFER_SIZE = 100 // pcre2_convert.c:56:1: 1205 DTYPE_OPTIONS = 28 // pcre2_convert.c:48:1: 1206 DOP_ANYNL_EXTRA = 340 // pcre2_dfa_match.c:103:1: 1207 DOP_EXTUNI_EXTRA = 320 // pcre2_dfa_match.c:102:1: 1208 DOP_HSPACE_EXTRA = 360 // pcre2_dfa_match.c:104:1: 1209 DOP_PROP_EXTRA = 300 // pcre2_dfa_match.c:101:1: 1210 DOP_VSPACE_EXTRA = 380 // pcre2_dfa_match.c:105:1: 1211 DPUBLIC_DFA_MATCH_OPTIONS = 3758113023 // pcre2_dfa_match.c:85:1: 1212 DRWS_RSIZE = 1000 // pcre2_dfa_match.c:318:1: 1213 DINCLUDED_FROM_PCRE2_JIT_COMPILE = 0 // pcre2_jit_compile.c:14504:1: 1214 DPUBLIC_JIT_COMPILE_OPTIONS = 263 // pcre2_jit_compile.c:14378:1: 1215 DGF_CAPTURE = 0x00010000 // pcre2_match.c:106:1: 1216 DGF_CONDASSERT = 0x00030000 // pcre2_match.c:108:1: 1217 DGF_NOCAPTURE = 0x00020000 // pcre2_match.c:107:1: 1218 DGF_RECURSE = 0x00040000 // pcre2_match.c:109:1: 1219 DMATCH_ACCEPT = -999 // pcre2_match.c:88:1: 1220 DMATCH_BACKTRACK_MAX = -993 // pcre2_match.c:97:1: 1221 DMATCH_BACKTRACK_MIN = -997 // pcre2_match.c:98:1: 1222 DMATCH_COMMIT = -997 // pcre2_match.c:92:1: 1223 DMATCH_KETRPOS = -998 // pcre2_match.c:89:1: 1224 DMATCH_MATCH = 1 // pcre2_match.c:82:1: 1225 DMATCH_NOMATCH = 0 // pcre2_match.c:83:1: 1226 DMATCH_PRUNE = -996 // pcre2_match.c:93:1: 1227 DMATCH_SKIP = -995 // pcre2_match.c:94:1: 1228 DMATCH_SKIP_ARG = -994 // pcre2_match.c:95:1: 1229 DMATCH_THEN = -993 // pcre2_match.c:96:1: 1230 DPUBLIC_JIT_MATCH_OPTIONS = 1073758271 // pcre2_match.c:74:1: 1231 DPUBLIC_MATCH_OPTIONS = 3758121023 // pcre2_match.c:69:1: 1232 DRECURSE_UNSET = 0xffffffff // pcre2_match.c:65:1: 1233 DFOUND_BOPOMOFO = 1 // pcre2_script_run.c:199:1: 1234 DFOUND_HANGUL = 8 // pcre2_script_run.c:202:1: 1235 DFOUND_HIRAGANA = 2 // pcre2_script_run.c:200:1: 1236 DFOUND_KATAKANA = 4 // pcre2_script_run.c:201:1: 1237 DSERIALIZED_DATA_MAGIC = 0x50523253 // pcre2_serialize.c:54:1: 1238 DSERIALIZED_DATA_VERSION = 2621450 // pcre2_serialize.c:59:1: 1239 DMAX_CACHE_BACKREF = 128 // pcre2_study.c:53:1: 1240 DPTR_STACK_SIZE = 20 // pcre2_substitute.c:48:1: 1241 DSUBSTITUTE_OPTIONS = 237312 // pcre2_substitute.c:50:1: 1242 ) 1243 1244 // Seconds since the Epoch, visible to user code when time_t is too 1245 // narrow only for consistency with the old way of widening too-narrow 1246 // types. User code should never use __time64_t. 1247 1248 // These are all the characteristics of characters. 1249 // If there get to be more than 16 distinct characteristics, 1250 // many things must be changed that use `unsigned short int's. 1251 // 1252 // The characteristics are stored always in network byte order (big 1253 // endian). We define the bit value interpretations here dependent on the 1254 // machine's byte order. 1255 1256 // Endian macros for string.h functions 1257 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 1258 // This file is part of the GNU C Library. 1259 // 1260 // The GNU C Library is free software; you can redistribute it and/or 1261 // modify it under the terms of the GNU Lesser General Public 1262 // License as published by the Free Software Foundation; either 1263 // version 2.1 of the License, or (at your option) any later version. 1264 // 1265 // The GNU C Library is distributed in the hope that it will be useful, 1266 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1267 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1268 // Lesser General Public License for more details. 1269 // 1270 // You should have received a copy of the GNU Lesser General Public 1271 // License along with the GNU C Library; if not, see 1272 // <http://www.gnu.org/licenses/>. 1273 1274 // Definitions for byte order, according to significance of bytes, 1275 // from low addresses to high addresses. The value is what you get by 1276 // putting '4' in the most significant byte, '3' in the second most 1277 // significant byte, '2' in the second least significant byte, and '1' 1278 // in the least significant byte, and then writing down one digit for 1279 // each byte, starting with the byte at the lowest address at the left, 1280 // and proceeding to the byte with the highest address at the right. 1281 1282 // This file defines `__BYTE_ORDER' for the particular machine. 1283 1284 // i386/x86_64 are little-endian. 1285 1286 // Some machines may need to use a different endianness for floating point 1287 // values. 1288 1289 const ( /* ctype.h:46:1: */ 1290 _ISupper = 256 // UPPERCASE. 1291 _ISlower = 512 // lowercase. 1292 _ISalpha = 1024 // Alphabetic. 1293 _ISdigit = 2048 // Numeric. 1294 _ISxdigit = 4096 // Hexadecimal numeric. 1295 _ISspace = 8192 // Whitespace. 1296 _ISprint = 16384 // Printing. 1297 _ISgraph = 32768 // Graphical. 1298 _ISblank = 1 // Blank (usually SPC and TAB). 1299 _IScntrl = 2 // Control character. 1300 _ISpunct = 4 // Punctuation. 1301 _ISalnum = 8 1302 ) 1303 1304 // Options that are changeable within the pattern must be tracked during 1305 // parsing. Some (e.g. PCRE2_EXTENDED) are implemented entirely during parsing, 1306 // but all must be tracked so that META_OPTIONS items set the correct values for 1307 // the main compiling phase. 1308 1309 // States used for analyzing ranges in character classes. The two OK values 1310 // must be last. 1311 1312 const ( /* pcre2_compile.c:2579:1: */ 1313 RANGE_NO = 0 1314 RANGE_OK_ESCAPED = 2 1315 RANGE_OK_LITERAL = 3 1316 ) 1317 1318 // Types for skipping parts of a parsed pattern. 1319 1320 const ( /* pcre2_compile.c:375:1: */ 1321 PSKIP_ALT = 0 1322 PSKIP_CLASS = 1 1323 PSKIP_KET = 2 1324 ) 1325 1326 // Masks for checking option settings. When PCRE2_LITERAL is set, only a subset 1327 // are allowed. 1328 1329 // Compile time error code numbers. They are given names so that they can more 1330 // easily be tracked. When a new number is added, the tables called eint1 and 1331 // eint2 in pcre2posix.c may need to be updated, and a new error text must be 1332 // added to compile_error_texts in pcre2_error.c. Also, the error codes in 1333 // pcre2.h.in must be updated - their values are exactly 100 greater than these 1334 // values. 1335 1336 const ( /* pcre2_compile.c:797:1: */ 1337 ERR0 = 100 1338 ERR1 = 101 1339 ERR2 = 102 1340 ERR3 = 103 1341 ERR4 = 104 1342 ERR5 = 105 1343 ERR6 = 106 1344 ERR7 = 107 1345 ERR8 = 108 1346 ERR9 = 109 1347 ERR10 = 110 1348 ERR11 = 111 1349 ERR12 = 112 1350 ERR13 = 113 1351 ERR14 = 114 1352 ERR15 = 115 1353 ERR16 = 116 1354 ERR17 = 117 1355 ERR18 = 118 1356 ERR19 = 119 1357 ERR20 = 120 1358 ERR21 = 121 1359 ERR22 = 122 1360 ERR23 = 123 1361 ERR24 = 124 1362 ERR25 = 125 1363 ERR26 = 126 1364 ERR27 = 127 1365 ERR28 = 128 1366 ERR29 = 129 1367 ERR30 = 130 1368 ERR31 = 131 1369 ERR32 = 132 1370 ERR33 = 133 1371 ERR34 = 134 1372 ERR35 = 135 1373 ERR36 = 136 1374 ERR37 = 137 1375 ERR38 = 138 1376 ERR39 = 139 1377 ERR40 = 140 1378 ERR41 = 141 1379 ERR42 = 142 1380 ERR43 = 143 1381 ERR44 = 144 1382 ERR45 = 145 1383 ERR46 = 146 1384 ERR47 = 147 1385 ERR48 = 148 1386 ERR49 = 149 1387 ERR50 = 150 1388 ERR51 = 151 1389 ERR52 = 152 1390 ERR53 = 153 1391 ERR54 = 154 1392 ERR55 = 155 1393 ERR56 = 156 1394 ERR57 = 157 1395 ERR58 = 158 1396 ERR59 = 159 1397 ERR60 = 160 1398 ERR61 = 161 1399 ERR62 = 162 1400 ERR63 = 163 1401 ERR64 = 164 1402 ERR65 = 165 1403 ERR66 = 166 1404 ERR67 = 167 1405 ERR68 = 168 1406 ERR69 = 169 1407 ERR70 = 170 1408 ERR71 = 171 1409 ERR72 = 172 1410 ERR73 = 173 1411 ERR74 = 174 1412 ERR75 = 175 1413 ERR76 = 176 1414 ERR77 = 177 1415 ERR78 = 178 1416 ERR79 = 179 1417 ERR80 = 180 1418 ERR81 = 181 1419 ERR82 = 182 1420 ERR83 = 183 1421 ERR84 = 184 1422 ERR85 = 185 1423 ERR86 = 186 1424 ERR87 = 187 1425 ERR88 = 188 1426 ERR89 = 189 1427 ERR90 = 190 1428 ERR91 = 191 1429 ERR92 = 192 1430 ERR93 = 193 1431 ERR94 = 194 1432 ERR95 = 195 1433 ERR96 = 196 1434 ERR97 = 197 1435 ERR98 = 198 1436 ERR99 = 199 1437 ) 1438 1439 // This is a table of start-of-pattern options such as (*UTF) and settings such 1440 // as (*LIMIT_MATCH=nnnn) and (*CRLF). For completeness and backward 1441 // compatibility, (*UTFn) is supported in the relevant libraries, but (*UTF) is 1442 // generic and always supported. 1443 1444 const ( /* pcre2_compile.c:814:1: */ 1445 PSO_OPT = 0 // Value is an option bit 1446 PSO_FLG = 1 // Value is a flag bit 1447 PSO_NL = 2 // Value is a newline type 1448 PSO_BSR = 3 // Value is a \R type 1449 PSO_LIMH = 4 // Read integer value for heap limit 1450 PSO_LIMM = 5 // Read integer value for match limit 1451 PSO_LIMD = 6 1452 ) 1453 1454 // This function is needed only when memmove() is not available. 1455 1456 // End of pcre2_internal.h 1457 1458 // Generated pattern fragments 1459 1460 // States for range and POSIX processing 1461 1462 const ( /* pcre2_convert.c:70:1: */ 1463 RANGE_NOT_STARTED = 0 1464 RANGE_STARTING = 1 1465 ) 1466 const ( /* pcre2_convert.c:71:1: */ 1467 POSIX_START_REGEX = 0 1468 POSIX_ANCHORED = 1 1469 POSIX_NOT_BRACKET = 2 1470 POSIX_CLASS_NOT_STARTED = 3 1471 POSIX_CLASS_STARTING = 4 1472 POSIX_CLASS_STARTED = 5 1473 ) // pcre2_jit_match() 1474 1475 // Values for the flags field in a match data block. 1476 1477 // Magic number to provide a small check against being handed junk. 1478 1479 // The maximum remaining length of subject we are prepared to search for a 1480 // req_unit match from an anchored pattern. In 8-bit mode, memchr() is used and is 1481 // much faster than the search loop that has to be used in 16-bit and 32-bit 1482 // modes. 1483 1484 // Offsets for the bitmap tables in the cbits set of tables. Each table 1485 // contains a set of bits for a class map. Some classes are built by combining 1486 // these tables. 1487 1488 // Bit definitions for entries in the ctypes table. Do not change these values 1489 // without checking pcre2_jit_compile.c, which has an assertion to ensure that 1490 // ctype_word has the value 16. 1491 1492 // Offsets of the various tables from the base tables pointer, and 1493 // total length of the tables. 1494 1495 // -------------------- Character and string names ------------------------ 1496 1497 // If PCRE2 is to support UTF-8 on EBCDIC platforms, we cannot use normal 1498 // character constants like '*' because the compiler would emit their EBCDIC code, 1499 // which is different from their ASCII/UTF-8 code. Instead we define macros for 1500 // the characters so that they always use the ASCII/UTF-8 code when UTF-8 support 1501 // is enabled. When UTF-8 support is not enabled, the definitions use character 1502 // literals. Both character and string versions of each character are needed, and 1503 // there are some longer strings as well. 1504 // 1505 // This means that, on EBCDIC platforms, the PCRE2 library can handle either 1506 // EBCDIC, or UTF-8, but not both. To support both in the same compiled library 1507 // would need different lookups depending on whether PCRE2_UTF was set or not. 1508 // This would make it impossible to use characters in switch/case statements, 1509 // which would reduce performance. For a theoretical use (which nobody has asked 1510 // for) in a minority area (EBCDIC platforms), this is not sensible. Any 1511 // application that did need both could compile two versions of the library, using 1512 // macros to give the functions distinct names. 1513 1514 // UTF-8 support is enabled; always use UTF-8 (=ASCII) character codes. This 1515 // works in both modes non-EBCDIC platforms, and on EBCDIC platforms in UTF-8 mode 1516 // only. 1517 1518 // -------------------- End of character and string names ------------------- 1519 1520 // -------------------- Definitions for compiled patterns ------------------- 1521 1522 // Codes for different types of Unicode property. If these definitions are 1523 // changed, the autopossessifying table in pcre2_auto_possess.c must be updated to 1524 // match. 1525 1526 // The following special properties are used only in XCLASS items, when POSIX 1527 // classes are specified and PCRE2_UCP is set - in other words, for Unicode 1528 // handling of these classes. They are not available via the \p or \P escapes like 1529 // those in the above list, and so they do not take part in the autopossessifying 1530 // table. 1531 1532 // This value is used when parsing \p and \P escapes to indicate that neither 1533 // \p{script:...} nor \p{scx:...} has been encountered. 1534 1535 // Flag bits and data types for the extended class (OP_XCLASS) for classes that 1536 // contain characters with values greater than 255. 1537 1538 // These are escaped items that aren't just an encoding of a particular data 1539 // value such as \n. They must have non-zero values, as check_escape() returns 0 1540 // for a data character. In the escapes[] table in pcre2_compile.c their values 1541 // are negated in order to distinguish them from data values. 1542 // 1543 // They must appear here in the same order as in the opcode definitions below, up 1544 // to ESC_z. There's a dummy for OP_ALLANY because it corresponds to "." in DOTALL 1545 // mode rather than an escape sequence. It is also used for [^] in JavaScript 1546 // compatibility mode, and for \C in non-utf mode. In non-DOTALL mode, "." behaves 1547 // like \N. 1548 // 1549 // Negative numbers are used to encode a backreference (\1, \2, \3, etc.) in 1550 // check_escape(). There are tests in the code for an escape greater than ESC_b 1551 // and less than ESC_Z to detect the types that may be repeated. These are the 1552 // types that consume characters. If any new escapes are put in between that don't 1553 // consume a character, that code will have to change. 1554 1555 const ( /* pcre2_internal.h:1337:1: */ 1556 ESC_A = 1 1557 ESC_G = 2 1558 ESC_K = 3 1559 ESC_B = 4 1560 ESC_b = 5 1561 ESC_D = 6 1562 ESC_d = 7 1563 ESC_S = 8 1564 ESC_s = 9 1565 ESC_W = 10 1566 ESC_w = 11 1567 ESC_N = 12 1568 ESC_dum = 13 1569 ESC_C = 14 1570 ESC_P = 15 1571 ESC_p = 16 1572 ESC_R = 17 1573 ESC_H = 18 1574 ESC_h = 19 1575 ESC_V = 20 1576 ESC_v = 21 1577 ESC_X = 22 1578 ESC_Z = 23 1579 ESC_z = 24 1580 ESC_E = 25 1581 ESC_Q = 26 1582 ESC_g = 27 1583 ESC_k = 28 1584 ) 1585 1586 //********************* Opcode definitions ***************** 1587 1588 //***** NOTE NOTE NOTE ****** 1589 // 1590 // Starting from 1 (i.e. after OP_END), the values up to OP_EOD must correspond in 1591 // order to the list of escapes immediately above. Furthermore, values up to 1592 // OP_DOLLM must not be changed without adjusting the table called autoposstab in 1593 // pcre2_auto_possess.c. 1594 // 1595 // Whenever this list is updated, the two macro definitions that follow must be 1596 // updated to match. The possessification table called "opcode_possessify" in 1597 // pcre2_compile.c must also be updated, and also the tables called "coptable" 1598 // and "poptable" in pcre2_dfa_match.c. 1599 // 1600 // ****** NOTE NOTE NOTE ***** 1601 1602 // The values between FIRST_AUTOTAB_OP and LAST_AUTOTAB_RIGHT_OP, inclusive, 1603 // are used in a table for deciding whether a repeated character type can be 1604 // auto-possessified. 1605 1606 const ( /* pcre2_internal.h:1368:1: */ 1607 OP_END = 0 // 0 End of pattern 1608 1609 // Values corresponding to backslashed metacharacters 1610 1611 OP_SOD = 1 // 1 Start of data: \A 1612 OP_SOM = 2 // 2 Start of match (subject + offset): \G 1613 OP_SET_SOM = 3 // 3 Set start of match (\K) 1614 OP_NOT_WORD_BOUNDARY = 4 // 4 \B 1615 OP_WORD_BOUNDARY = 5 // 5 \b 1616 OP_NOT_DIGIT = 6 // 6 \D 1617 OP_DIGIT = 7 // 7 \d 1618 OP_NOT_WHITESPACE = 8 // 8 \S 1619 OP_WHITESPACE = 9 // 9 \s 1620 OP_NOT_WORDCHAR = 10 // 10 \W 1621 OP_WORDCHAR = 11 // 11 \w 1622 1623 OP_ANY = 12 // 12 Match any character except newline (\N) 1624 OP_ALLANY = 13 // 13 Match any character 1625 OP_ANYBYTE = 14 // 14 Match any byte (\C); different to OP_ANY for UTF-8 1626 OP_NOTPROP = 15 // 15 \P (not Unicode property) 1627 OP_PROP = 16 // 16 \p (Unicode property) 1628 OP_ANYNL = 17 // 17 \R (any newline sequence) 1629 OP_NOT_HSPACE = 18 // 18 \H (not horizontal whitespace) 1630 OP_HSPACE = 19 // 19 \h (horizontal whitespace) 1631 OP_NOT_VSPACE = 20 // 20 \V (not vertical whitespace) 1632 OP_VSPACE = 21 // 21 \v (vertical whitespace) 1633 OP_EXTUNI = 22 // 22 \X (extended Unicode sequence 1634 OP_EODN = 23 // 23 End of data or \n at end of data (\Z) 1635 OP_EOD = 24 // 24 End of data (\z) 1636 1637 // Line end assertions 1638 1639 OP_DOLL = 25 // 25 End of line - not multiline 1640 OP_DOLLM = 26 // 26 End of line - multiline 1641 OP_CIRC = 27 // 27 Start of line - not multiline 1642 OP_CIRCM = 28 // 28 Start of line - multiline 1643 1644 // Single characters; caseful must precede the caseless ones, and these 1645 // must remain in this order, and adjacent. 1646 1647 OP_CHAR = 29 // 29 Match one character, casefully 1648 OP_CHARI = 30 // 30 Match one character, caselessly 1649 OP_NOT = 31 // 31 Match one character, not the given one, casefully 1650 OP_NOTI = 32 // 32 Match one character, not the given one, caselessly 1651 1652 // The following sets of 13 opcodes must always be kept in step because 1653 // the offset from the first one is used to generate the others. 1654 1655 // Repeated characters; caseful must precede the caseless ones 1656 1657 OP_STAR = 33 // 33 The maximizing and minimizing versions of 1658 OP_MINSTAR = 34 // 34 these six opcodes must come in pairs, with 1659 OP_PLUS = 35 // 35 the minimizing one second. 1660 OP_MINPLUS = 36 // 36 1661 OP_QUERY = 37 // 37 1662 OP_MINQUERY = 38 // 38 1663 1664 OP_UPTO = 39 // 39 From 0 to n matches of one character, caseful 1665 OP_MINUPTO = 40 // 40 1666 OP_EXACT = 41 // 41 Exactly n matches 1667 1668 OP_POSSTAR = 42 // 42 Possessified star, caseful 1669 OP_POSPLUS = 43 // 43 Possessified plus, caseful 1670 OP_POSQUERY = 44 // 44 Posesssified query, caseful 1671 OP_POSUPTO = 45 // 45 Possessified upto, caseful 1672 1673 // Repeated characters; caseless must follow the caseful ones 1674 1675 OP_STARI = 46 // 46 1676 OP_MINSTARI = 47 // 47 1677 OP_PLUSI = 48 // 48 1678 OP_MINPLUSI = 49 // 49 1679 OP_QUERYI = 50 // 50 1680 OP_MINQUERYI = 51 // 51 1681 1682 OP_UPTOI = 52 // 52 From 0 to n matches of one character, caseless 1683 OP_MINUPTOI = 53 // 53 1684 OP_EXACTI = 54 // 54 1685 1686 OP_POSSTARI = 55 // 55 Possessified star, caseless 1687 OP_POSPLUSI = 56 // 56 Possessified plus, caseless 1688 OP_POSQUERYI = 57 // 57 Posesssified query, caseless 1689 OP_POSUPTOI = 58 // 58 Possessified upto, caseless 1690 1691 // The negated ones must follow the non-negated ones, and match them 1692 // Negated repeated character, caseful; must precede the caseless ones 1693 1694 OP_NOTSTAR = 59 // 59 The maximizing and minimizing versions of 1695 OP_NOTMINSTAR = 60 // 60 these six opcodes must come in pairs, with 1696 OP_NOTPLUS = 61 // 61 the minimizing one second. They must be in 1697 OP_NOTMINPLUS = 62 // 62 exactly the same order as those above. 1698 OP_NOTQUERY = 63 // 63 1699 OP_NOTMINQUERY = 64 // 64 1700 1701 OP_NOTUPTO = 65 // 65 From 0 to n matches, caseful 1702 OP_NOTMINUPTO = 66 // 66 1703 OP_NOTEXACT = 67 // 67 Exactly n matches 1704 1705 OP_NOTPOSSTAR = 68 // 68 Possessified versions, caseful 1706 OP_NOTPOSPLUS = 69 // 69 1707 OP_NOTPOSQUERY = 70 // 70 1708 OP_NOTPOSUPTO = 71 // 71 1709 1710 // Negated repeated character, caseless; must follow the caseful ones 1711 1712 OP_NOTSTARI = 72 // 72 1713 OP_NOTMINSTARI = 73 // 73 1714 OP_NOTPLUSI = 74 // 74 1715 OP_NOTMINPLUSI = 75 // 75 1716 OP_NOTQUERYI = 76 // 76 1717 OP_NOTMINQUERYI = 77 // 77 1718 1719 OP_NOTUPTOI = 78 // 78 From 0 to n matches, caseless 1720 OP_NOTMINUPTOI = 79 // 79 1721 OP_NOTEXACTI = 80 // 80 Exactly n matches 1722 1723 OP_NOTPOSSTARI = 81 // 81 Possessified versions, caseless 1724 OP_NOTPOSPLUSI = 82 // 82 1725 OP_NOTPOSQUERYI = 83 // 83 1726 OP_NOTPOSUPTOI = 84 // 84 1727 1728 // Character types 1729 1730 OP_TYPESTAR = 85 // 85 The maximizing and minimizing versions of 1731 OP_TYPEMINSTAR = 86 // 86 these six opcodes must come in pairs, with 1732 OP_TYPEPLUS = 87 // 87 the minimizing one second. These codes must 1733 OP_TYPEMINPLUS = 88 // 88 be in exactly the same order as those above. 1734 OP_TYPEQUERY = 89 // 89 1735 OP_TYPEMINQUERY = 90 // 90 1736 1737 OP_TYPEUPTO = 91 // 91 From 0 to n matches 1738 OP_TYPEMINUPTO = 92 // 92 1739 OP_TYPEEXACT = 93 // 93 Exactly n matches 1740 1741 OP_TYPEPOSSTAR = 94 // 94 Possessified versions 1742 OP_TYPEPOSPLUS = 95 // 95 1743 OP_TYPEPOSQUERY = 96 // 96 1744 OP_TYPEPOSUPTO = 97 // 97 1745 1746 // These are used for character classes and back references; only the 1747 // first six are the same as the sets above. 1748 1749 OP_CRSTAR = 98 // 98 The maximizing and minimizing versions of 1750 OP_CRMINSTAR = 99 // 99 all these opcodes must come in pairs, with 1751 OP_CRPLUS = 100 // 100 the minimizing one second. These codes must 1752 OP_CRMINPLUS = 101 // 101 be in exactly the same order as those above. 1753 OP_CRQUERY = 102 // 102 1754 OP_CRMINQUERY = 103 // 103 1755 1756 OP_CRRANGE = 104 // 104 These are different to the three sets above. 1757 OP_CRMINRANGE = 105 // 105 1758 1759 OP_CRPOSSTAR = 106 // 106 Possessified versions 1760 OP_CRPOSPLUS = 107 // 107 1761 OP_CRPOSQUERY = 108 // 108 1762 OP_CRPOSRANGE = 109 // 109 1763 1764 // End of quantifier opcodes 1765 1766 OP_CLASS = 110 // 110 Match a character class, chars < 256 only 1767 OP_NCLASS = 111 // 111 Same, but the bitmap was created from a negative 1768 // class - the difference is relevant only when a 1769 // character > 255 is encountered. 1770 OP_XCLASS = 112 // 112 Extended class for handling > 255 chars within the 1771 // class. This does both positive and negative. 1772 OP_REF = 113 // 113 Match a back reference, casefully 1773 OP_REFI = 114 // 114 Match a back reference, caselessly 1774 OP_DNREF = 115 // 115 Match a duplicate name backref, casefully 1775 OP_DNREFI = 116 // 116 Match a duplicate name backref, caselessly 1776 OP_RECURSE = 117 // 117 Match a numbered subpattern (possibly recursive) 1777 OP_CALLOUT = 118 // 118 Call out to external function if provided 1778 OP_CALLOUT_STR = 119 // 119 Call out with string argument 1779 1780 OP_ALT = 120 // 120 Start of alternation 1781 OP_KET = 121 // 121 End of group that doesn't have an unbounded repeat 1782 OP_KETRMAX = 122 // 122 These two must remain together and in this 1783 OP_KETRMIN = 123 // 123 order. They are for groups the repeat for ever. 1784 OP_KETRPOS = 124 // 124 Possessive unlimited repeat. 1785 1786 // The assertions must come before BRA, CBRA, ONCE, and COND. 1787 1788 OP_REVERSE = 125 // 125 Move pointer back - used in lookbehind assertions 1789 OP_ASSERT = 126 // 126 Positive lookahead 1790 OP_ASSERT_NOT = 127 // 127 Negative lookahead 1791 OP_ASSERTBACK = 128 // 128 Positive lookbehind 1792 OP_ASSERTBACK_NOT = 129 // 129 Negative lookbehind 1793 OP_ASSERT_NA = 130 // 130 Positive non-atomic lookahead 1794 OP_ASSERTBACK_NA = 131 // 131 Positive non-atomic lookbehind 1795 1796 // ONCE, SCRIPT_RUN, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come 1797 // immediately after the assertions, with ONCE first, as there's a test for >= 1798 // ONCE for a subpattern that isn't an assertion. The POS versions must 1799 // immediately follow the non-POS versions in each case. 1800 1801 OP_ONCE = 132 // 132 Atomic group, contains captures 1802 OP_SCRIPT_RUN = 133 // 133 Non-capture, but check characters' scripts 1803 OP_BRA = 134 // 134 Start of non-capturing bracket 1804 OP_BRAPOS = 135 // 135 Ditto, with unlimited, possessive repeat 1805 OP_CBRA = 136 // 136 Start of capturing bracket 1806 OP_CBRAPOS = 137 // 137 Ditto, with unlimited, possessive repeat 1807 OP_COND = 138 // 138 Conditional group 1808 1809 // These five must follow the previous five, in the same order. There's a 1810 // check for >= SBRA to distinguish the two sets. 1811 1812 OP_SBRA = 139 // 139 Start of non-capturing bracket, check empty 1813 OP_SBRAPOS = 140 // 149 Ditto, with unlimited, possessive repeat 1814 OP_SCBRA = 141 // 141 Start of capturing bracket, check empty 1815 OP_SCBRAPOS = 142 // 142 Ditto, with unlimited, possessive repeat 1816 OP_SCOND = 143 // 143 Conditional group, check empty 1817 1818 // The next two pairs must (respectively) be kept together. 1819 1820 OP_CREF = 144 // 144 Used to hold a capture number as condition 1821 OP_DNCREF = 145 // 145 Used to point to duplicate names as a condition 1822 OP_RREF = 146 // 146 Used to hold a recursion number as condition 1823 OP_DNRREF = 147 // 147 Used to point to duplicate names as a condition 1824 OP_FALSE = 148 // 148 Always false (used by DEFINE and VERSION) 1825 OP_TRUE = 149 // 149 Always true (used by VERSION) 1826 1827 OP_BRAZERO = 150 // 150 These two must remain together and in this 1828 OP_BRAMINZERO = 151 // 151 order. 1829 OP_BRAPOSZERO = 152 // 152 1830 1831 // These are backtracking control verbs 1832 1833 OP_MARK = 153 // 153 always has an argument 1834 OP_PRUNE = 154 // 154 1835 OP_PRUNE_ARG = 155 // 155 same, but with argument 1836 OP_SKIP = 156 // 156 1837 OP_SKIP_ARG = 157 // 157 same, but with argument 1838 OP_THEN = 158 // 158 1839 OP_THEN_ARG = 159 // 159 same, but with argument 1840 OP_COMMIT = 160 // 160 1841 OP_COMMIT_ARG = 161 // 161 same, but with argument 1842 1843 // These are forced failure and success verbs. FAIL and ACCEPT do accept an 1844 // argument, but these cases can be compiled as, for example, (*MARK:X)(*FAIL) 1845 // without the need for a special opcode. 1846 1847 OP_FAIL = 162 // 162 1848 OP_ACCEPT = 163 // 163 1849 OP_ASSERT_ACCEPT = 164 // 164 Used inside assertions 1850 OP_CLOSE = 165 // 165 Used before OP_ACCEPT to close open captures 1851 1852 // This is used to skip a subpattern with a {0} quantifier 1853 1854 OP_SKIPZERO = 166 // 166 1855 1856 // This is used to identify a DEFINE group during compilation so that it can 1857 // be checked for having only one branch. It is changed to OP_FALSE before 1858 // compilation finishes. 1859 1860 OP_DEFINE = 167 // 167 1861 1862 // This is not an opcode, but is used to check that tables indexed by opcode 1863 // are the correct length, in order to catch updating errors - there have been 1864 // some in the past. 1865 1866 OP_TABLE_LENGTH = 168 1867 ) 1868 1869 // Size of entries in ucd_script_sets[] 1870 1871 // End of pcre2_ucp.h 1872 1873 // When PCRE2 is compiled as a C++ library, the subject pointer can be replaced 1874 // with a custom type. This makes it possible, for example, to allow pcre2_match() 1875 // to process subject strings that are discontinuous by using a smart pointer 1876 // class. It must always be possible to inspect all of the subject string in 1877 // pcre2_match() because of the way it backtracks. 1878 1879 // WARNING: This is as yet untested for PCRE2. 1880 1881 // When checking for integer overflow in pcre2_compile(), we need to handle 1882 // large integers. If a 64-bit integer type is available, we can use that. 1883 // Otherwise we have to cast to double, which of course requires floating point 1884 // arithmetic. Handle this by defining a macro for the appropriate type. 1885 1886 // External (in the C sense) functions and tables that are private to the 1887 // libraries are always referenced using the PRIV macro. This makes it possible 1888 // for pcre2test.c to include some of the source files from the libraries using a 1889 // different PRIV definition to avoid name clashes. It also makes it clear in the 1890 // code that a non-static object is being referenced. 1891 1892 // When compiling for use with the Virtual Pascal compiler, these functions 1893 // need to have their names changed. PCRE2 must be compiled with the -DVPCOMPAT 1894 // option on the command line. 1895 1896 // Otherwise, to cope with SunOS4 and other systems that lack memmove(), define 1897 // a macro that calls an emulating function. 1898 1899 // This is an unsigned int value that no UTF character can ever have, as 1900 // Unicode doesn't go beyond 0x0010ffff. 1901 1902 // This is the largest valid UTF/Unicode code point. 1903 1904 // Compile-time positive error numbers (all except UTF errors, which are 1905 // negative) start at this value. It should probably never be changed, in case 1906 // some application is checking for specific numbers. There is a copy of this 1907 // #define in pcre2posix.c (which now no longer includes this file). Ideally, a 1908 // way of having a single definition should be found, but as the number is 1909 // unlikely to change, this is not a pressing issue. The original reason for 1910 // having a base other than 0 was to keep the absolute values of compile-time and 1911 // run-time error numbers numerically different, but in the event the code does 1912 // not rely on this. 1913 1914 // The initial frames vector for remembering backtracking points in 1915 // pcre2_match() is allocated on the system stack, of this size (bytes). The size 1916 // must be a multiple of sizeof(PCRE2_SPTR) in all environments, so making it a 1917 // multiple of 8 is best. Typical frame sizes are a few hundred bytes (it depends 1918 // on the number of capturing parentheses) so 20KiB handles quite a few frames. A 1919 // larger vector on the heap is obtained for patterns that need more frames. The 1920 // maximum size of this can be limited. 1921 1922 // Similarly, for DFA matching, an initial internal workspace vector is 1923 // allocated on the stack. 1924 1925 // Define the default BSR convention. 1926 1927 // ---------------- Basic UTF-8 macros ---------------- 1928 1929 // These UTF-8 macros are always defined because they are used in pcre2test for 1930 // handling wide characters in 16-bit and 32-bit modes, even if an 8-bit library 1931 // is not supported. 1932 1933 // Tests whether a UTF-8 code point needs extra bytes to decode. 1934 1935 // The following macros were originally written in the form of loops that used 1936 // data from the tables whose names start with PRIV(utf8_table). They were 1937 // rewritten by a user so as not to use loops, because in some environments this 1938 // gives a significant performance advantage, and it seems never to do any harm. 1939 1940 // Base macro to pick up the remaining bytes of a UTF-8 character, not 1941 // advancing the pointer. 1942 1943 // Base macro to pick up the remaining bytes of a UTF-8 character, advancing 1944 // the pointer. 1945 1946 // Base macro to pick up the remaining bytes of a UTF-8 character, not 1947 // advancing the pointer, incrementing the length. 1948 1949 // --------------- Whitespace macros ---------------- 1950 1951 // Tests for Unicode horizontal and vertical whitespace characters must check a 1952 // number of different values. Using a switch statement for this generates the 1953 // fastest code (no loop, no memory access), and there are several places in the 1954 // interpreter code where this happens. In order to ensure that all the case lists 1955 // remain in step, we use macros so that there is only one place where the lists 1956 // are defined. 1957 // 1958 // These values are also required as lists in pcre2_compile.c when processing \h, 1959 // \H, \v and \V in a character class. The lists are defined in pcre2_tables.c, 1960 // but macros that define the values are here so that all the definitions are 1961 // together. The lists must be in ascending character order, terminated by 1962 // NOTACHAR (which is 0xffffffff). 1963 // 1964 // Any changes should ensure that the various macros are kept in step with each 1965 // other. NOTE: The values also appear in pcre2_jit_compile.c. 1966 1967 // -------------- ASCII/Unicode environments -------------- 1968 1969 // Character U+180E (Mongolian Vowel Separator) is not included in the list of 1970 // spaces in the Unicode file PropList.txt, and Perl does not recognize it as a 1971 // space. However, in many other sources it is listed as a space and has been in 1972 // PCRE (both APIs) for a long time. 1973 1974 // -------------- EBCDIC environments -------------- 1975 1976 // -------------- End of whitespace macros -------------- 1977 1978 // PCRE2 is able to support several different kinds of newline (CR, LF, CRLF, 1979 // "any" and "anycrlf" at present). The following macros are used to package up 1980 // testing for newlines. NLBLOCK, PSSTART, and PSEND are defined in the various 1981 // modules to indicate in which datablock the parameters exist, and what the 1982 // start/end of string field names are. 1983 1984 // This macro checks for a newline at the given position 1985 1986 // This macro checks for a newline immediately preceding the given position 1987 1988 // Private flags containing information about the compiled pattern. The first 1989 // three must not be changed, because whichever is set is actually the number of 1990 // bytes in a code unit in that mode. 1991 1992 // Values for the matchedby field in a match data block. 1993 1994 const ( /* pcre2_internal.h:537:1: */ 1995 PCRE2_MATCHEDBY_INTERPRETER = 0 // pcre2_match() 1996 PCRE2_MATCHEDBY_DFA_INTERPRETER = 1 // pcre2_dfa_match() 1997 PCRE2_MATCHEDBY_JIT = 2 1998 ) 1999 2000 // This function is needed only when memmove() is not available. 2001 2002 // End of pcre2_internal.h 2003 2004 // Masks for identifying the public options that are permitted at match time. 2005 2006 // Non-error returns from and within the match() function. Error returns are 2007 // externally defined PCRE2_ERROR_xxx codes, which are all negative. 2008 2009 // Special internal returns used in the match() function. Make them 2010 // sufficiently negative to avoid the external error codes. 2011 2012 // The next 5 must be kept together and in sequence so that a test that checks 2013 // for any one of them can use a range. 2014 2015 // Group frame type values. Zero means the frame is not a group frame. The 2016 // lower 16 bits are used for data (e.g. the capture number). Group frames are 2017 // used for most groups so that information about the start is easily available at 2018 // the end without having to scan back through intermediate frames (backtrack 2019 // points). 2020 2021 // Masks for the identity and data parts of the group frame type. 2022 2023 // Repetition types 2024 2025 const ( /* pcre2_match.c:118:1: */ 2026 REPTYPE_MIN = 0 2027 REPTYPE_MAX = 1 2028 REPTYPE_POS = 2 2029 ) // OP_CRPOSQUERY, OP_CRPOSRANGE 2030 2031 // Numbers for RMATCH calls at backtracking points. When these lists are 2032 // changed, the code at RETURN_SWITCH below must be updated in sync. 2033 2034 const ( /* pcre2_match.c:150:1: */ 2035 RM1 = 1 2036 RM2 = 2 2037 RM3 = 3 2038 RM4 = 4 2039 RM5 = 5 2040 RM6 = 6 2041 RM7 = 7 2042 RM8 = 8 2043 RM9 = 9 2044 RM10 = 10 2045 RM11 = 11 2046 RM12 = 12 2047 RM13 = 13 2048 RM14 = 14 2049 RM15 = 15 2050 RM16 = 16 2051 RM17 = 17 2052 RM18 = 18 2053 RM19 = 19 2054 RM20 = 20 2055 RM21 = 21 2056 RM22 = 22 2057 RM23 = 23 2058 RM24 = 24 2059 RM25 = 25 2060 RM26 = 26 2061 RM27 = 27 2062 RM28 = 28 2063 RM29 = 29 2064 RM30 = 30 2065 RM31 = 31 2066 RM32 = 32 2067 RM33 = 33 2068 RM34 = 34 2069 RM35 = 35 2070 RM36 = 36 2071 ) 2072 2073 const ( /* pcre2_match.c:156:1: */ 2074 RM100 = 100 2075 RM101 = 101 2076 ) 2077 2078 const ( /* pcre2_match.c:160:1: */ 2079 RM200 = 200 2080 RM201 = 201 2081 RM202 = 202 2082 RM203 = 203 2083 RM204 = 204 2084 RM205 = 205 2085 RM206 = 206 2086 RM207 = 207 2087 RM208 = 208 2088 RM209 = 209 2089 RM210 = 210 2090 RM211 = 211 2091 RM212 = 212 2092 RM213 = 213 2093 RM214 = 214 2094 RM215 = 215 2095 RM216 = 216 2096 RM217 = 217 2097 RM218 = 218 2098 RM219 = 219 2099 RM220 = 220 2100 RM221 = 221 2101 RM222 = 222 2102 RM223 = 223 2103 RM224 = 224 2104 RM225 = 225 2105 ) 2106 2107 // This function is needed only when memmove() is not available. 2108 2109 // End of pcre2_internal.h 2110 2111 // ************************************************ 2112 // 2113 // Check script run * 2114 // 2115 2116 // A script run is conceptually a sequence of characters all in the same 2117 // Unicode script. However, it isn't quite that simple. There are special rules 2118 // for scripts that are commonly used together, and also special rules for digits. 2119 // This function implements the appropriate checks, which is possible only when 2120 // PCRE2 is compiled with Unicode support. The function returns TRUE if there is 2121 // no Unicode support; however, it should never be called in that circumstance 2122 // because an error is given by pcre2_compile() if a script run is called for in a 2123 // version of PCRE2 compiled without Unicode support. 2124 // 2125 // Arguments: 2126 // pgr point to the first character 2127 // endptr point after the last character 2128 // utf TRUE if in UTF mode 2129 // 2130 // Returns: TRUE if this is a valid script run 2131 2132 // These are states in the checking process. 2133 2134 const ( /* pcre2_script_run.c:73:1: */ 2135 SCRIPT_UNSET = 0 // Requirement as yet unknown 2136 SCRIPT_MAP = 1 // Bitmap contains acceptable scripts 2137 SCRIPT_HANPENDING = 2 // Have had only Han characters 2138 SCRIPT_HANHIRAKATA = 3 // Expect Han or Hirikata 2139 SCRIPT_HANBOPOMOFO = 4 // Expect Han or Bopomofo 2140 SCRIPT_HANHANGUL = 5 2141 ) 2142 2143 // This function is needed only when memmove() is not available. 2144 2145 // End of pcre2_internal.h 2146 2147 // The maximum remembered capturing brackets minimum. 2148 2149 // Set a bit in the starting code unit bit map. 2150 2151 // Returns from set_start_bits() 2152 2153 const ( /* pcre2_study.c:61:1: */ 2154 SSB_FAIL = 0 2155 SSB_DONE = 1 2156 SSB_CONTINUE = 2 2157 SSB_UNKNOWN = 3 2158 SSB_TOODEEP = 4 2159 ) 2160 2161 // These are Boolean properties. 2162 2163 const ( /* pcre2_ucp.h:105:1: */ 2164 ucp_ASCII = 0 2165 ucp_ASCII_Hex_Digit = 1 2166 ucp_Alphabetic = 2 2167 ucp_Bidi_Control = 3 2168 ucp_Bidi_Mirrored = 4 2169 ucp_Case_Ignorable = 5 2170 ucp_Cased = 6 2171 ucp_Changes_When_Casefolded = 7 2172 ucp_Changes_When_Casemapped = 8 2173 ucp_Changes_When_Lowercased = 9 2174 ucp_Changes_When_Titlecased = 10 2175 ucp_Changes_When_Uppercased = 11 2176 ucp_Dash = 12 2177 ucp_Default_Ignorable_Code_Point = 13 2178 ucp_Deprecated = 14 2179 ucp_Diacritic = 15 2180 ucp_Emoji = 16 2181 ucp_Emoji_Component = 17 2182 ucp_Emoji_Modifier = 18 2183 ucp_Emoji_Modifier_Base = 19 2184 ucp_Emoji_Presentation = 20 2185 ucp_Extended_Pictographic = 21 2186 ucp_Extender = 22 2187 ucp_Grapheme_Base = 23 2188 ucp_Grapheme_Extend = 24 2189 ucp_Grapheme_Link = 25 2190 ucp_Hex_Digit = 26 2191 ucp_IDS_Binary_Operator = 27 2192 ucp_IDS_Trinary_Operator = 28 2193 ucp_ID_Continue = 29 2194 ucp_ID_Start = 30 2195 ucp_Ideographic = 31 2196 ucp_Join_Control = 32 2197 ucp_Logical_Order_Exception = 33 2198 ucp_Lowercase = 34 2199 ucp_Math = 35 2200 ucp_Noncharacter_Code_Point = 36 2201 ucp_Pattern_Syntax = 37 2202 ucp_Pattern_White_Space = 38 2203 ucp_Prepended_Concatenation_Mark = 39 2204 ucp_Quotation_Mark = 40 2205 ucp_Radical = 41 2206 ucp_Regional_Indicator = 42 2207 ucp_Sentence_Terminal = 43 2208 ucp_Soft_Dotted = 44 2209 ucp_Terminal_Punctuation = 45 2210 ucp_Unified_Ideograph = 46 2211 ucp_Uppercase = 47 2212 ucp_Variation_Selector = 48 2213 ucp_White_Space = 49 2214 ucp_XID_Continue = 50 2215 ucp_XID_Start = 51 2216 // This must be last 2217 ucp_Bprop_Count = 52 2218 ) 2219 2220 // Size of entries in ucd_boolprop_sets[] 2221 2222 // These are the bidi class values. 2223 2224 const ( /* pcre2_ucp.h:168:1: */ 2225 ucp_bidiAL = 0 // Arabic letter 2226 ucp_bidiAN = 1 // Arabic number 2227 ucp_bidiB = 2 // Paragraph separator 2228 ucp_bidiBN = 3 // Boundary neutral 2229 ucp_bidiCS = 4 // Common separator 2230 ucp_bidiEN = 5 // European number 2231 ucp_bidiES = 6 // European separator 2232 ucp_bidiET = 7 // European terminator 2233 ucp_bidiFSI = 8 // First strong isolate 2234 ucp_bidiL = 9 // Left to right 2235 ucp_bidiLRE = 10 // Left to right embedding 2236 ucp_bidiLRI = 11 // Left to right isolate 2237 ucp_bidiLRO = 12 // Left to right override 2238 ucp_bidiNSM = 13 // Non-spacing mark 2239 ucp_bidiON = 14 // Other neutral 2240 ucp_bidiPDF = 15 // Pop directional format 2241 ucp_bidiPDI = 16 // Pop directional isolate 2242 ucp_bidiR = 17 // Right to left 2243 ucp_bidiRLE = 18 // Right to left embedding 2244 ucp_bidiRLI = 19 // Right to left isolate 2245 ucp_bidiRLO = 20 // Right to left override 2246 ucp_bidiS = 21 // Segment separator 2247 ucp_bidiWS = 22 2248 ) 2249 2250 // These are grapheme break properties. The Extended Pictographic property 2251 // comes from the emoji-data.txt file. 2252 2253 const ( /* pcre2_ucp.h:197:1: */ 2254 ucp_gbCR = 0 // 0 2255 ucp_gbLF = 1 // 1 2256 ucp_gbControl = 2 // 2 2257 ucp_gbExtend = 3 // 3 2258 ucp_gbPrepend = 4 // 4 2259 ucp_gbSpacingMark = 5 // 5 2260 ucp_gbL = 6 // 6 Hangul syllable type L 2261 ucp_gbV = 7 // 7 Hangul syllable type V 2262 ucp_gbT = 8 // 8 Hangul syllable type T 2263 ucp_gbLV = 9 // 9 Hangul syllable type LV 2264 ucp_gbLVT = 10 // 10 Hangul syllable type LVT 2265 ucp_gbRegional_Indicator = 11 // 11 2266 ucp_gbOther = 12 // 12 2267 ucp_gbZWJ = 13 // 13 2268 ucp_gbExtended_Pictographic = 14 2269 ) 2270 2271 // These are the script identifications. 2272 2273 const ( /* pcre2_ucp.h:217:1: */ 2274 // Scripts which has characters in other scripts. 2275 ucp_Latin = 0 2276 ucp_Greek = 1 2277 ucp_Cyrillic = 2 2278 ucp_Arabic = 3 2279 ucp_Syriac = 4 2280 ucp_Thaana = 5 2281 ucp_Devanagari = 6 2282 ucp_Bengali = 7 2283 ucp_Gurmukhi = 8 2284 ucp_Gujarati = 9 2285 ucp_Oriya = 10 2286 ucp_Tamil = 11 2287 ucp_Telugu = 12 2288 ucp_Kannada = 13 2289 ucp_Malayalam = 14 2290 ucp_Sinhala = 15 2291 ucp_Myanmar = 16 2292 ucp_Georgian = 17 2293 ucp_Hangul = 18 2294 ucp_Mongolian = 19 2295 ucp_Hiragana = 20 2296 ucp_Katakana = 21 2297 ucp_Bopomofo = 22 2298 ucp_Han = 23 2299 ucp_Yi = 24 2300 ucp_Tagalog = 25 2301 ucp_Hanunoo = 26 2302 ucp_Buhid = 27 2303 ucp_Tagbanwa = 28 2304 ucp_Limbu = 29 2305 ucp_Tai_Le = 30 2306 ucp_Linear_B = 31 2307 ucp_Cypriot = 32 2308 ucp_Buginese = 33 2309 ucp_Coptic = 34 2310 ucp_Glagolitic = 35 2311 ucp_Syloti_Nagri = 36 2312 ucp_Phags_Pa = 37 2313 ucp_Nko = 38 2314 ucp_Kayah_Li = 39 2315 ucp_Javanese = 40 2316 ucp_Kaithi = 41 2317 ucp_Mandaic = 42 2318 ucp_Chakma = 43 2319 ucp_Sharada = 44 2320 ucp_Takri = 45 2321 ucp_Duployan = 46 2322 ucp_Grantha = 47 2323 ucp_Khojki = 48 2324 ucp_Linear_A = 49 2325 ucp_Mahajani = 50 2326 ucp_Manichaean = 51 2327 ucp_Modi = 52 2328 ucp_Old_Permic = 53 2329 ucp_Psalter_Pahlavi = 54 2330 ucp_Khudawadi = 55 2331 ucp_Tirhuta = 56 2332 ucp_Multani = 57 2333 ucp_Adlam = 58 2334 ucp_Masaram_Gondi = 59 2335 ucp_Dogra = 60 2336 ucp_Gunjala_Gondi = 61 2337 ucp_Hanifi_Rohingya = 62 2338 ucp_Sogdian = 63 2339 ucp_Nandinagari = 64 2340 ucp_Yezidi = 65 2341 ucp_Cypro_Minoan = 66 2342 ucp_Old_Uyghur = 67 2343 2344 // Scripts which has no characters in other scripts. 2345 ucp_Unknown = 68 2346 ucp_Common = 69 2347 ucp_Armenian = 70 2348 ucp_Hebrew = 71 2349 ucp_Thai = 72 2350 ucp_Lao = 73 2351 ucp_Tibetan = 74 2352 ucp_Ethiopic = 75 2353 ucp_Cherokee = 76 2354 ucp_Canadian_Aboriginal = 77 2355 ucp_Ogham = 78 2356 ucp_Runic = 79 2357 ucp_Khmer = 80 2358 ucp_Old_Italic = 81 2359 ucp_Gothic = 82 2360 ucp_Deseret = 83 2361 ucp_Inherited = 84 2362 ucp_Ugaritic = 85 2363 ucp_Shavian = 86 2364 ucp_Osmanya = 87 2365 ucp_Braille = 88 2366 ucp_New_Tai_Lue = 89 2367 ucp_Tifinagh = 90 2368 ucp_Old_Persian = 91 2369 ucp_Kharoshthi = 92 2370 ucp_Balinese = 93 2371 ucp_Cuneiform = 94 2372 ucp_Phoenician = 95 2373 ucp_Sundanese = 96 2374 ucp_Lepcha = 97 2375 ucp_Ol_Chiki = 98 2376 ucp_Vai = 99 2377 ucp_Saurashtra = 100 2378 ucp_Rejang = 101 2379 ucp_Lycian = 102 2380 ucp_Carian = 103 2381 ucp_Lydian = 104 2382 ucp_Cham = 105 2383 ucp_Tai_Tham = 106 2384 ucp_Tai_Viet = 107 2385 ucp_Avestan = 108 2386 ucp_Egyptian_Hieroglyphs = 109 2387 ucp_Samaritan = 110 2388 ucp_Lisu = 111 2389 ucp_Bamum = 112 2390 ucp_Meetei_Mayek = 113 2391 ucp_Imperial_Aramaic = 114 2392 ucp_Old_South_Arabian = 115 2393 ucp_Inscriptional_Parthian = 116 2394 ucp_Inscriptional_Pahlavi = 117 2395 ucp_Old_Turkic = 118 2396 ucp_Batak = 119 2397 ucp_Brahmi = 120 2398 ucp_Meroitic_Cursive = 121 2399 ucp_Meroitic_Hieroglyphs = 122 2400 ucp_Miao = 123 2401 ucp_Sora_Sompeng = 124 2402 ucp_Caucasian_Albanian = 125 2403 ucp_Bassa_Vah = 126 2404 ucp_Elbasan = 127 2405 ucp_Pahawh_Hmong = 128 2406 ucp_Mende_Kikakui = 129 2407 ucp_Mro = 130 2408 ucp_Old_North_Arabian = 131 2409 ucp_Nabataean = 132 2410 ucp_Palmyrene = 133 2411 ucp_Pau_Cin_Hau = 134 2412 ucp_Siddham = 135 2413 ucp_Warang_Citi = 136 2414 ucp_Ahom = 137 2415 ucp_Anatolian_Hieroglyphs = 138 2416 ucp_Hatran = 139 2417 ucp_Old_Hungarian = 140 2418 ucp_SignWriting = 141 2419 ucp_Bhaiksuki = 142 2420 ucp_Marchen = 143 2421 ucp_Newa = 144 2422 ucp_Osage = 145 2423 ucp_Tangut = 146 2424 ucp_Nushu = 147 2425 ucp_Soyombo = 148 2426 ucp_Zanabazar_Square = 149 2427 ucp_Makasar = 150 2428 ucp_Medefaidrin = 151 2429 ucp_Old_Sogdian = 152 2430 ucp_Elymaic = 153 2431 ucp_Nyiakeng_Puachue_Hmong = 154 2432 ucp_Wancho = 155 2433 ucp_Chorasmian = 156 2434 ucp_Dives_Akuru = 157 2435 ucp_Khitan_Small_Script = 158 2436 ucp_Tangsa = 159 2437 ucp_Toto = 160 2438 ucp_Vithkuqi = 161 2439 2440 // This must be last 2441 ucp_Script_Count = 162 2442 ) 2443 2444 // Undefine the list macros; they are no longer needed. 2445 2446 // PCRE2_CODE_UNIT_WIDTH must be defined. If it is 8, 16, or 32, redefine 2447 // PCRE2_SUFFIX to use it. If it is 0, undefine the other macros and make 2448 // PCRE2_SUFFIX a no-op. Otherwise, generate an error. 2449 2450 // End of pcre2.h 2451 // ************************************************ 2452 // 2453 // Perl-Compatible Regular Expressions * 2454 // 2455 2456 // PCRE is a library of functions to support regular expressions whose syntax 2457 // and semantics are as close as possible to those of the Perl 5 language. 2458 // 2459 // Written by Philip Hazel 2460 // Original API code Copyright (c) 1997-2012 University of Cambridge 2461 // New API code Copyright (c) 2016-2022 University of Cambridge 2462 // 2463 // This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY! 2464 // Instead, modify the maint/GenerateUcpHeader.py script and run it to generate 2465 // a new version of this code. 2466 // 2467 // ----------------------------------------------------------------------------- 2468 // Redistribution and use in source and binary forms, with or without 2469 // modification, are permitted provided that the following conditions are met: 2470 // 2471 // * Redistributions of source code must retain the above copyright notice, 2472 // this list of conditions and the following disclaimer. 2473 // 2474 // * Redistributions in binary form must reproduce the above copyright 2475 // notice, this list of conditions and the following disclaimer in the 2476 // documentation and/or other materials provided with the distribution. 2477 // 2478 // * Neither the name of the University of Cambridge nor the names of its 2479 // contributors may be used to endorse or promote products derived from 2480 // this software without specific prior written permission. 2481 // 2482 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2483 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2484 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2485 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2486 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2487 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2488 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2489 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2490 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2491 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2492 // POSSIBILITY OF SUCH DAMAGE. 2493 // ----------------------------------------------------------------------------- 2494 2495 // This file contains definitions of the Unicode property values that are 2496 // returned by the UCD access macros and used throughout PCRE2. 2497 // 2498 // IMPORTANT: The specific values of the first two enums (general and particular 2499 // character categories) are assumed by the table called catposstab in the file 2500 // pcre2_auto_possess.c. They are unlikely to change, but should be checked after 2501 // an update. 2502 2503 // These are the general character categories. 2504 2505 const ( /* pcre2_ucp.h:58:1: */ 2506 ucp_C = 0 2507 ucp_L = 1 2508 ucp_M = 2 2509 ucp_N = 3 2510 ucp_P = 4 2511 ucp_S = 5 2512 ucp_Z = 6 2513 ) 2514 2515 // These are the particular character categories. 2516 2517 const ( /* pcre2_ucp.h:70:1: */ 2518 ucp_Cc = 0 // Control 2519 ucp_Cf = 1 // Format 2520 ucp_Cn = 2 // Unassigned 2521 ucp_Co = 3 // Private use 2522 ucp_Cs = 4 // Surrogate 2523 ucp_Ll = 5 // Lower case letter 2524 ucp_Lm = 6 // Modifier letter 2525 ucp_Lo = 7 // Other letter 2526 ucp_Lt = 8 // Title case letter 2527 ucp_Lu = 9 // Upper case letter 2528 ucp_Mc = 10 // Spacing mark 2529 ucp_Me = 11 // Enclosing mark 2530 ucp_Mn = 12 // Non-spacing mark 2531 ucp_Nd = 13 // Decimal number 2532 ucp_Nl = 14 // Letter number 2533 ucp_No = 15 // Other number 2534 ucp_Pc = 16 // Connector punctuation 2535 ucp_Pd = 17 // Dash punctuation 2536 ucp_Pe = 18 // Close punctuation 2537 ucp_Pf = 19 // Final punctuation 2538 ucp_Pi = 20 // Initial punctuation 2539 ucp_Po = 21 // Other punctuation 2540 ucp_Ps = 22 // Open punctuation 2541 ucp_Sc = 23 // Currency symbol 2542 ucp_Sk = 24 // Modifier symbol 2543 ucp_Sm = 25 // Mathematical symbol 2544 ucp_So = 26 // Other symbol 2545 ucp_Zl = 27 // Line separator 2546 ucp_Zp = 28 // Paragraph separator 2547 ucp_Zs = 29 2548 ) 2549 2550 type Tptrdiff_t = int32 /* <builtin>:3:26 */ 2551 2552 type Tsize_t = uint32 /* <builtin>:9:23 */ 2553 2554 type Twchar_t = int32 /* <builtin>:15:24 */ 2555 2556 type T__int128_t = struct { 2557 Flo int32 2558 Fhi int32 2559 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 2560 type T__uint128_t = struct { 2561 Flo uint32 2562 Fhi uint32 2563 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 2564 2565 type T__builtin_va_list = uintptr /* <builtin>:46:14 */ 2566 type T__float128 = float64 /* <builtin>:47:21 */ 2567 2568 // ************************************************ 2569 // 2570 // Perl-Compatible Regular Expressions * 2571 // 2572 2573 // PCRE is a library of functions to support regular expressions whose syntax 2574 // and semantics are as close as possible to those of the Perl 5 language. 2575 // 2576 // Written by Philip Hazel 2577 // Original API code Copyright (c) 1997-2012 University of Cambridge 2578 // New API code Copyright (c) 2016-2022 University of Cambridge 2579 // 2580 // ----------------------------------------------------------------------------- 2581 // Redistribution and use in source and binary forms, with or without 2582 // modification, are permitted provided that the following conditions are met: 2583 // 2584 // * Redistributions of source code must retain the above copyright notice, 2585 // this list of conditions and the following disclaimer. 2586 // 2587 // * Redistributions in binary form must reproduce the above copyright 2588 // notice, this list of conditions and the following disclaimer in the 2589 // documentation and/or other materials provided with the distribution. 2590 // 2591 // * Neither the name of the University of Cambridge nor the names of its 2592 // contributors may be used to endorse or promote products derived from 2593 // this software without specific prior written permission. 2594 // 2595 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2596 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2597 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2598 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2599 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2600 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2601 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2602 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2603 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2604 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2605 // POSSIBILITY OF SUCH DAMAGE. 2606 // ----------------------------------------------------------------------------- 2607 2608 // This module contains functions that scan a compiled pattern and change 2609 // repeats into possessive repeats where possible. 2610 2611 // src/config.h. Generated from config.h.in by configure. 2612 // src/config.h.in. Generated from configure.ac by autoheader. 2613 2614 // PCRE2 is written in Standard C, but there are a few non-standard things it 2615 // can cope with, allowing it to run on SunOS4 and other "close to standard" 2616 // systems. 2617 // 2618 // In environments that support the GNU autotools, config.h.in is converted into 2619 // config.h by the "configure" script. In environments that use CMake, 2620 // config-cmake.in is converted into config.h. If you are going to build PCRE2 "by 2621 // hand" without using "configure" or CMake, you should copy the distributed 2622 // config.h.generic to config.h, and edit the macro definitions to be the way you 2623 // need them. You must then add -DHAVE_CONFIG_H to all of your compile commands, 2624 // so that config.h is included at the start of every source. 2625 // 2626 // Alternatively, you can avoid editing by using -D on the compiler command line 2627 // to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H, 2628 // but if you do, default values will be taken from config.h for non-boolean 2629 // macros that are not defined on the command line. 2630 // 2631 // Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be 2632 // defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All 2633 // such macros are listed as a commented #undef in config.h.generic. Macros such 2634 // as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are 2635 // surrounded by #ifndef/#endif lines so that the value can be overridden by -D. 2636 // 2637 // PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if 2638 // HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make 2639 // sure both macros are undefined; an emulation function will then be used. 2640 2641 // By default, the \R escape sequence matches any Unicode line ending 2642 // character or sequence of characters. If BSR_ANYCRLF is defined (to any 2643 // value), this is changed so that backslash-R matches only CR, LF, or CRLF. 2644 // The build-time default can be overridden by the user of PCRE2 at runtime. 2645 // 2646 // #undef BSR_ANYCRLF 2647 2648 // Define to any value to disable the use of the z and t modifiers in 2649 // formatting settings such as %zu or %td (this is rarely needed). 2650 // #undef DISABLE_PERCENT_ZT 2651 2652 // If you are compiling for a system that uses EBCDIC instead of ASCII 2653 // character codes, define this macro to any value. When EBCDIC is set, PCRE2 2654 // assumes that all input strings are in EBCDIC. If you do not define this 2655 // macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It 2656 // is not possible to build a version of PCRE2 that supports both EBCDIC and 2657 // UTF-8/16/32. 2658 // #undef EBCDIC 2659 2660 // In an EBCDIC environment, define this macro to any value to arrange for the 2661 // NL character to be 0x25 instead of the default 0x15. NL plays the role that 2662 // LF does in an ASCII/Unicode environment. 2663 // #undef EBCDIC_NL25 2664 2665 // Define this if your compiler supports __attribute__((uninitialized)) 2666 // #undef HAVE_ATTRIBUTE_UNINITIALIZED 2667 2668 // Define to 1 if you have the `bcopy' function. 2669 2670 // Define to 1 if you have the <bzlib.h> header file. 2671 2672 // Define to 1 if you have the <dirent.h> header file. 2673 2674 // Define to 1 if you have the <dlfcn.h> header file. 2675 2676 // Define to 1 if you have the <editline/readline.h> header file. 2677 // #undef HAVE_EDITLINE_READLINE_H 2678 2679 // Define to 1 if you have the <edit/readline/readline.h> header file. 2680 // #undef HAVE_EDIT_READLINE_READLINE_H 2681 2682 // Define to 1 if you have the <inttypes.h> header file. 2683 2684 // Define to 1 if you have the <limits.h> header file. 2685 2686 // Define to 1 if you have the `memfd_create' function. 2687 2688 // Define to 1 if you have the `memmove' function. 2689 2690 // Define to 1 if you have the <minix/config.h> header file. 2691 // #undef HAVE_MINIX_CONFIG_H 2692 2693 // Define to 1 if you have the `mkostemp' function. 2694 2695 // Define if you have POSIX threads libraries and header files. 2696 // #undef HAVE_PTHREAD 2697 2698 // Have PTHREAD_PRIO_INHERIT. 2699 // #undef HAVE_PTHREAD_PRIO_INHERIT 2700 2701 // Define to 1 if you have the <readline.h> header file. 2702 // #undef HAVE_READLINE_H 2703 2704 // Define to 1 if you have the <readline/history.h> header file. 2705 // #undef HAVE_READLINE_HISTORY_H 2706 2707 // Define to 1 if you have the <readline/readline.h> header file. 2708 // #undef HAVE_READLINE_READLINE_H 2709 2710 // Define to 1 if you have the `realpath' function. 2711 2712 // Define to 1 if you have the `secure_getenv' function. 2713 2714 // Define to 1 if you have the <stdint.h> header file. 2715 2716 // Define to 1 if you have the <stdio.h> header file. 2717 2718 // Define to 1 if you have the <stdlib.h> header file. 2719 2720 // Define to 1 if you have the `strerror' function. 2721 2722 // Define to 1 if you have the <strings.h> header file. 2723 2724 // Define to 1 if you have the <string.h> header file. 2725 2726 // Define to 1 if you have the <sys/stat.h> header file. 2727 2728 // Define to 1 if you have the <sys/types.h> header file. 2729 2730 // Define to 1 if you have the <sys/wait.h> header file. 2731 2732 // Define to 1 if you have the <unistd.h> header file. 2733 2734 // Define to 1 if the compiler supports simple visibility declarations. 2735 2736 // Define to 1 if you have the <wchar.h> header file. 2737 2738 // Define to 1 if you have the <windows.h> header file. 2739 // #undef HAVE_WINDOWS_H 2740 2741 // Define to 1 if you have the <zlib.h> header file. 2742 2743 // This limits the amount of memory that may be used while matching a pattern. 2744 // It applies to both pcre2_match() and pcre2_dfa_match(). It does not apply 2745 // to JIT matching. The value is in kibibytes (units of 1024 bytes). 2746 2747 // The value of LINK_SIZE determines the number of bytes used to store links 2748 // as offsets within the compiled regex. The default is 2, which allows for 2749 // compiled patterns up to 65535 code units long. This covers the vast 2750 // majority of cases. However, PCRE2 can also be compiled to use 3 or 4 bytes 2751 // instead. This allows for longer patterns in extreme cases. 2752 2753 // Define to the sub-directory where libtool stores uninstalled libraries. 2754 2755 // The value of MATCH_LIMIT determines the default number of times the 2756 // pcre2_match() function can record a backtrack position during a single 2757 // matching attempt. The value is also used to limit a loop counter in 2758 // pcre2_dfa_match(). There is a runtime interface for setting a different 2759 // limit. The limit exists in order to catch runaway regular expressions that 2760 // take for ever to determine that they do not match. The default is set very 2761 // large so that it does not accidentally catch legitimate cases. 2762 2763 // The above limit applies to all backtracks, whether or not they are nested. 2764 // In some environments it is desirable to limit the nesting of backtracking 2765 // (that is, the depth of tree that is searched) more strictly, in order to 2766 // restrict the maximum amount of heap memory that is used. The value of 2767 // MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it 2768 // must be less than the value of MATCH_LIMIT. The default is to use the same 2769 // value as MATCH_LIMIT. There is a runtime method for setting a different 2770 // limit. In the case of pcre2_dfa_match(), this limit controls the depth of 2771 // the internal nested function calls that are used for pattern recursions, 2772 // lookarounds, and atomic groups. 2773 2774 // This limit is parameterized just in case anybody ever wants to change it. 2775 // Care must be taken if it is increased, because it guards against integer 2776 // overflow caused by enormously large patterns. 2777 2778 // This limit is parameterized just in case anybody ever wants to change it. 2779 // Care must be taken if it is increased, because it guards against integer 2780 // overflow caused by enormously large patterns. 2781 2782 // Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. 2783 // #undef NEVER_BACKSLASH_C 2784 2785 // The value of NEWLINE_DEFAULT determines the default newline character 2786 // sequence. PCRE2 client programs can override this by selecting other values 2787 // at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 2788 // (ANYCRLF), and 6 (NUL). 2789 2790 // Name of package 2791 2792 // Define to the address where bug reports for this package should be sent. 2793 2794 // Define to the full name of this package. 2795 2796 // Define to the full name and version of this package. 2797 2798 // Define to the one symbol short name of this package. 2799 2800 // Define to the home page for this package. 2801 2802 // Define to the version of this package. 2803 2804 // The value of PARENS_NEST_LIMIT specifies the maximum depth of nested 2805 // parentheses (of any kind) in a pattern. This limits the amount of system 2806 // stack that is used while compiling a pattern. 2807 2808 // The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by 2809 // pcre2grep to hold parts of the file it is searching. The buffer will be 2810 // expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing 2811 // very long lines. The actual amount of memory used by pcre2grep is three 2812 // times this number, because it allows for the buffering of "before" and 2813 // "after" lines. 2814 2815 // The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer 2816 // used by pcre2grep to hold parts of the file it is searching. The actual 2817 // amount of memory used by pcre2grep is three times this number, because it 2818 // allows for the buffering of "before" and "after" lines. 2819 2820 // to make a symbol visible 2821 2822 // to make a symbol visible 2823 2824 // Define to any value to include debugging code. 2825 // #undef PCRE2_DEBUG 2826 2827 // to make a symbol visible 2828 2829 // If you are compiling for a system other than a Unix-like system or 2830 // Win32, and it needs some magic to be inserted before the definition 2831 // of a function that is exported by the library, define this macro to 2832 // contain the relevant magic. If you do not define this macro, a suitable 2833 // __declspec value is used for Windows systems; in other environments 2834 // "extern" is used for a C compiler and "extern C" for a C++ compiler. 2835 // This macro apears at the start of every exported function that is part 2836 // of the external API. It does not appear on functions that are "external" 2837 // in the C sense, but which are internal to the library. 2838 2839 // Define to any value if linking statically (TODO: make nice with Libtool) 2840 2841 // Define to necessary symbol if this constant uses a non-standard name on 2842 // your system. 2843 // #undef PTHREAD_CREATE_JOINABLE 2844 2845 // Define to any non-zero number to enable support for SELinux compatible 2846 // executable memory allocator in JIT. Note that this will have no effect 2847 // unless SUPPORT_JIT is also defined. 2848 // #undef SLJIT_PROT_EXECUTABLE_ALLOCATOR 2849 2850 // Define to 1 if all of the C90 standard headers exist (not just the ones 2851 // required in a freestanding environment). This macro is provided for 2852 // backward compatibility; new code need not use it. 2853 2854 // Define to any value to enable support for Just-In-Time compiling. 2855 // #undef SUPPORT_JIT 2856 2857 // Define to any value to allow pcre2grep to be linked with libbz2, so that it 2858 // is able to handle .bz2 files. 2859 // #undef SUPPORT_LIBBZ2 2860 2861 // Define to any value to allow pcre2test to be linked with libedit. 2862 // #undef SUPPORT_LIBEDIT 2863 2864 // Define to any value to allow pcre2test to be linked with libreadline. 2865 // #undef SUPPORT_LIBREADLINE 2866 2867 // Define to any value to allow pcre2grep to be linked with libz, so that it 2868 // is able to handle .gz files. 2869 // #undef SUPPORT_LIBZ 2870 2871 // Define to any value to enable callout script support in pcre2grep. 2872 2873 // Define to any value to enable fork support in pcre2grep callout scripts. 2874 // This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also defined. 2875 // 2876 2877 // Define to any value to enable JIT support in pcre2grep. Note that this will 2878 // have no effect unless SUPPORT_JIT is also defined. 2879 // #undef SUPPORT_PCRE2GREP_JIT 2880 2881 // Define to any value to enable the 16 bit PCRE2 library. 2882 // #undef SUPPORT_PCRE2_16 2883 2884 // Define to any value to enable the 32 bit PCRE2 library. 2885 // #undef SUPPORT_PCRE2_32 2886 2887 // Define to any value to enable the 8 bit PCRE2 library. 2888 2889 // Define to any value to enable support for Unicode and UTF encoding. This 2890 // will work even in an EBCDIC environment, but it is incompatible with the 2891 // EBCDIC macro. That is, PCRE2 can support *either* EBCDIC code *or* 2892 // ASCII/Unicode, but not both at once. 2893 2894 // Define to any value for valgrind support to find invalid memory reads. 2895 // #undef SUPPORT_VALGRIND 2896 2897 // Enable extensions on AIX 3, Interix. 2898 // Enable general extensions on macOS. 2899 // Enable general extensions on Solaris. 2900 // Enable GNU extensions on systems that have them. 2901 // Enable X/Open compliant socket functions that do not require linking 2902 // with -lxnet on HP-UX 11.11. 2903 // Identify the host operating system as Minix. 2904 // This macro does not affect the system headers' behavior. 2905 // A future release of Autoconf may stop defining this macro. 2906 // # undef _MINIX 2907 // Enable general extensions on NetBSD. 2908 // Enable NetBSD compatibility extensions on Minix. 2909 // Enable OpenBSD compatibility extensions on NetBSD. 2910 // Oddly enough, this does nothing on OpenBSD. 2911 // Define to 1 if needed for POSIX-compatible behavior. 2912 // # undef _POSIX_SOURCE 2913 // Define to 2 if needed for POSIX-compatible behavior. 2914 // # undef _POSIX_1_SOURCE 2915 // Enable POSIX-compatible threading on Solaris. 2916 // Enable extensions specified by ISO/IEC TS 18661-5:2014. 2917 // Enable extensions specified by ISO/IEC TS 18661-1:2014. 2918 // Enable extensions specified by ISO/IEC TS 18661-2:2015. 2919 // Enable extensions specified by ISO/IEC TS 18661-4:2015. 2920 // Enable extensions specified by ISO/IEC TS 18661-3:2015. 2921 // Enable extensions specified by ISO/IEC TR 24731-2:2010. 2922 // Enable extensions specified by ISO/IEC 24747:2009. 2923 // Enable extensions on HP NonStop. 2924 // Enable X/Open extensions. Define to 500 only if necessary 2925 // to make mbstate_t available. 2926 // # undef _XOPEN_SOURCE 2927 2928 // Version number of package 2929 2930 // Define to empty if `const' does not conform to ANSI C. 2931 // #undef const 2932 2933 // Define to the type of a signed integer type of width exactly 64 bits if 2934 // such a type exists and the standard includes do not define it. 2935 // #undef int64_t 2936 2937 // Define to `unsigned int' if <sys/types.h> does not define. 2938 // #undef size_t 2939 2940 // ************************************************ 2941 // 2942 // Perl-Compatible Regular Expressions * 2943 // 2944 2945 // PCRE2 is a library of functions to support regular expressions whose syntax 2946 // and semantics are as close as possible to those of the Perl 5 language. 2947 // 2948 // Written by Philip Hazel 2949 // Original API code Copyright (c) 1997-2012 University of Cambridge 2950 // New API code Copyright (c) 2016-2022 University of Cambridge 2951 // 2952 // ----------------------------------------------------------------------------- 2953 // Redistribution and use in source and binary forms, with or without 2954 // modification, are permitted provided that the following conditions are met: 2955 // 2956 // * Redistributions of source code must retain the above copyright notice, 2957 // this list of conditions and the following disclaimer. 2958 // 2959 // * Redistributions in binary form must reproduce the above copyright 2960 // notice, this list of conditions and the following disclaimer in the 2961 // documentation and/or other materials provided with the distribution. 2962 // 2963 // * Neither the name of the University of Cambridge nor the names of its 2964 // contributors may be used to endorse or promote products derived from 2965 // this software without specific prior written permission. 2966 // 2967 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2968 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2969 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2970 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2971 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2972 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2973 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2974 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2975 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2976 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2977 // POSSIBILITY OF SUCH DAMAGE. 2978 // ----------------------------------------------------------------------------- 2979 2980 // We do not support both EBCDIC and Unicode at the same time. The "configure" 2981 // script prevents both being selected, but not everybody uses "configure". EBCDIC 2982 // is only supported for the 8-bit library, but the check for this has to be later 2983 // in this file, because the first part is not width-dependent, and is included by 2984 // pcre2test.c with CODE_UNIT_WIDTH == 0. 2985 2986 // Standard C headers 2987 2988 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 2989 // This file is part of the GNU C Library. 2990 // 2991 // The GNU C Library is free software; you can redistribute it and/or 2992 // modify it under the terms of the GNU Lesser General Public 2993 // License as published by the Free Software Foundation; either 2994 // version 2.1 of the License, or (at your option) any later version. 2995 // 2996 // The GNU C Library is distributed in the hope that it will be useful, 2997 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2998 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2999 // Lesser General Public License for more details. 3000 // 3001 // You should have received a copy of the GNU Lesser General Public 3002 // License along with the GNU C Library; if not, see 3003 // <https://www.gnu.org/licenses/>. 3004 3005 // ISO C99 Standard 7.4: Character handling <ctype.h> 3006 3007 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3008 // This file is part of the GNU C Library. 3009 // 3010 // The GNU C Library is free software; you can redistribute it and/or 3011 // modify it under the terms of the GNU Lesser General Public 3012 // License as published by the Free Software Foundation; either 3013 // version 2.1 of the License, or (at your option) any later version. 3014 // 3015 // The GNU C Library is distributed in the hope that it will be useful, 3016 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3018 // Lesser General Public License for more details. 3019 // 3020 // You should have received a copy of the GNU Lesser General Public 3021 // License along with the GNU C Library; if not, see 3022 // <https://www.gnu.org/licenses/>. 3023 3024 // These are defined by the user (or the compiler) 3025 // to specify the desired environment: 3026 // 3027 // __STRICT_ANSI__ ISO Standard C. 3028 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 3029 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 3030 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 3031 // __STDC_WANT_LIB_EXT2__ 3032 // Extensions to ISO C99 from TR 27431-2:2010. 3033 // __STDC_WANT_IEC_60559_BFP_EXT__ 3034 // Extensions to ISO C11 from TS 18661-1:2014. 3035 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 3036 // Extensions to ISO C11 from TS 18661-4:2015. 3037 // __STDC_WANT_IEC_60559_TYPES_EXT__ 3038 // Extensions to ISO C11 from TS 18661-3:2015. 3039 // __STDC_WANT_IEC_60559_EXT__ 3040 // ISO C2X interfaces defined only in Annex F. 3041 // 3042 // _POSIX_SOURCE IEEE Std 1003.1. 3043 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 3044 // if >=199309L, add IEEE Std 1003.1b-1993; 3045 // if >=199506L, add IEEE Std 1003.1c-1995; 3046 // if >=200112L, all of IEEE 1003.1-2004 3047 // if >=200809L, all of IEEE 1003.1-2008 3048 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 3049 // Single Unix conformance is wanted, to 600 for the 3050 // sixth revision, to 700 for the seventh revision. 3051 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 3052 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 3053 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 3054 // _FILE_OFFSET_BITS=N Select default filesystem interface. 3055 // _ATFILE_SOURCE Additional *at interfaces. 3056 // _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) 3057 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 3058 // _GNU_SOURCE All of the above, plus GNU extensions. 3059 // _DEFAULT_SOURCE The default set of features (taking precedence over 3060 // __STRICT_ANSI__). 3061 // 3062 // _FORTIFY_SOURCE Add security hardening to many library functions. 3063 // Set to 1 or 2; 2 performs stricter checks than 1. 3064 // 3065 // _REENTRANT, _THREAD_SAFE 3066 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 3067 // 3068 // The `-ansi' switch to the GNU C compiler, and standards conformance 3069 // options such as `-std=c99', define __STRICT_ANSI__. If none of 3070 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 3071 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 3072 // 200809L, as well as enabling miscellaneous functions from BSD and 3073 // SVID. If more than one of these are defined, they accumulate. For 3074 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 3075 // give you ISO C, 1003.1, and 1003.2, but nothing else. 3076 // 3077 // These are defined by this file and are used by the 3078 // header files to decide what to declare or define: 3079 // 3080 // __GLIBC_USE (F) Define things from feature set F. This is defined 3081 // to 1 or 0; the subsequent macros are either defined 3082 // or undefined, and those tests should be moved to 3083 // __GLIBC_USE. 3084 // __USE_ISOC11 Define ISO C11 things. 3085 // __USE_ISOC99 Define ISO C99 things. 3086 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 3087 // __USE_ISOCXX11 Define ISO C++11 things. 3088 // __USE_POSIX Define IEEE Std 1003.1 things. 3089 // __USE_POSIX2 Define IEEE Std 1003.2 things. 3090 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 3091 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 3092 // __USE_XOPEN Define XPG things. 3093 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 3094 // __USE_UNIX98 Define Single Unix V2 things. 3095 // __USE_XOPEN2K Define XPG6 things. 3096 // __USE_XOPEN2KXSI Define XPG6 XSI things. 3097 // __USE_XOPEN2K8 Define XPG7 things. 3098 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 3099 // __USE_LARGEFILE Define correct standard I/O things. 3100 // __USE_LARGEFILE64 Define LFS things with separate names. 3101 // __USE_FILE_OFFSET64 Define 64bit interface as default. 3102 // __USE_MISC Define things from 4.3BSD or System V Unix. 3103 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 3104 // __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) 3105 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 3106 // __USE_GNU Define GNU extensions. 3107 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 3108 // 3109 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 3110 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 3111 // only for compatibility. All new code should use the other symbols 3112 // to test for features. 3113 // 3114 // All macros listed above as possibly being defined by this file are 3115 // explicitly undefined if they are not explicitly defined. 3116 // Feature-test macros that are not defined by the user or compiler 3117 // but are implied by the other feature-test macros defined (or by the 3118 // lack of any definitions) are defined by the file. 3119 // 3120 // ISO C feature test macros depend on the definition of the macro 3121 // when an affected header is included, not when the first system 3122 // header is included, and so they are handled in 3123 // <bits/libc-header-start.h>, which does not have a multiple include 3124 // guard. Feature test macros that can be handled from the first 3125 // system header included are handled here. 3126 3127 // Undefine everything, so we get a clean slate. 3128 3129 // Suppress kernel-name space pollution unless user expressedly asks 3130 // for it. 3131 3132 // Convenience macro to test the version of gcc. 3133 // Use like this: 3134 // #if __GNUC_PREREQ (2,8) 3135 // ... code requiring gcc 2.8 or later ... 3136 // #endif 3137 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 3138 // added in 2.0. 3139 3140 // Similarly for clang. Features added to GCC after version 4.2 may 3141 // or may not also be available in clang, and clang's definitions of 3142 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 3143 // features can be queried via __has_extension/__has_feature. 3144 3145 // Whether to use feature set F. 3146 3147 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 3148 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 3149 // issue a warning; the expectation is that the source is being 3150 // transitioned to use the new macro. 3151 3152 // If _GNU_SOURCE was defined by the user, turn on all the other features. 3153 3154 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 3155 // define _DEFAULT_SOURCE. 3156 3157 // This is to enable the ISO C2X extension. 3158 3159 // This is to enable the ISO C11 extension. 3160 3161 // This is to enable the ISO C99 extension. 3162 3163 // This is to enable the ISO C90 Amendment 1:1995 extension. 3164 3165 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 3166 // is defined, use POSIX.1-2008 (or another version depending on 3167 // _XOPEN_SOURCE). 3168 3169 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 3170 // defined in all multithreaded code. GNU libc has not required this 3171 // for many years. We now treat them as compatibility synonyms for 3172 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 3173 // comprehensive support for multithreaded code. Using them never 3174 // lowers the selected level of POSIX conformance, only raises it. 3175 3176 // Features part to handle 64-bit time_t support. 3177 // Copyright (C) 2021-2022 Free Software Foundation, Inc. 3178 // This file is part of the GNU C Library. 3179 // 3180 // The GNU C Library is free software; you can redistribute it and/or 3181 // modify it under the terms of the GNU Lesser General Public 3182 // License as published by the Free Software Foundation; either 3183 // version 2.1 of the License, or (at your option) any later version. 3184 // 3185 // The GNU C Library is distributed in the hope that it will be useful, 3186 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3187 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3188 // Lesser General Public License for more details. 3189 // 3190 // You should have received a copy of the GNU Lesser General Public 3191 // License along with the GNU C Library; if not, see 3192 // <https://www.gnu.org/licenses/>. 3193 3194 // We need to know the word size in order to check the time size. 3195 // Determine the wordsize from the preprocessor defines. 3196 3197 // Both x86-64 and x32 use the 64-bit system call interface. 3198 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 3199 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3200 // This file is part of the GNU C Library. 3201 // 3202 // The GNU C Library is free software; you can redistribute it and/or 3203 // modify it under the terms of the GNU Lesser General Public 3204 // License as published by the Free Software Foundation; either 3205 // version 2.1 of the License, or (at your option) any later version. 3206 // 3207 // The GNU C Library is distributed in the hope that it will be useful, 3208 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3209 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3210 // Lesser General Public License for more details. 3211 // 3212 // You should have received a copy of the GNU Lesser General Public 3213 // License along with the GNU C Library; if not, see 3214 // <https://www.gnu.org/licenses/>. 3215 3216 // Determine the wordsize from the preprocessor defines. 3217 3218 // Both x86-64 and x32 use the 64-bit system call interface. 3219 3220 // For others, time size is word size. 3221 3222 // The function 'gets' existed in C89, but is impossible to use 3223 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 3224 // compatibility with various implementations of <cstdio>, this test 3225 // must consider only the value of __cplusplus when compiling C++. 3226 3227 // GNU formerly extended the scanf functions with modified format 3228 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 3229 // input using malloc. This extension conflicts with ISO C99, which 3230 // defines %a as a standalone format specifier that reads a floating- 3231 // point number; moreover, POSIX.1-2008 provides the same feature 3232 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 3233 // 3234 // We now follow C99 unless GNU extensions are active and the compiler 3235 // is specifically in C89 or C++98 mode (strict or not). For 3236 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 3237 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 3238 // old extension. 3239 3240 // Get definitions of __STDC_* predefined macros, if the compiler has 3241 // not preincluded this header automatically. 3242 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3243 // This file is part of the GNU C Library. 3244 // 3245 // The GNU C Library is free software; you can redistribute it and/or 3246 // modify it under the terms of the GNU Lesser General Public 3247 // License as published by the Free Software Foundation; either 3248 // version 2.1 of the License, or (at your option) any later version. 3249 // 3250 // The GNU C Library is distributed in the hope that it will be useful, 3251 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3252 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3253 // Lesser General Public License for more details. 3254 // 3255 // You should have received a copy of the GNU Lesser General Public 3256 // License along with the GNU C Library; if not, see 3257 // <https://www.gnu.org/licenses/>. 3258 3259 // This macro indicates that the installed library is the GNU C Library. 3260 // For historic reasons the value now is 6 and this will stay from now 3261 // on. The use of this variable is deprecated. Use __GLIBC__ and 3262 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 3263 // GNU C library version and use the values in <gnu/lib-names.h> to get 3264 // the sonames of the shared libraries. 3265 3266 // Major and minor version number of the GNU C library package. Use 3267 // these macros to test for features in specific releases. 3268 3269 // This is here only because every header file already includes this one. 3270 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 3271 // Copyright The GNU Toolchain Authors. 3272 // This file is part of the GNU C Library. 3273 // 3274 // The GNU C Library is free software; you can redistribute it and/or 3275 // modify it under the terms of the GNU Lesser General Public 3276 // License as published by the Free Software Foundation; either 3277 // version 2.1 of the License, or (at your option) any later version. 3278 // 3279 // The GNU C Library is distributed in the hope that it will be useful, 3280 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3281 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3282 // Lesser General Public License for more details. 3283 // 3284 // You should have received a copy of the GNU Lesser General Public 3285 // License along with the GNU C Library; if not, see 3286 // <https://www.gnu.org/licenses/>. 3287 3288 // We are almost always included from features.h. 3289 3290 // The GNU libc does not support any K&R compilers or the traditional mode 3291 // of ISO C compilers anymore. Check for some of the combinations not 3292 // supported anymore. 3293 3294 // Some user header file might have defined this before. 3295 3296 // Compilers that lack __has_attribute may object to 3297 // #if defined __has_attribute && __has_attribute (...) 3298 // even though they do not need to evaluate the right-hand side of the &&. 3299 // Similarly for __has_builtin, etc. 3300 3301 // All functions, except those with callbacks or those that 3302 // synchronize memory, are leaf functions. 3303 3304 // GCC can always grok prototypes. For C++ programs we add throw() 3305 // to help it optimize the function calls. But this only works with 3306 // gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions 3307 // as non-throwing using a function attribute since programs can use 3308 // the -fexceptions options for C code as well. 3309 3310 // These two macros are not used in glibc anymore. They are kept here 3311 // only because some other projects expect the macros to be defined. 3312 3313 // For these things, GCC behaves the ANSI way normally, 3314 // and the non-ANSI way under -traditional. 3315 3316 // This is not a typedef so `const __ptr_t' does the right thing. 3317 3318 // C++ needs to know that types and declarations are C, not C++. 3319 3320 // Fortify support. 3321 3322 // Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. 3323 3324 // Compile time conditions to choose between the regular, _chk and _chk_warn 3325 // variants. These conditions should get evaluated to constant and optimized 3326 // away. 3327 3328 // Length is known to be safe at compile time if the __L * __S <= __OBJSZ 3329 // condition can be folded to a constant and if it is true. The -1 check is 3330 // redundant because since it implies that __glibc_safe_len_cond is true. 3331 3332 // Conversely, we know at compile time that the length is unsafe if the 3333 // __L * __S <= __OBJSZ condition can be folded to a constant and if it is 3334 // false. 3335 3336 // Fortify function f. __f_alias, __f_chk and __f_chk_warn must be 3337 // declared. 3338 3339 // Fortify function f, where object size argument passed to f is the number of 3340 // elements and not total size. 3341 3342 // Support for flexible arrays. 3343 // Headers that should use flexible arrays only if they're "real" 3344 // (e.g. only if they won't affect sizeof()) should test 3345 // #if __glibc_c99_flexarr_available. 3346 3347 // __asm__ ("xyz") is used throughout the headers to rename functions 3348 // at the assembly language level. This is wrapped by the __REDIRECT 3349 // macro, in order to support compilers that can do this some other 3350 // way. When compilers don't support asm-names at all, we have to do 3351 // preprocessor tricks instead (which don't have exactly the right 3352 // semantics, but it's the best we can do). 3353 // 3354 // Example: 3355 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 3356 3357 // 3358 // #elif __SOME_OTHER_COMPILER__ 3359 // 3360 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 3361 3362 // GCC and clang have various useful declarations that can be made with 3363 // the '__attribute__' syntax. All of the ways we use this do fine if 3364 // they are omitted for compilers that don't understand it. 3365 3366 // At some point during the gcc 2.96 development the `malloc' attribute 3367 // for functions was introduced. We don't want to use it unconditionally 3368 // (although this would be possible) since it generates warnings. 3369 3370 // Tell the compiler which arguments to an allocation function 3371 // indicate the size of the allocation. 3372 3373 // Tell the compiler which argument to an allocation function 3374 // indicates the alignment of the allocation. 3375 3376 // At some point during the gcc 2.96 development the `pure' attribute 3377 // for functions was introduced. We don't want to use it unconditionally 3378 // (although this would be possible) since it generates warnings. 3379 3380 // This declaration tells the compiler that the value is constant. 3381 3382 // At some point during the gcc 3.1 development the `used' attribute 3383 // for functions was introduced. We don't want to use it unconditionally 3384 // (although this would be possible) since it generates warnings. 3385 3386 // Since version 3.2, gcc allows marking deprecated functions. 3387 3388 // Since version 4.5, gcc also allows one to specify the message printed 3389 // when a deprecated function is used. clang claims to be gcc 4.2, but 3390 // may also support this feature. 3391 3392 // At some point during the gcc 2.8 development the `format_arg' attribute 3393 // for functions was introduced. We don't want to use it unconditionally 3394 // (although this would be possible) since it generates warnings. 3395 // If several `format_arg' attributes are given for the same function, in 3396 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 3397 // all designated arguments are considered. 3398 3399 // At some point during the gcc 2.97 development the `strfmon' format 3400 // attribute for functions was introduced. We don't want to use it 3401 // unconditionally (although this would be possible) since it 3402 // generates warnings. 3403 3404 // The nonnull function attribute marks pointer parameters that 3405 // must not be NULL. This has the name __nonnull in glibc, 3406 // and __attribute_nonnull__ in files shared with Gnulib to avoid 3407 // collision with a different __nonnull in DragonFlyBSD 5.9. 3408 3409 // The returns_nonnull function attribute marks the return type of the function 3410 // as always being non-null. 3411 3412 // If fortification mode, we warn about unused results of certain 3413 // function calls which can lead to problems. 3414 3415 // Forces a function to be always inlined. 3416 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 3417 // it conflicts with this definition. Therefore undefine it first to 3418 // allow either header to be included first. 3419 3420 // Associate error messages with the source location of the call site rather 3421 // than with the source location inside the function. 3422 3423 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 3424 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 3425 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 3426 // older than 4.3 may define these macros and still not guarantee GNU inlining 3427 // semantics. 3428 // 3429 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 3430 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 3431 // __GNUC_GNU_INLINE__ macro definitions. 3432 3433 // GCC 4.3 and above allow passing all anonymous arguments of an 3434 // __extern_always_inline function to some other vararg function. 3435 3436 // It is possible to compile containing GCC extensions even if GCC is 3437 // run in pedantic mode if the uses are carefully marked using the 3438 // `__extension__' keyword. But this is not generally available before 3439 // version 2.8. 3440 3441 // __restrict is known in EGCS 1.2 and above, and in clang. 3442 // It works also in C++ mode (outside of arrays), but only when spelled 3443 // as '__restrict', not 'restrict'. 3444 3445 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 3446 // array_name[restrict] 3447 // GCC 3.1 and clang support this. 3448 // This syntax is not usable in C++ mode. 3449 3450 // Describes a char array whose address can safely be passed as the first 3451 // argument to strncpy and strncat, as the char array is not necessarily 3452 // a NUL-terminated string. 3453 3454 // Undefine (also defined in libc-symbols.h). 3455 // Copies attributes from the declaration or type referenced by 3456 // the argument. 3457 3458 // Gnulib avoids including these, as they don't work on non-glibc or 3459 // older glibc platforms. 3460 // Determine the wordsize from the preprocessor defines. 3461 3462 // Both x86-64 and x32 use the 64-bit system call interface. 3463 // Properties of long double type. ldbl-96 version. 3464 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 3465 // This file is part of the GNU C Library. 3466 // 3467 // The GNU C Library is free software; you can redistribute it and/or 3468 // modify it under the terms of the GNU Lesser General Public 3469 // License published by the Free Software Foundation; either 3470 // version 2.1 of the License, or (at your option) any later version. 3471 // 3472 // The GNU C Library is distributed in the hope that it will be useful, 3473 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3474 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3475 // Lesser General Public License for more details. 3476 // 3477 // You should have received a copy of the GNU Lesser General Public 3478 // License along with the GNU C Library; if not, see 3479 // <https://www.gnu.org/licenses/>. 3480 3481 // long double is distinct from double, so there is nothing to 3482 // define here. 3483 3484 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 3485 // intended for use in preprocessor macros. 3486 // 3487 // Note: MESSAGE must be a _single_ string; concatenation of string 3488 // literals is not supported. 3489 3490 // Generic selection (ISO C11) is a C-only feature, available in GCC 3491 // since version 4.9. Previous versions do not provide generic 3492 // selection, even though they might set __STDC_VERSION__ to 201112L, 3493 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 3494 // when testing __STDC_VERSION__ for generic selection support. 3495 // On the other hand, Clang also defines __GNUC__, so a clang-specific 3496 // check is required to enable the use of generic selection. 3497 3498 // Designates a 1-based positional argument ref-index of pointer type 3499 // that can be used to access size-index elements of the pointed-to 3500 // array according to access mode, or at least one element when 3501 // size-index is not provided: 3502 // access (access-mode, <ref-index> [, <size-index>]) 3503 // For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may 3504 // use the access attribute to get object sizes from function definition 3505 // arguments, so we can't use them on functions we fortify. Drop the object 3506 // size hints for such functions. 3507 3508 // Designates dealloc as a function to call to deallocate objects 3509 // allocated by the declared function. 3510 3511 // Specify that a function such as setjmp or vfork may return 3512 // twice. 3513 3514 // If we don't have __REDIRECT, prototypes will be missing if 3515 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 3516 3517 // Decide whether we can define 'extern inline' functions in headers. 3518 3519 // This is here only because every header file already includes this one. 3520 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 3521 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 3522 // that will always return failure (and set errno to ENOSYS). 3523 // This file is automatically generated. 3524 // This file selects the right generated file of `__stub_FUNCTION' macros 3525 // based on the architecture being compiled for. 3526 3527 // This file is automatically generated. 3528 // It defines a symbol `__stub_FUNCTION' for each function 3529 // in the C library which is a stub, meaning it will fail 3530 // every time called, usually setting errno to ENOSYS. 3531 3532 // bits/types.h -- definitions of __*_t types underlying *_t types. 3533 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 3534 // This file is part of the GNU C Library. 3535 // 3536 // The GNU C Library is free software; you can redistribute it and/or 3537 // modify it under the terms of the GNU Lesser General Public 3538 // License as published by the Free Software Foundation; either 3539 // version 2.1 of the License, or (at your option) any later version. 3540 // 3541 // The GNU C Library is distributed in the hope that it will be useful, 3542 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3543 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3544 // Lesser General Public License for more details. 3545 // 3546 // You should have received a copy of the GNU Lesser General Public 3547 // License along with the GNU C Library; if not, see 3548 // <https://www.gnu.org/licenses/>. 3549 3550 // Never include this file directly; use <sys/types.h> instead. 3551 3552 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3553 // This file is part of the GNU C Library. 3554 // 3555 // The GNU C Library is free software; you can redistribute it and/or 3556 // modify it under the terms of the GNU Lesser General Public 3557 // License as published by the Free Software Foundation; either 3558 // version 2.1 of the License, or (at your option) any later version. 3559 // 3560 // The GNU C Library is distributed in the hope that it will be useful, 3561 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3562 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3563 // Lesser General Public License for more details. 3564 // 3565 // You should have received a copy of the GNU Lesser General Public 3566 // License along with the GNU C Library; if not, see 3567 // <https://www.gnu.org/licenses/>. 3568 3569 // Determine the wordsize from the preprocessor defines. 3570 3571 // Both x86-64 and x32 use the 64-bit system call interface. 3572 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 3573 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3574 // This file is part of the GNU C Library. 3575 // 3576 // The GNU C Library is free software; you can redistribute it and/or 3577 // modify it under the terms of the GNU Lesser General Public 3578 // License as published by the Free Software Foundation; either 3579 // version 2.1 of the License, or (at your option) any later version. 3580 // 3581 // The GNU C Library is distributed in the hope that it will be useful, 3582 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3583 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3584 // Lesser General Public License for more details. 3585 // 3586 // You should have received a copy of the GNU Lesser General Public 3587 // License along with the GNU C Library; if not, see 3588 // <https://www.gnu.org/licenses/>. 3589 3590 // Determine the wordsize from the preprocessor defines. 3591 3592 // Both x86-64 and x32 use the 64-bit system call interface. 3593 3594 // For others, time size is word size. 3595 3596 // Convenience types. 3597 type T__u_char = uint8 /* types.h:31:23 */ 3598 type T__u_short = uint16 /* types.h:32:28 */ 3599 type T__u_int = uint32 /* types.h:33:22 */ 3600 type T__u_long = uint32 /* types.h:34:27 */ 3601 3602 // Fixed-size types, underlying types depend on word size and compiler. 3603 type T__int8_t = int8 /* types.h:37:21 */ 3604 type T__uint8_t = uint8 /* types.h:38:23 */ 3605 type T__int16_t = int16 /* types.h:39:26 */ 3606 type T__uint16_t = uint16 /* types.h:40:28 */ 3607 type T__int32_t = int32 /* types.h:41:20 */ 3608 type T__uint32_t = uint32 /* types.h:42:22 */ 3609 type T__int64_t = int32 /* types.h:44:25 */ 3610 type T__uint64_t = uint32 /* types.h:45:27 */ 3611 3612 // Smallest types with at least a given width. 3613 type T__int_least8_t = T__int8_t /* types.h:52:18 */ 3614 type T__uint_least8_t = T__uint8_t /* types.h:53:19 */ 3615 type T__int_least16_t = T__int16_t /* types.h:54:19 */ 3616 type T__uint_least16_t = T__uint16_t /* types.h:55:20 */ 3617 type T__int_least32_t = T__int32_t /* types.h:56:19 */ 3618 type T__uint_least32_t = T__uint32_t /* types.h:57:20 */ 3619 type T__int_least64_t = T__int64_t /* types.h:58:19 */ 3620 type T__uint_least64_t = T__uint64_t /* types.h:59:20 */ 3621 3622 // quad_t is also 64 bits. 3623 type T__quad_t = int32 /* types.h:63:18 */ 3624 type T__u_quad_t = uint32 /* types.h:64:27 */ 3625 3626 // Largest integral types. 3627 type T__intmax_t = int32 /* types.h:72:18 */ 3628 type T__uintmax_t = uint32 /* types.h:73:27 */ 3629 3630 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 3631 // macros for each of the OS types we define below. The definitions 3632 // of those macros must use the following macros for underlying types. 3633 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 3634 // variants of each of the following integer types on this machine. 3635 // 3636 // 16 -- "natural" 16-bit type (always short) 3637 // 32 -- "natural" 32-bit type (always int) 3638 // 64 -- "natural" 64-bit type (long or long long) 3639 // LONG32 -- 32-bit type, traditionally long 3640 // QUAD -- 64-bit type, traditionally long long 3641 // WORD -- natural type of __WORDSIZE bits (int or long) 3642 // LONGWORD -- type of __WORDSIZE bits, traditionally long 3643 // 3644 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 3645 // conventional uses of `long' or `long long' type modifiers match the 3646 // types we define, even when a less-adorned type would be the same size. 3647 // This matters for (somewhat) portably writing printf/scanf formats for 3648 // these types, where using the appropriate l or ll format modifiers can 3649 // make the typedefs and the formats match up across all GNU platforms. If 3650 // we used `long' when it's 64 bits where `long long' is expected, then the 3651 // compiler would warn about the formats not matching the argument types, 3652 // and the programmer changing them to shut up the compiler would break the 3653 // program's portability. 3654 // 3655 // Here we assume what is presently the case in all the GCC configurations 3656 // we support: long long is always 64 bits, long is always word/address size, 3657 // and int is always 32 bits. 3658 3659 // No need to mark the typedef with __extension__. 3660 // bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. 3661 // Copyright (C) 2012-2022 Free Software Foundation, Inc. 3662 // This file is part of the GNU C Library. 3663 // 3664 // The GNU C Library is free software; you can redistribute it and/or 3665 // modify it under the terms of the GNU Lesser General Public 3666 // License as published by the Free Software Foundation; either 3667 // version 2.1 of the License, or (at your option) any later version. 3668 // 3669 // The GNU C Library is distributed in the hope that it will be useful, 3670 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3671 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3672 // Lesser General Public License for more details. 3673 // 3674 // You should have received a copy of the GNU Lesser General Public 3675 // License along with the GNU C Library; if not, see 3676 // <https://www.gnu.org/licenses/>. 3677 3678 // See <bits/types.h> for the meaning of these macros. This file exists so 3679 // that <bits/types.h> need not vary across different GNU platforms. 3680 3681 // X32 kernel interface is 64-bit. 3682 3683 // Tell the libc code that off_t and off64_t are actually the same type 3684 // for all ABI purposes, even if possibly expressed as different base types 3685 // for C type-checking purposes. 3686 3687 // Same for ino_t and ino64_t. 3688 3689 // And for __rlim_t and __rlim64_t. 3690 3691 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 3692 3693 // And for getitimer, setitimer and rusage 3694 3695 // Number of descriptors that can fit in an `fd_set'. 3696 3697 // bits/time64.h -- underlying types for __time64_t. Generic version. 3698 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3699 // This file is part of the GNU C Library. 3700 // 3701 // The GNU C Library is free software; you can redistribute it and/or 3702 // modify it under the terms of the GNU Lesser General Public 3703 // License as published by the Free Software Foundation; either 3704 // version 2.1 of the License, or (at your option) any later version. 3705 // 3706 // The GNU C Library is distributed in the hope that it will be useful, 3707 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3708 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3709 // Lesser General Public License for more details. 3710 // 3711 // You should have received a copy of the GNU Lesser General Public 3712 // License along with the GNU C Library; if not, see 3713 // <https://www.gnu.org/licenses/>. 3714 3715 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 3716 3717 // If we already have 64-bit time type then use it. 3718 3719 type T__dev_t = uint32 /* types.h:145:25 */ // Type of device numbers. 3720 type T__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 3721 type T__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 3722 type T__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers. 3723 type T__ino64_t = uint32 /* types.h:149:27 */ // Type of file serial numbers (LFS). 3724 type T__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 3725 type T__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 3726 type T__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets. 3727 type T__off64_t = int32 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 3728 type T__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 3729 type T__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 3730 type T__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts. 3731 type T__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement. 3732 type T__rlim64_t = uint32 /* types.h:158:28 */ // Type for resource measurement (LFS). 3733 type T__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 3734 type T__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch. 3735 type T__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 3736 type T__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds. 3737 type T__suseconds64_t = int32 /* types.h:163:33 */ 3738 3739 type T__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. 3740 type T__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. 3741 3742 // Clock ID used in clock and timer functions. 3743 type T__clockid_t = int32 /* types.h:169:29 */ 3744 3745 // Timer ID returned by `timer_create'. 3746 type T__timer_t = uintptr /* types.h:172:12 */ 3747 3748 // Type to represent block size. 3749 type T__blksize_t = int32 /* types.h:175:29 */ 3750 3751 // Types from the Large File Support interface. 3752 3753 // Type to count number of disk blocks. 3754 type T__blkcnt_t = int32 /* types.h:180:28 */ 3755 type T__blkcnt64_t = int32 /* types.h:181:30 */ 3756 3757 // Type to count file system blocks. 3758 type T__fsblkcnt_t = uint32 /* types.h:184:30 */ 3759 type T__fsblkcnt64_t = uint32 /* types.h:185:32 */ 3760 3761 // Type to count file system nodes. 3762 type T__fsfilcnt_t = uint32 /* types.h:188:30 */ 3763 type T__fsfilcnt64_t = uint32 /* types.h:189:32 */ 3764 3765 // Type of miscellaneous file system fields. 3766 type T__fsword_t = int32 /* types.h:192:28 */ 3767 3768 type T__ssize_t = int32 /* types.h:194:27 */ // Type of a byte count, or error. 3769 3770 // Signed long type used in system calls. 3771 type T__syscall_slong_t = int32 /* types.h:197:33 */ 3772 // Unsigned long type used in system calls. 3773 type T__syscall_ulong_t = uint32 /* types.h:199:33 */ 3774 3775 // These few don't really vary by system, they always correspond 3776 // to one of the other defined types. 3777 type T__loff_t = T__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS). 3778 type T__caddr_t = uintptr /* types.h:204:14 */ 3779 3780 // Duplicates info from stdint.h but this is used in unistd.h. 3781 type T__intptr_t = int32 /* types.h:207:25 */ 3782 3783 // Duplicate info from sys/socket.h. 3784 type T__socklen_t = uint32 /* types.h:210:23 */ 3785 3786 // C99: An integer type that can be accessed as an atomic entity, 3787 // even in the presence of asynchronous interrupts. 3788 // It is not currently necessary for this to be machine-specific. 3789 type T__sig_atomic_t = int32 /* types.h:215:13 */ 3790 3791 // This code is needed for the optimized mapping functions. 3792 3793 // POSIX.1-2008 extended locale interface (see locale.h). 3794 // Definition of locale_t. 3795 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 3796 // This file is part of the GNU C Library. 3797 // 3798 // The GNU C Library is free software; you can redistribute it and/or 3799 // modify it under the terms of the GNU Lesser General Public 3800 // License as published by the Free Software Foundation; either 3801 // version 2.1 of the License, or (at your option) any later version. 3802 // 3803 // The GNU C Library is distributed in the hope that it will be useful, 3804 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3805 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3806 // Lesser General Public License for more details. 3807 // 3808 // You should have received a copy of the GNU Lesser General Public 3809 // License along with the GNU C Library; if not, see 3810 // <https://www.gnu.org/licenses/>. 3811 3812 // Definition of struct __locale_struct and __locale_t. 3813 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 3814 // This file is part of the GNU C Library. 3815 // 3816 // The GNU C Library is free software; you can redistribute it and/or 3817 // modify it under the terms of the GNU Lesser General Public 3818 // License as published by the Free Software Foundation; either 3819 // version 2.1 of the License, or (at your option) any later version. 3820 // 3821 // The GNU C Library is distributed in the hope that it will be useful, 3822 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3823 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3824 // Lesser General Public License for more details. 3825 // 3826 // You should have received a copy of the GNU Lesser General Public 3827 // License along with the GNU C Library; if not, see 3828 // <https://www.gnu.org/licenses/>. 3829 3830 // POSIX.1-2008: the locale_t type, representing a locale context 3831 // (implementation-namespace version). This type should be treated 3832 // as opaque by applications; some details are exposed for the sake of 3833 // efficiency in e.g. ctype functions. 3834 3835 type S__locale_struct = struct { 3836 F__locales [13]uintptr 3837 F__ctype_b uintptr 3838 F__ctype_tolower uintptr 3839 F__ctype_toupper uintptr 3840 F__names [13]uintptr 3841 } /* __locale_t.h:27:1 */ 3842 3843 type T__locale_t = uintptr /* __locale_t.h:41:32 */ 3844 3845 type Tlocale_t = T__locale_t /* locale_t.h:24:20 */ 3846 3847 // A null pointer constant. 3848 3849 // Offset of member MEMBER in a struct of type TYPE. 3850 3851 // Type whose alignment is supported in every context and is at least 3852 // as great as that of any standard type not using alignment 3853 // specifiers. 3854 type Tmax_align_t = struct { 3855 F__max_align_ll int64 3856 F__max_align_ld float64 3857 } /* stddef.h:426:3 */ 3858 3859 // Define ISO C stdio on top of C++ iostreams. 3860 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3861 // This file is part of the GNU C Library. 3862 // 3863 // The GNU C Library is free software; you can redistribute it and/or 3864 // modify it under the terms of the GNU Lesser General Public 3865 // License as published by the Free Software Foundation; either 3866 // version 2.1 of the License, or (at your option) any later version. 3867 // 3868 // The GNU C Library is distributed in the hope that it will be useful, 3869 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3870 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3871 // Lesser General Public License for more details. 3872 // 3873 // You should have received a copy of the GNU Lesser General Public 3874 // License along with the GNU C Library; if not, see 3875 // <https://www.gnu.org/licenses/>. 3876 3877 // ISO C99 Standard: 7.19 Input/output <stdio.h> 3878 3879 // Handle feature test macros at the start of a header. 3880 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 3881 // This file is part of the GNU C Library. 3882 // 3883 // The GNU C Library is free software; you can redistribute it and/or 3884 // modify it under the terms of the GNU Lesser General Public 3885 // License as published by the Free Software Foundation; either 3886 // version 2.1 of the License, or (at your option) any later version. 3887 // 3888 // The GNU C Library is distributed in the hope that it will be useful, 3889 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3890 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3891 // Lesser General Public License for more details. 3892 // 3893 // You should have received a copy of the GNU Lesser General Public 3894 // License along with the GNU C Library; if not, see 3895 // <https://www.gnu.org/licenses/>. 3896 3897 // This header is internal to glibc and should not be included outside 3898 // of glibc headers. Headers including it must define 3899 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 3900 // cannot have multiple include guards because ISO C feature test 3901 // macros depend on the definition of the macro when an affected 3902 // header is included, not when the first system header is 3903 // included. 3904 3905 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3906 // This file is part of the GNU C Library. 3907 // 3908 // The GNU C Library is free software; you can redistribute it and/or 3909 // modify it under the terms of the GNU Lesser General Public 3910 // License as published by the Free Software Foundation; either 3911 // version 2.1 of the License, or (at your option) any later version. 3912 // 3913 // The GNU C Library is distributed in the hope that it will be useful, 3914 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3915 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3916 // Lesser General Public License for more details. 3917 // 3918 // You should have received a copy of the GNU Lesser General Public 3919 // License along with the GNU C Library; if not, see 3920 // <https://www.gnu.org/licenses/>. 3921 3922 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 3923 // macro. 3924 3925 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 3926 // macro. Most but not all symbols enabled by that macro in TS 3927 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 3928 // Annex F still require a new feature test macro 3929 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 3930 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 3931 // 18661-1 are not included in C2X (and thus should depend on 3932 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 3933 // enabled). 3934 // 3935 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 3936 // 18661-1 not included in C2X. 3937 // 3938 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 3939 // 18661-1 that are also included in C2X (with no feature test macro 3940 // required in C2X). 3941 // 3942 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 3943 // that are included in C2X but conditional on 3944 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 3945 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 3946 // 18661-1.) 3947 3948 // ISO/IEC TS 18661-4:2015 defines the 3949 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 3950 // functions, the symbols from this TS are enabled unconditionally in 3951 // C2X. 3952 3953 // ISO/IEC TS 18661-3:2015 defines the 3954 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 3955 3956 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 3957 // 3958 // This file is part of GCC. 3959 // 3960 // GCC is free software; you can redistribute it and/or modify 3961 // it under the terms of the GNU General Public License as published by 3962 // the Free Software Foundation; either version 3, or (at your option) 3963 // any later version. 3964 // 3965 // GCC is distributed in the hope that it will be useful, 3966 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3967 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 3968 // GNU General Public License for more details. 3969 // 3970 // Under Section 7 of GPL version 3, you are granted additional 3971 // permissions described in the GCC Runtime Library Exception, version 3972 // 3.1, as published by the Free Software Foundation. 3973 // 3974 // You should have received a copy of the GNU General Public License and 3975 // a copy of the GCC Runtime Library Exception along with this program; 3976 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 3977 // <http://www.gnu.org/licenses/>. 3978 3979 // ISO C Standard: 7.17 Common definitions <stddef.h> 3980 3981 // Any one of these symbols __need_* means that GNU libc 3982 // wants us just to define one data type. So don't define 3983 // the symbols that indicate this file's entire job has been done. 3984 3985 // This avoids lossage on SunOS but only if stdtypes.h comes first. 3986 // There's no way to win with the other order! Sun lossage. 3987 3988 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 3989 // Just ignore it. 3990 3991 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 3992 // _TYPE_size_t which will typedef size_t. fixincludes patched the 3993 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 3994 // not defined, and so that defining this macro defines _GCC_SIZE_T. 3995 // If we find that the macros are still defined at this point, we must 3996 // invoke them so that the type is defined as expected. 3997 3998 // In case nobody has defined these types, but we aren't running under 3999 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4000 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4001 // parts of GCC is compiled by an older compiler, that actually 4002 // include gstddef.h, such as collect2. 4003 4004 // Signed type of difference of two pointers. 4005 4006 // Define this type if we are doing the whole job, 4007 // or if we want this type in particular. 4008 4009 // If this symbol has done its job, get rid of it. 4010 4011 // Unsigned type of `sizeof' something. 4012 4013 // Define this type if we are doing the whole job, 4014 // or if we want this type in particular. 4015 4016 // Wide character type. 4017 // Locale-writers should change this as necessary to 4018 // be big enough to hold unique values not between 0 and 127, 4019 // and not (wchar_t) -1, for each defined multibyte character. 4020 4021 // Define this type if we are doing the whole job, 4022 // or if we want this type in particular. 4023 4024 // A null pointer constant. 4025 4026 // Offset of member MEMBER in a struct of type TYPE. 4027 4028 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4029 // 4030 // This file is part of GCC. 4031 // 4032 // GCC is free software; you can redistribute it and/or modify 4033 // it under the terms of the GNU General Public License as published by 4034 // the Free Software Foundation; either version 3, or (at your option) 4035 // any later version. 4036 // 4037 // GCC is distributed in the hope that it will be useful, 4038 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4039 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4040 // GNU General Public License for more details. 4041 // 4042 // Under Section 7 of GPL version 3, you are granted additional 4043 // permissions described in the GCC Runtime Library Exception, version 4044 // 3.1, as published by the Free Software Foundation. 4045 // 4046 // You should have received a copy of the GNU General Public License and 4047 // a copy of the GCC Runtime Library Exception along with this program; 4048 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4049 // <http://www.gnu.org/licenses/>. 4050 4051 // ISO C Standard: 7.15 Variable arguments <stdarg.h> 4052 4053 // Define __gnuc_va_list. 4054 4055 type T__gnuc_va_list = T__builtin_va_list /* stdarg.h:40:27 */ 4056 4057 // Define the standard macros for the user, 4058 // if this invocation was from the user program. 4059 4060 // bits/types.h -- definitions of __*_t types underlying *_t types. 4061 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4062 // This file is part of the GNU C Library. 4063 // 4064 // The GNU C Library is free software; you can redistribute it and/or 4065 // modify it under the terms of the GNU Lesser General Public 4066 // License as published by the Free Software Foundation; either 4067 // version 2.1 of the License, or (at your option) any later version. 4068 // 4069 // The GNU C Library is distributed in the hope that it will be useful, 4070 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4071 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4072 // Lesser General Public License for more details. 4073 // 4074 // You should have received a copy of the GNU Lesser General Public 4075 // License along with the GNU C Library; if not, see 4076 // <https://www.gnu.org/licenses/>. 4077 4078 // Never include this file directly; use <sys/types.h> instead. 4079 4080 // bits/types.h -- definitions of __*_t types underlying *_t types. 4081 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4082 // This file is part of the GNU C Library. 4083 // 4084 // The GNU C Library is free software; you can redistribute it and/or 4085 // modify it under the terms of the GNU Lesser General Public 4086 // License as published by the Free Software Foundation; either 4087 // version 2.1 of the License, or (at your option) any later version. 4088 // 4089 // The GNU C Library is distributed in the hope that it will be useful, 4090 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4091 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4092 // Lesser General Public License for more details. 4093 // 4094 // You should have received a copy of the GNU Lesser General Public 4095 // License along with the GNU C Library; if not, see 4096 // <https://www.gnu.org/licenses/>. 4097 4098 // Never include this file directly; use <sys/types.h> instead. 4099 4100 // Integral type unchanged by default argument promotions that can 4101 // hold any value corresponding to members of the extended character 4102 // set, as well as at least one value that does not correspond to any 4103 // member of the extended character set. 4104 4105 // Conversion state information. 4106 type T__mbstate_t = struct { 4107 F__count int32 4108 F__value struct{ F__wch uint32 } 4109 } /* __mbstate_t.h:21:3 */ 4110 4111 // The tag name of this struct is _G_fpos_t to preserve historic 4112 // C++ mangled names for functions taking fpos_t arguments. 4113 // That name should not be used in new code. 4114 type S_G_fpos_t = struct { 4115 F__pos T__off_t 4116 F__state T__mbstate_t 4117 } /* __fpos_t.h:10:9 */ 4118 4119 // The tag name of this struct is _G_fpos_t to preserve historic 4120 // C++ mangled names for functions taking fpos_t arguments. 4121 // That name should not be used in new code. 4122 type T__fpos_t = S_G_fpos_t /* __fpos_t.h:14:3 */ 4123 4124 // bits/types.h -- definitions of __*_t types underlying *_t types. 4125 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4126 // This file is part of the GNU C Library. 4127 // 4128 // The GNU C Library is free software; you can redistribute it and/or 4129 // modify it under the terms of the GNU Lesser General Public 4130 // License as published by the Free Software Foundation; either 4131 // version 2.1 of the License, or (at your option) any later version. 4132 // 4133 // The GNU C Library is distributed in the hope that it will be useful, 4134 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4135 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4136 // Lesser General Public License for more details. 4137 // 4138 // You should have received a copy of the GNU Lesser General Public 4139 // License along with the GNU C Library; if not, see 4140 // <https://www.gnu.org/licenses/>. 4141 4142 // Never include this file directly; use <sys/types.h> instead. 4143 4144 // The tag name of this struct is _G_fpos64_t to preserve historic 4145 // C++ mangled names for functions taking fpos_t and/or fpos64_t 4146 // arguments. That name should not be used in new code. 4147 type S_G_fpos64_t = struct { 4148 F__pos T__off64_t 4149 F__state T__mbstate_t 4150 } /* __fpos64_t.h:10:9 */ 4151 4152 // bits/types.h -- definitions of __*_t types underlying *_t types. 4153 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4154 // This file is part of the GNU C Library. 4155 // 4156 // The GNU C Library is free software; you can redistribute it and/or 4157 // modify it under the terms of the GNU Lesser General Public 4158 // License as published by the Free Software Foundation; either 4159 // version 2.1 of the License, or (at your option) any later version. 4160 // 4161 // The GNU C Library is distributed in the hope that it will be useful, 4162 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4163 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4164 // Lesser General Public License for more details. 4165 // 4166 // You should have received a copy of the GNU Lesser General Public 4167 // License along with the GNU C Library; if not, see 4168 // <https://www.gnu.org/licenses/>. 4169 4170 // Never include this file directly; use <sys/types.h> instead. 4171 4172 // The tag name of this struct is _G_fpos64_t to preserve historic 4173 // C++ mangled names for functions taking fpos_t and/or fpos64_t 4174 // arguments. That name should not be used in new code. 4175 type T__fpos64_t = S_G_fpos64_t /* __fpos64_t.h:14:3 */ 4176 4177 type S_IO_FILE = struct { 4178 F_flags int32 4179 F_IO_read_ptr uintptr 4180 F_IO_read_end uintptr 4181 F_IO_read_base uintptr 4182 F_IO_write_base uintptr 4183 F_IO_write_ptr uintptr 4184 F_IO_write_end uintptr 4185 F_IO_buf_base uintptr 4186 F_IO_buf_end uintptr 4187 F_IO_save_base uintptr 4188 F_IO_backup_base uintptr 4189 F_IO_save_end uintptr 4190 F_markers uintptr 4191 F_chain uintptr 4192 F_fileno int32 4193 F_flags2 int32 4194 F_old_offset T__off_t 4195 F_cur_column uint16 4196 F_vtable_offset int8 4197 F_shortbuf [1]int8 4198 F_lock uintptr 4199 F_offset T__off64_t 4200 F_codecvt uintptr 4201 F_wide_data uintptr 4202 F_freeres_list uintptr 4203 F_freeres_buf uintptr 4204 F__pad5 Tsize_t 4205 F_mode int32 4206 F_unused2 [40]int8 4207 } /* __FILE.h:4:1 */ 4208 4209 type T__FILE = S_IO_FILE /* __FILE.h:5:25 */ 4210 4211 // The opaque type of streams. This is the definition used elsewhere. 4212 type TFILE = S_IO_FILE /* FILE.h:7:25 */ 4213 4214 // The structure with the cookie function pointers. 4215 // The tag name of this struct is _IO_cookie_io_functions_t to 4216 // preserve historic C++ mangled names for functions taking 4217 // cookie_io_functions_t arguments. That name should not be used in 4218 // new code. 4219 type S_IO_cookie_io_functions_t = struct { 4220 Fread uintptr 4221 Fwrite uintptr 4222 Fseek uintptr 4223 Fclose uintptr 4224 } /* cookie_io_functions_t.h:55:9 */ 4225 4226 // The structure with the cookie function pointers. 4227 // The tag name of this struct is _IO_cookie_io_functions_t to 4228 // preserve historic C++ mangled names for functions taking 4229 // cookie_io_functions_t arguments. That name should not be used in 4230 // new code. 4231 type Tcookie_io_functions_t = S_IO_cookie_io_functions_t /* cookie_io_functions_t.h:61:3 */ 4232 4233 type Tva_list = T__gnuc_va_list /* stdio.h:52:24 */ 4234 4235 type Toff_t = T__off64_t /* stdio.h:65:19 */ 4236 type Toff64_t = T__off64_t /* stdio.h:70:19 */ 4237 4238 type Tssize_t = T__ssize_t /* stdio.h:77:19 */ 4239 4240 // The type of the second argument to `fgetpos' and `fsetpos'. 4241 type Tfpos_t = T__fpos64_t /* stdio.h:86:20 */ 4242 type Tfpos64_t = T__fpos64_t /* stdio.h:89:20 */ 4243 4244 // If we are compiling with optimizing read this file. It contains 4245 // several optimizing inline functions and macros. 4246 4247 // Macros to control TS 18661-3 glibc features on x86. 4248 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4249 // This file is part of the GNU C Library. 4250 // 4251 // The GNU C Library is free software; you can redistribute it and/or 4252 // modify it under the terms of the GNU Lesser General Public 4253 // License as published by the Free Software Foundation; either 4254 // version 2.1 of the License, or (at your option) any later version. 4255 // 4256 // The GNU C Library is distributed in the hope that it will be useful, 4257 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4258 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4259 // Lesser General Public License for more details. 4260 // 4261 // You should have received a copy of the GNU Lesser General Public 4262 // License along with the GNU C Library; if not, see 4263 // <https://www.gnu.org/licenses/>. 4264 4265 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4266 // Copyright The GNU Toolchain Authors. 4267 // This file is part of the GNU C Library. 4268 // 4269 // The GNU C Library is free software; you can redistribute it and/or 4270 // modify it under the terms of the GNU Lesser General Public 4271 // License as published by the Free Software Foundation; either 4272 // version 2.1 of the License, or (at your option) any later version. 4273 // 4274 // The GNU C Library is distributed in the hope that it will be useful, 4275 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4276 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4277 // Lesser General Public License for more details. 4278 // 4279 // You should have received a copy of the GNU Lesser General Public 4280 // License along with the GNU C Library; if not, see 4281 // <https://www.gnu.org/licenses/>. 4282 4283 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 4284 4285 // Handle feature test macros at the start of a header. 4286 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 4287 // This file is part of the GNU C Library. 4288 // 4289 // The GNU C Library is free software; you can redistribute it and/or 4290 // modify it under the terms of the GNU Lesser General Public 4291 // License as published by the Free Software Foundation; either 4292 // version 2.1 of the License, or (at your option) any later version. 4293 // 4294 // The GNU C Library is distributed in the hope that it will be useful, 4295 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4296 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4297 // Lesser General Public License for more details. 4298 // 4299 // You should have received a copy of the GNU Lesser General Public 4300 // License along with the GNU C Library; if not, see 4301 // <https://www.gnu.org/licenses/>. 4302 4303 // This header is internal to glibc and should not be included outside 4304 // of glibc headers. Headers including it must define 4305 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 4306 // cannot have multiple include guards because ISO C feature test 4307 // macros depend on the definition of the macro when an affected 4308 // header is included, not when the first system header is 4309 // included. 4310 4311 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4312 // This file is part of the GNU C Library. 4313 // 4314 // The GNU C Library is free software; you can redistribute it and/or 4315 // modify it under the terms of the GNU Lesser General Public 4316 // License as published by the Free Software Foundation; either 4317 // version 2.1 of the License, or (at your option) any later version. 4318 // 4319 // The GNU C Library is distributed in the hope that it will be useful, 4320 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4321 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4322 // Lesser General Public License for more details. 4323 // 4324 // You should have received a copy of the GNU Lesser General Public 4325 // License along with the GNU C Library; if not, see 4326 // <https://www.gnu.org/licenses/>. 4327 4328 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 4329 // macro. 4330 4331 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 4332 // macro. Most but not all symbols enabled by that macro in TS 4333 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 4334 // Annex F still require a new feature test macro 4335 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 4336 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 4337 // 18661-1 are not included in C2X (and thus should depend on 4338 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 4339 // enabled). 4340 // 4341 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 4342 // 18661-1 not included in C2X. 4343 // 4344 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 4345 // 18661-1 that are also included in C2X (with no feature test macro 4346 // required in C2X). 4347 // 4348 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 4349 // that are included in C2X but conditional on 4350 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 4351 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 4352 // 18661-1.) 4353 4354 // ISO/IEC TS 18661-4:2015 defines the 4355 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 4356 // functions, the symbols from this TS are enabled unconditionally in 4357 // C2X. 4358 4359 // ISO/IEC TS 18661-3:2015 defines the 4360 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 4361 4362 // Get size_t, wchar_t and NULL from <stddef.h>. 4363 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4364 // 4365 // This file is part of GCC. 4366 // 4367 // GCC is free software; you can redistribute it and/or modify 4368 // it under the terms of the GNU General Public License as published by 4369 // the Free Software Foundation; either version 3, or (at your option) 4370 // any later version. 4371 // 4372 // GCC is distributed in the hope that it will be useful, 4373 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4374 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4375 // GNU General Public License for more details. 4376 // 4377 // Under Section 7 of GPL version 3, you are granted additional 4378 // permissions described in the GCC Runtime Library Exception, version 4379 // 3.1, as published by the Free Software Foundation. 4380 // 4381 // You should have received a copy of the GNU General Public License and 4382 // a copy of the GCC Runtime Library Exception along with this program; 4383 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4384 // <http://www.gnu.org/licenses/>. 4385 4386 // ISO C Standard: 7.17 Common definitions <stddef.h> 4387 4388 // Any one of these symbols __need_* means that GNU libc 4389 // wants us just to define one data type. So don't define 4390 // the symbols that indicate this file's entire job has been done. 4391 4392 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4393 // There's no way to win with the other order! Sun lossage. 4394 4395 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4396 // Just ignore it. 4397 4398 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4399 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4400 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4401 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4402 // If we find that the macros are still defined at this point, we must 4403 // invoke them so that the type is defined as expected. 4404 4405 // In case nobody has defined these types, but we aren't running under 4406 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4407 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4408 // parts of GCC is compiled by an older compiler, that actually 4409 // include gstddef.h, such as collect2. 4410 4411 // Signed type of difference of two pointers. 4412 4413 // Define this type if we are doing the whole job, 4414 // or if we want this type in particular. 4415 4416 // If this symbol has done its job, get rid of it. 4417 4418 // Unsigned type of `sizeof' something. 4419 4420 // Define this type if we are doing the whole job, 4421 // or if we want this type in particular. 4422 4423 // Wide character type. 4424 // Locale-writers should change this as necessary to 4425 // be big enough to hold unique values not between 0 and 127, 4426 // and not (wchar_t) -1, for each defined multibyte character. 4427 4428 // Define this type if we are doing the whole job, 4429 // or if we want this type in particular. 4430 4431 // A null pointer constant. 4432 4433 // Offset of member MEMBER in a struct of type TYPE. 4434 4435 // XPG requires a few symbols from <sys/wait.h> being defined. 4436 // Definitions of flag bits for `waitpid' et al. 4437 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4438 // This file is part of the GNU C Library. 4439 // 4440 // The GNU C Library is free software; you can redistribute it and/or 4441 // modify it under the terms of the GNU Lesser General Public 4442 // License as published by the Free Software Foundation; either 4443 // version 2.1 of the License, or (at your option) any later version. 4444 // 4445 // The GNU C Library is distributed in the hope that it will be useful, 4446 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4447 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4448 // Lesser General Public License for more details. 4449 // 4450 // You should have received a copy of the GNU Lesser General Public 4451 // License along with the GNU C Library; if not, see 4452 // <https://www.gnu.org/licenses/>. 4453 4454 // Bits in the third argument to `waitpid'. 4455 4456 // Bits in the fourth argument to `waitid'. 4457 4458 // Definitions of status bits for `wait' et al. 4459 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4460 // This file is part of the GNU C Library. 4461 // 4462 // The GNU C Library is free software; you can redistribute it and/or 4463 // modify it under the terms of the GNU Lesser General Public 4464 // License as published by the Free Software Foundation; either 4465 // version 2.1 of the License, or (at your option) any later version. 4466 // 4467 // The GNU C Library is distributed in the hope that it will be useful, 4468 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4469 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4470 // Lesser General Public License for more details. 4471 // 4472 // You should have received a copy of the GNU Lesser General Public 4473 // License along with the GNU C Library; if not, see 4474 // <https://www.gnu.org/licenses/>. 4475 4476 // Everything extant so far uses these same bits. 4477 4478 // If WIFEXITED(STATUS), the low-order 8 bits of the status. 4479 4480 // If WIFSIGNALED(STATUS), the terminating signal. 4481 4482 // If WIFSTOPPED(STATUS), the signal that stopped the child. 4483 4484 // Nonzero if STATUS indicates normal termination. 4485 4486 // Nonzero if STATUS indicates termination by a signal. 4487 4488 // Nonzero if STATUS indicates the child is stopped. 4489 4490 // Nonzero if STATUS indicates the child continued after a stop. We only 4491 // define this if <bits/waitflags.h> provides the WCONTINUED flag bit. 4492 4493 // Nonzero if STATUS indicates the child dumped core. 4494 4495 // Macros for constructing status values. 4496 4497 // Define the macros <sys/wait.h> also would define this way. 4498 4499 // _FloatN API tests for enablement. 4500 // Macros to control TS 18661-3 glibc features on x86. 4501 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4502 // This file is part of the GNU C Library. 4503 // 4504 // The GNU C Library is free software; you can redistribute it and/or 4505 // modify it under the terms of the GNU Lesser General Public 4506 // License as published by the Free Software Foundation; either 4507 // version 2.1 of the License, or (at your option) any later version. 4508 // 4509 // The GNU C Library is distributed in the hope that it will be useful, 4510 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4511 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4512 // Lesser General Public License for more details. 4513 // 4514 // You should have received a copy of the GNU Lesser General Public 4515 // License along with the GNU C Library; if not, see 4516 // <https://www.gnu.org/licenses/>. 4517 4518 // Returned by `div'. 4519 type Tdiv_t = struct { 4520 Fquot int32 4521 Frem int32 4522 } /* stdlib.h:63:5 */ 4523 4524 // Returned by `ldiv'. 4525 type Tldiv_t = struct { 4526 Fquot int32 4527 Frem int32 4528 } /* stdlib.h:71:5 */ 4529 4530 // Returned by `lldiv'. 4531 type Tlldiv_t = struct { 4532 Fquot int64 4533 Frem int64 4534 } /* stdlib.h:81:5 */ 4535 4536 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4537 // This file is part of the GNU C Library. 4538 // 4539 // The GNU C Library is free software; you can redistribute it and/or 4540 // modify it under the terms of the GNU Lesser General Public 4541 // License as published by the Free Software Foundation; either 4542 // version 2.1 of the License, or (at your option) any later version. 4543 // 4544 // The GNU C Library is distributed in the hope that it will be useful, 4545 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4546 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4547 // Lesser General Public License for more details. 4548 // 4549 // You should have received a copy of the GNU Lesser General Public 4550 // License along with the GNU C Library; if not, see 4551 // <https://www.gnu.org/licenses/>. 4552 4553 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 4554 4555 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4556 // This file is part of the GNU C Library. 4557 // 4558 // The GNU C Library is free software; you can redistribute it and/or 4559 // modify it under the terms of the GNU Lesser General Public 4560 // License as published by the Free Software Foundation; either 4561 // version 2.1 of the License, or (at your option) any later version. 4562 // 4563 // The GNU C Library is distributed in the hope that it will be useful, 4564 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4565 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4566 // Lesser General Public License for more details. 4567 // 4568 // You should have received a copy of the GNU Lesser General Public 4569 // License along with the GNU C Library; if not, see 4570 // <https://www.gnu.org/licenses/>. 4571 4572 // bits/types.h -- definitions of __*_t types underlying *_t types. 4573 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4574 // This file is part of the GNU C Library. 4575 // 4576 // The GNU C Library is free software; you can redistribute it and/or 4577 // modify it under the terms of the GNU Lesser General Public 4578 // License as published by the Free Software Foundation; either 4579 // version 2.1 of the License, or (at your option) any later version. 4580 // 4581 // The GNU C Library is distributed in the hope that it will be useful, 4582 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4583 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4584 // Lesser General Public License for more details. 4585 // 4586 // You should have received a copy of the GNU Lesser General Public 4587 // License along with the GNU C Library; if not, see 4588 // <https://www.gnu.org/licenses/>. 4589 4590 // Never include this file directly; use <sys/types.h> instead. 4591 4592 type Tu_char = T__u_char /* types.h:33:18 */ 4593 type Tu_short = T__u_short /* types.h:34:19 */ 4594 type Tu_int = T__u_int /* types.h:35:17 */ 4595 type Tu_long = T__u_long /* types.h:36:18 */ 4596 type Tquad_t = T__quad_t /* types.h:37:18 */ 4597 type Tu_quad_t = T__u_quad_t /* types.h:38:20 */ 4598 type Tfsid_t = T__fsid_t /* types.h:39:18 */ 4599 type Tloff_t = T__loff_t /* types.h:42:18 */ 4600 4601 type Tino_t = T__ino64_t /* types.h:49:19 */ 4602 type Tino64_t = T__ino64_t /* types.h:54:19 */ 4603 4604 type Tdev_t = T__dev_t /* types.h:59:17 */ 4605 4606 type Tgid_t = T__gid_t /* types.h:64:17 */ 4607 4608 type Tmode_t = T__mode_t /* types.h:69:18 */ 4609 4610 type Tnlink_t = T__nlink_t /* types.h:74:19 */ 4611 4612 type Tuid_t = T__uid_t /* types.h:79:17 */ 4613 4614 type Tpid_t = T__pid_t /* types.h:97:17 */ 4615 4616 type Tid_t = T__id_t /* types.h:103:16 */ 4617 4618 type Tdaddr_t = T__daddr_t /* types.h:114:19 */ 4619 type Tcaddr_t = T__caddr_t /* types.h:115:19 */ 4620 4621 type Tkey_t = T__key_t /* types.h:121:17 */ 4622 4623 // bits/types.h -- definitions of __*_t types underlying *_t types. 4624 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4625 // This file is part of the GNU C Library. 4626 // 4627 // The GNU C Library is free software; you can redistribute it and/or 4628 // modify it under the terms of the GNU Lesser General Public 4629 // License as published by the Free Software Foundation; either 4630 // version 2.1 of the License, or (at your option) any later version. 4631 // 4632 // The GNU C Library is distributed in the hope that it will be useful, 4633 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4634 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4635 // Lesser General Public License for more details. 4636 // 4637 // You should have received a copy of the GNU Lesser General Public 4638 // License along with the GNU C Library; if not, see 4639 // <https://www.gnu.org/licenses/>. 4640 4641 // Never include this file directly; use <sys/types.h> instead. 4642 4643 // Returned by `clock'. 4644 type Tclock_t = T__clock_t /* clock_t.h:7:19 */ 4645 4646 // bits/types.h -- definitions of __*_t types underlying *_t types. 4647 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4648 // This file is part of the GNU C Library. 4649 // 4650 // The GNU C Library is free software; you can redistribute it and/or 4651 // modify it under the terms of the GNU Lesser General Public 4652 // License as published by the Free Software Foundation; either 4653 // version 2.1 of the License, or (at your option) any later version. 4654 // 4655 // The GNU C Library is distributed in the hope that it will be useful, 4656 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4657 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4658 // Lesser General Public License for more details. 4659 // 4660 // You should have received a copy of the GNU Lesser General Public 4661 // License along with the GNU C Library; if not, see 4662 // <https://www.gnu.org/licenses/>. 4663 4664 // Never include this file directly; use <sys/types.h> instead. 4665 4666 // Clock ID used in clock and timer functions. 4667 type Tclockid_t = T__clockid_t /* clockid_t.h:7:21 */ 4668 4669 // bits/types.h -- definitions of __*_t types underlying *_t types. 4670 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4671 // This file is part of the GNU C Library. 4672 // 4673 // The GNU C Library is free software; you can redistribute it and/or 4674 // modify it under the terms of the GNU Lesser General Public 4675 // License as published by the Free Software Foundation; either 4676 // version 2.1 of the License, or (at your option) any later version. 4677 // 4678 // The GNU C Library is distributed in the hope that it will be useful, 4679 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4680 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4681 // Lesser General Public License for more details. 4682 // 4683 // You should have received a copy of the GNU Lesser General Public 4684 // License along with the GNU C Library; if not, see 4685 // <https://www.gnu.org/licenses/>. 4686 4687 // Never include this file directly; use <sys/types.h> instead. 4688 4689 // Returned by `time'. 4690 type Ttime_t = T__time_t /* time_t.h:10:18 */ 4691 4692 // bits/types.h -- definitions of __*_t types underlying *_t types. 4693 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4694 // This file is part of the GNU C Library. 4695 // 4696 // The GNU C Library is free software; you can redistribute it and/or 4697 // modify it under the terms of the GNU Lesser General Public 4698 // License as published by the Free Software Foundation; either 4699 // version 2.1 of the License, or (at your option) any later version. 4700 // 4701 // The GNU C Library is distributed in the hope that it will be useful, 4702 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4703 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4704 // Lesser General Public License for more details. 4705 // 4706 // You should have received a copy of the GNU Lesser General Public 4707 // License along with the GNU C Library; if not, see 4708 // <https://www.gnu.org/licenses/>. 4709 4710 // Never include this file directly; use <sys/types.h> instead. 4711 4712 // Timer ID returned by `timer_create'. 4713 type Ttimer_t = T__timer_t /* timer_t.h:7:19 */ 4714 4715 type Tuseconds_t = T__useconds_t /* types.h:134:22 */ 4716 type Tsuseconds_t = T__suseconds_t /* types.h:138:23 */ 4717 4718 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4719 // 4720 // This file is part of GCC. 4721 // 4722 // GCC is free software; you can redistribute it and/or modify 4723 // it under the terms of the GNU General Public License as published by 4724 // the Free Software Foundation; either version 3, or (at your option) 4725 // any later version. 4726 // 4727 // GCC is distributed in the hope that it will be useful, 4728 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4729 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4730 // GNU General Public License for more details. 4731 // 4732 // Under Section 7 of GPL version 3, you are granted additional 4733 // permissions described in the GCC Runtime Library Exception, version 4734 // 3.1, as published by the Free Software Foundation. 4735 // 4736 // You should have received a copy of the GNU General Public License and 4737 // a copy of the GCC Runtime Library Exception along with this program; 4738 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4739 // <http://www.gnu.org/licenses/>. 4740 4741 // ISO C Standard: 7.17 Common definitions <stddef.h> 4742 4743 // Any one of these symbols __need_* means that GNU libc 4744 // wants us just to define one data type. So don't define 4745 // the symbols that indicate this file's entire job has been done. 4746 4747 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4748 // There's no way to win with the other order! Sun lossage. 4749 4750 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4751 // Just ignore it. 4752 4753 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4754 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4755 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4756 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4757 // If we find that the macros are still defined at this point, we must 4758 // invoke them so that the type is defined as expected. 4759 4760 // In case nobody has defined these types, but we aren't running under 4761 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4762 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4763 // parts of GCC is compiled by an older compiler, that actually 4764 // include gstddef.h, such as collect2. 4765 4766 // Signed type of difference of two pointers. 4767 4768 // Define this type if we are doing the whole job, 4769 // or if we want this type in particular. 4770 4771 // If this symbol has done its job, get rid of it. 4772 4773 // Unsigned type of `sizeof' something. 4774 4775 // Define this type if we are doing the whole job, 4776 // or if we want this type in particular. 4777 4778 // Wide character type. 4779 // Locale-writers should change this as necessary to 4780 // be big enough to hold unique values not between 0 and 127, 4781 // and not (wchar_t) -1, for each defined multibyte character. 4782 4783 // Define this type if we are doing the whole job, 4784 // or if we want this type in particular. 4785 4786 // A null pointer constant. 4787 4788 // Offset of member MEMBER in a struct of type TYPE. 4789 4790 // Old compatibility names for C types. 4791 type Tulong = uint32 /* types.h:148:27 */ 4792 type Tushort = uint16 /* types.h:149:28 */ 4793 type Tuint = uint32 /* types.h:150:22 */ 4794 4795 // These size-specific names are used by some of the inet code. 4796 4797 // Define intN_t types. 4798 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4799 // This file is part of the GNU C Library. 4800 // 4801 // The GNU C Library is free software; you can redistribute it and/or 4802 // modify it under the terms of the GNU Lesser General Public 4803 // License as published by the Free Software Foundation; either 4804 // version 2.1 of the License, or (at your option) any later version. 4805 // 4806 // The GNU C Library is distributed in the hope that it will be useful, 4807 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4808 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4809 // Lesser General Public License for more details. 4810 // 4811 // You should have received a copy of the GNU Lesser General Public 4812 // License along with the GNU C Library; if not, see 4813 // <https://www.gnu.org/licenses/>. 4814 4815 // bits/types.h -- definitions of __*_t types underlying *_t types. 4816 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4817 // This file is part of the GNU C Library. 4818 // 4819 // The GNU C Library is free software; you can redistribute it and/or 4820 // modify it under the terms of the GNU Lesser General Public 4821 // License as published by the Free Software Foundation; either 4822 // version 2.1 of the License, or (at your option) any later version. 4823 // 4824 // The GNU C Library is distributed in the hope that it will be useful, 4825 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4826 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4827 // Lesser General Public License for more details. 4828 // 4829 // You should have received a copy of the GNU Lesser General Public 4830 // License along with the GNU C Library; if not, see 4831 // <https://www.gnu.org/licenses/>. 4832 4833 // Never include this file directly; use <sys/types.h> instead. 4834 4835 type Tint8_t = T__int8_t /* stdint-intn.h:24:18 */ 4836 type Tint16_t = T__int16_t /* stdint-intn.h:25:19 */ 4837 type Tint32_t = T__int32_t /* stdint-intn.h:26:19 */ 4838 type Tint64_t = T__int64_t /* stdint-intn.h:27:19 */ 4839 4840 // These were defined by ISO C without the first `_'. 4841 type Tu_int8_t = T__uint8_t /* types.h:158:19 */ 4842 type Tu_int16_t = T__uint16_t /* types.h:159:20 */ 4843 type Tu_int32_t = T__uint32_t /* types.h:160:20 */ 4844 type Tu_int64_t = T__uint64_t /* types.h:161:20 */ 4845 4846 type Tregister_t = int32 /* types.h:164:13 */ 4847 4848 // It also defines `fd_set' and the FD_* macros for `select'. 4849 // `fd_set' type and related macros, and `select'/`pselect' declarations. 4850 // Copyright (C) 1996-2022 Free Software Foundation, Inc. 4851 // This file is part of the GNU C Library. 4852 // 4853 // The GNU C Library is free software; you can redistribute it and/or 4854 // modify it under the terms of the GNU Lesser General Public 4855 // License as published by the Free Software Foundation; either 4856 // version 2.1 of the License, or (at your option) any later version. 4857 // 4858 // The GNU C Library is distributed in the hope that it will be useful, 4859 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4860 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4861 // Lesser General Public License for more details. 4862 // 4863 // You should have received a copy of the GNU Lesser General Public 4864 // License along with the GNU C Library; if not, see 4865 // <https://www.gnu.org/licenses/>. 4866 4867 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 4868 4869 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4870 // This file is part of the GNU C Library. 4871 // 4872 // The GNU C Library is free software; you can redistribute it and/or 4873 // modify it under the terms of the GNU Lesser General Public 4874 // License as published by the Free Software Foundation; either 4875 // version 2.1 of the License, or (at your option) any later version. 4876 // 4877 // The GNU C Library is distributed in the hope that it will be useful, 4878 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4879 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4880 // Lesser General Public License for more details. 4881 // 4882 // You should have received a copy of the GNU Lesser General Public 4883 // License along with the GNU C Library; if not, see 4884 // <https://www.gnu.org/licenses/>. 4885 4886 // Get definition of needed basic types. 4887 // bits/types.h -- definitions of __*_t types underlying *_t types. 4888 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4889 // This file is part of the GNU C Library. 4890 // 4891 // The GNU C Library is free software; you can redistribute it and/or 4892 // modify it under the terms of the GNU Lesser General Public 4893 // License as published by the Free Software Foundation; either 4894 // version 2.1 of the License, or (at your option) any later version. 4895 // 4896 // The GNU C Library is distributed in the hope that it will be useful, 4897 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4898 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4899 // Lesser General Public License for more details. 4900 // 4901 // You should have received a copy of the GNU Lesser General Public 4902 // License along with the GNU C Library; if not, see 4903 // <https://www.gnu.org/licenses/>. 4904 4905 // Never include this file directly; use <sys/types.h> instead. 4906 4907 // Get __FD_* definitions. 4908 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 4909 // This file is part of the GNU C Library. 4910 // 4911 // The GNU C Library is free software; you can redistribute it and/or 4912 // modify it under the terms of the GNU Lesser General Public 4913 // License as published by the Free Software Foundation; either 4914 // version 2.1 of the License, or (at your option) any later version. 4915 // 4916 // The GNU C Library is distributed in the hope that it will be useful, 4917 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4918 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4919 // Lesser General Public License for more details. 4920 // 4921 // You should have received a copy of the GNU Lesser General Public 4922 // License along with the GNU C Library; if not, see 4923 // <https://www.gnu.org/licenses/>. 4924 4925 // We don't use `memset' because this would require a prototype and 4926 // the array isn't too big. 4927 4928 // Get sigset_t. 4929 4930 type T__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */ 4931 4932 // A set of signals to be blocked, unblocked, or waited for. 4933 type Tsigset_t = T__sigset_t /* sigset_t.h:7:20 */ 4934 4935 // Get definition of timer specification structures. 4936 4937 // bits/types.h -- definitions of __*_t types underlying *_t types. 4938 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4939 // This file is part of the GNU C Library. 4940 // 4941 // The GNU C Library is free software; you can redistribute it and/or 4942 // modify it under the terms of the GNU Lesser General Public 4943 // License as published by the Free Software Foundation; either 4944 // version 2.1 of the License, or (at your option) any later version. 4945 // 4946 // The GNU C Library is distributed in the hope that it will be useful, 4947 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4948 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4949 // Lesser General Public License for more details. 4950 // 4951 // You should have received a copy of the GNU Lesser General Public 4952 // License along with the GNU C Library; if not, see 4953 // <https://www.gnu.org/licenses/>. 4954 4955 // Never include this file directly; use <sys/types.h> instead. 4956 4957 // A time value that is accurate to the nearest 4958 // microsecond but also has a range of years. 4959 type Stimeval = struct { 4960 Ftv_sec T__time_t 4961 Ftv_usec T__suseconds_t 4962 } /* struct_timeval.h:8:1 */ 4963 4964 // NB: Include guard matches what <linux/time.h> uses. 4965 4966 // bits/types.h -- definitions of __*_t types underlying *_t types. 4967 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4968 // This file is part of the GNU C Library. 4969 // 4970 // The GNU C Library is free software; you can redistribute it and/or 4971 // modify it under the terms of the GNU Lesser General Public 4972 // License as published by the Free Software Foundation; either 4973 // version 2.1 of the License, or (at your option) any later version. 4974 // 4975 // The GNU C Library is distributed in the hope that it will be useful, 4976 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4977 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4978 // Lesser General Public License for more details. 4979 // 4980 // You should have received a copy of the GNU Lesser General Public 4981 // License along with the GNU C Library; if not, see 4982 // <https://www.gnu.org/licenses/>. 4983 4984 // Never include this file directly; use <sys/types.h> instead. 4985 4986 // Endian macros for string.h functions 4987 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4988 // This file is part of the GNU C Library. 4989 // 4990 // The GNU C Library is free software; you can redistribute it and/or 4991 // modify it under the terms of the GNU Lesser General Public 4992 // License as published by the Free Software Foundation; either 4993 // version 2.1 of the License, or (at your option) any later version. 4994 // 4995 // The GNU C Library is distributed in the hope that it will be useful, 4996 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4997 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4998 // Lesser General Public License for more details. 4999 // 5000 // You should have received a copy of the GNU Lesser General Public 5001 // License along with the GNU C Library; if not, see 5002 // <http://www.gnu.org/licenses/>. 5003 5004 // POSIX.1b structure for a time value. This is like a `struct timeval' but 5005 // has nanoseconds instead of microseconds. 5006 type Stimespec = struct { 5007 Ftv_sec T__time_t 5008 Ftv_nsec T__syscall_slong_t 5009 } /* struct_timespec.h:11:1 */ 5010 5011 // The fd_set member is required to be an array of longs. 5012 type T__fd_mask = int32 /* select.h:49:18 */ 5013 5014 // Some versions of <linux/posix_types.h> define this macros. 5015 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 5016 5017 // fd_set for select and pselect. 5018 type Tfd_set = struct{ Ffds_bits [32]T__fd_mask } /* select.h:70:5 */ 5019 5020 // Maximum number of file descriptors in `fd_set'. 5021 5022 // Sometimes the fd_set member is assumed to have this type. 5023 type Tfd_mask = T__fd_mask /* select.h:77:19 */ 5024 5025 // Define some inlines helping to catch common problems. 5026 5027 type Tblksize_t = T__blksize_t /* types.h:185:21 */ 5028 5029 // Types from the Large File Support interface. 5030 type Tblkcnt_t = T__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 5031 type Tfsblkcnt_t = T__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 5032 type Tfsfilcnt_t = T__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 5033 5034 type Tblkcnt64_t = T__blkcnt64_t /* types.h:219:22 */ // Type to count number of disk blocks. 5035 type Tfsblkcnt64_t = T__fsblkcnt64_t /* types.h:220:24 */ // Type to count file system blocks. 5036 type Tfsfilcnt64_t = T__fsfilcnt64_t /* types.h:221:24 */ // Type to count file system inodes. 5037 5038 // Now add the thread types. 5039 // Declaration of common pthread types for all architectures. 5040 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5041 // This file is part of the GNU C Library. 5042 // 5043 // The GNU C Library is free software; you can redistribute it and/or 5044 // modify it under the terms of the GNU Lesser General Public 5045 // License as published by the Free Software Foundation; either 5046 // version 2.1 of the License, or (at your option) any later version. 5047 // 5048 // The GNU C Library is distributed in the hope that it will be useful, 5049 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5050 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5051 // Lesser General Public License for more details. 5052 // 5053 // You should have received a copy of the GNU Lesser General Public 5054 // License along with the GNU C Library; if not, see 5055 // <https://www.gnu.org/licenses/>. 5056 5057 // For internal mutex and condition variable definitions. 5058 // Common threading primitives definitions for both POSIX and C11. 5059 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5060 // This file is part of the GNU C Library. 5061 // 5062 // The GNU C Library is free software; you can redistribute it and/or 5063 // modify it under the terms of the GNU Lesser General Public 5064 // License as published by the Free Software Foundation; either 5065 // version 2.1 of the License, or (at your option) any later version. 5066 // 5067 // The GNU C Library is distributed in the hope that it will be useful, 5068 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5069 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5070 // Lesser General Public License for more details. 5071 // 5072 // You should have received a copy of the GNU Lesser General Public 5073 // License along with the GNU C Library; if not, see 5074 // <https://www.gnu.org/licenses/>. 5075 5076 // Arch-specific definitions. Each architecture must define the following 5077 // macros to define the expected sizes of pthread data types: 5078 // 5079 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 5080 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 5081 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 5082 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 5083 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 5084 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 5085 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 5086 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 5087 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 5088 // 5089 // The additional macro defines any constraint for the lock alignment 5090 // inside the thread structures: 5091 // 5092 // __LOCK_ALIGNMENT - for internal lock/futex usage. 5093 // 5094 // Same idea but for the once locking primitive: 5095 // 5096 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 5097 5098 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5099 // This file is part of the GNU C Library. 5100 // 5101 // The GNU C Library is free software; you can redistribute it and/or 5102 // modify it under the terms of the GNU Lesser General Public 5103 // License as published by the Free Software Foundation; either 5104 // version 2.1 of the License, or (at your option) any later version. 5105 // 5106 // The GNU C Library is distributed in the hope that it will be useful, 5107 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5108 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5109 // Lesser General Public License for more details. 5110 // 5111 // You should have received a copy of the GNU Lesser General Public 5112 // License along with the GNU C Library; if not, see 5113 // <https://www.gnu.org/licenses/>. 5114 5115 // Determine the wordsize from the preprocessor defines. 5116 5117 // Both x86-64 and x32 use the 64-bit system call interface. 5118 5119 // Monotonically increasing wide counters (at least 62 bits). 5120 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5121 // This file is part of the GNU C Library. 5122 // 5123 // The GNU C Library is free software; you can redistribute it and/or 5124 // modify it under the terms of the GNU Lesser General Public 5125 // License as published by the Free Software Foundation; either 5126 // version 2.1 of the License, or (at your option) any later version. 5127 // 5128 // The GNU C Library is distributed in the hope that it will be useful, 5129 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5130 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5131 // Lesser General Public License for more details. 5132 // 5133 // You should have received a copy of the GNU Lesser General Public 5134 // License along with the GNU C Library; if not, see 5135 // <https://www.gnu.org/licenses/>. 5136 5137 // Counter that is monotonically increasing (by less than 2**31 per 5138 // increment), with a single writer, and an arbitrary number of 5139 // readers. 5140 type T__atomic_wide_counter = struct{ F__value64 uint64 } /* atomic_wide_counter.h:33:3 */ 5141 5142 // Common definition of pthread_mutex_t. 5143 5144 type S__pthread_internal_list = struct { 5145 F__prev uintptr 5146 F__next uintptr 5147 } /* thread-shared-types.h:51:9 */ 5148 5149 // Common definition of pthread_mutex_t. 5150 5151 type T__pthread_list_t = S__pthread_internal_list /* thread-shared-types.h:55:3 */ 5152 5153 type S__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:57:9 */ 5154 5155 type T__pthread_slist_t = S__pthread_internal_slist /* thread-shared-types.h:60:3 */ 5156 5157 // Arch-specific mutex definitions. A generic implementation is provided 5158 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 5159 // can override it by defining: 5160 // 5161 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 5162 // definition). It should contains at least the internal members 5163 // defined in the generic version. 5164 // 5165 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 5166 // atomic operations. 5167 // 5168 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 5169 // It should initialize the mutex internal flag. 5170 5171 // x86 internal mutex struct definitions. 5172 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5173 // This file is part of the GNU C Library. 5174 // 5175 // The GNU C Library is free software; you can redistribute it and/or 5176 // modify it under the terms of the GNU Lesser General Public 5177 // License as published by the Free Software Foundation; either 5178 // version 2.1 of the License, or (at your option) any later version. 5179 // 5180 // The GNU C Library is distributed in the hope that it will be useful, 5181 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5182 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5183 // Lesser General Public License for more details. 5184 // 5185 // You should have received a copy of the GNU Lesser General Public 5186 // License along with the GNU C Library; if not, see 5187 // <http://www.gnu.org/licenses/>. 5188 5189 type S__pthread_mutex_s = struct { 5190 F__lock int32 5191 F__count uint32 5192 F__owner int32 5193 F__nusers uint32 5194 F__kind int32 5195 F__spins int16 5196 F__elision int16 5197 F__list T__pthread_list_t 5198 } /* struct_mutex.h:22:1 */ 5199 5200 // Arch-sepecific read-write lock definitions. A generic implementation is 5201 // provided by struct_rwlock.h. If required, an architecture can override it 5202 // by defining: 5203 // 5204 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 5205 // It should contain at least the internal members defined in the 5206 // generic version. 5207 // 5208 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 5209 // It should initialize the rwlock internal type. 5210 5211 // x86 internal rwlock struct definitions. 5212 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5213 // 5214 // This file is part of the GNU C Library. 5215 // 5216 // The GNU C Library is free software; you can redistribute it and/or 5217 // modify it under the terms of the GNU Lesser General Public 5218 // License as published by the Free Software Foundation; either 5219 // version 2.1 of the License, or (at your option) any later version. 5220 // 5221 // The GNU C Library is distributed in the hope that it will be useful, 5222 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5223 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5224 // Lesser General Public License for more details. 5225 // 5226 // You should have received a copy of the GNU Lesser General Public 5227 // License along with the GNU C Library; if not, see 5228 // <http://www.gnu.org/licenses/>. 5229 5230 type S__pthread_rwlock_arch_t = struct { 5231 F__readers uint32 5232 F__writers uint32 5233 F__wrphase_futex uint32 5234 F__writers_futex uint32 5235 F__pad3 uint32 5236 F__pad4 uint32 5237 F__cur_writer int32 5238 F__shared int32 5239 F__rwelision int8 5240 F__pad1 [7]uint8 5241 F__pad2 uint32 5242 F__flags uint32 5243 } /* struct_rwlock.h:23:1 */ 5244 5245 // Common definition of pthread_cond_t. 5246 5247 type S__pthread_cond_s = struct { 5248 F__wseq T__atomic_wide_counter 5249 F__g1_start T__atomic_wide_counter 5250 F__g_refs [2]uint32 5251 F__g_size [2]uint32 5252 F__g1_orig_size uint32 5253 F__wrefs uint32 5254 F__g_signals [2]uint32 5255 } /* thread-shared-types.h:94:1 */ 5256 5257 type T__tss_t = uint32 /* thread-shared-types.h:105:22 */ 5258 type T__thrd_t = uint32 /* thread-shared-types.h:106:27 */ 5259 5260 type T__once_flag = struct{ F__data int32 } /* thread-shared-types.h:111:3 */ 5261 5262 // Thread identifiers. The structure of the attribute type is not 5263 // exposed on purpose. 5264 type Tpthread_t = uint32 /* pthreadtypes.h:27:27 */ 5265 5266 // Data structures for mutex handling. The structure of the attribute 5267 // type is not exposed on purpose. 5268 type Tpthread_mutexattr_t = struct { 5269 F__ccgo_pad1 [0]uint32 5270 F__size [4]int8 5271 } /* pthreadtypes.h:36:3 */ 5272 5273 // Data structure for condition variable handling. The structure of 5274 // the attribute type is not exposed on purpose. 5275 type Tpthread_condattr_t = struct { 5276 F__ccgo_pad1 [0]uint32 5277 F__size [4]int8 5278 } /* pthreadtypes.h:45:3 */ 5279 5280 // Keys for thread-specific data 5281 type Tpthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 5282 5283 // Once-only execution 5284 type Tpthread_once_t = int32 /* pthreadtypes.h:53:30 */ 5285 5286 type Spthread_attr_t = struct { 5287 F__ccgo_pad1 [0]uint32 5288 F__size [56]int8 5289 } /* pthreadtypes.h:56:1 */ 5290 5291 type Tpthread_attr_t = Spthread_attr_t /* pthreadtypes.h:62:30 */ 5292 5293 type Tpthread_mutex_t = struct { 5294 F__data S__pthread_mutex_s 5295 F__ccgo_pad1 [8]byte 5296 } /* pthreadtypes.h:72:3 */ 5297 5298 type Tpthread_cond_t = struct{ F__data S__pthread_cond_s } /* pthreadtypes.h:80:3 */ 5299 5300 // Data structure for reader-writer lock variable handling. The 5301 // structure of the attribute type is deliberately not exposed. 5302 type Tpthread_rwlock_t = struct { 5303 F__data S__pthread_rwlock_arch_t 5304 F__ccgo_pad1 [8]byte 5305 } /* pthreadtypes.h:91:3 */ 5306 5307 type Tpthread_rwlockattr_t = struct { 5308 F__ccgo_pad1 [0]uint32 5309 F__size [8]int8 5310 } /* pthreadtypes.h:97:3 */ 5311 5312 // POSIX spinlock data type. 5313 type Tpthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 5314 5315 // POSIX barriers data type. The structure of the type is 5316 // deliberately not exposed. 5317 type Tpthread_barrier_t = struct { 5318 F__ccgo_pad1 [0]uint32 5319 F__size [32]int8 5320 } /* pthreadtypes.h:112:3 */ 5321 5322 type Tpthread_barrierattr_t = struct { 5323 F__ccgo_pad1 [0]uint32 5324 F__size [4]int8 5325 } /* pthreadtypes.h:118:3 */ 5326 5327 // Reentrant versions of the `random' family of functions. 5328 // These functions all use the following data structure to contain 5329 // state, rather than global state variables. 5330 5331 type Srandom_data = struct { 5332 Ffptr uintptr 5333 Frptr uintptr 5334 Fstate uintptr 5335 Frand_type int32 5336 Frand_deg int32 5337 Frand_sep int32 5338 Fend_ptr uintptr 5339 } /* stdlib.h:424:1 */ 5340 5341 // Data structure for communication with thread safe versions. This 5342 // type is to be regarded as opaque. It's only exported because users 5343 // have to allocate objects of this type. 5344 type Sdrand48_data = struct { 5345 F__x [3]uint16 5346 F__old_x [3]uint16 5347 F__c uint16 5348 F__init uint16 5349 F__a uint64 5350 } /* stdlib.h:491:1 */ 5351 5352 // Shorthand for type of comparison functions. 5353 type T__compar_fn_t = uintptr /* stdlib.h:816:13 */ 5354 5355 type Tcomparison_fn_t = T__compar_fn_t /* stdlib.h:819:23 */ 5356 type T__compar_d_fn_t = uintptr /* stdlib.h:823:13 */ 5357 5358 // Macros to make boolean values more obvious. The #ifndef is to pacify 5359 // compiler warnings in environments where these macros are defined elsewhere. 5360 // Unfortunately, there is no way to do the same for the typedef. 5361 5362 type TBOOL = int32 /* pcre2_internal.h:67:13 */ 5363 5364 // Valgrind (memcheck) support 5365 5366 // -ftrivial-auto-var-init support supports initializing all local variables 5367 // to avoid some classes of bug, but this can cause an unacceptable slowdown 5368 // for large on-stack arrays in hot functions. This macro lets us annotate 5369 // such arrays. 5370 5371 // Older versions of MSVC lack snprintf(). This define allows for 5372 // warning/error-free compilation and testing with MSVC compilers back to at least 5373 // MSVC 10/2010. Except for VC6 (which is missing some fundamentals and fails). 5374 5375 // When compiling a DLL for Windows, the exported symbols have to be declared 5376 // using some MS magic. I found some useful information on this web page: 5377 // http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the 5378 // information there, using __declspec(dllexport) without "extern" we have a 5379 // definition; with "extern" we have a declaration. The settings here override the 5380 // setting in pcre2.h (which is included below); it defines only PCRE2_EXP_DECL, 5381 // which is all that is needed for applications (they just import the symbols). We 5382 // use: 5383 // 5384 // PCRE2_EXP_DECL for declarations 5385 // PCRE2_EXP_DEFN for definitions 5386 // 5387 // The reason for wrapping this in #ifndef PCRE2_EXP_DECL is so that pcre2test, 5388 // which is an application, but needs to import this file in order to "peek" at 5389 // internals, can #include pcre2.h first to get an application's-eye view. 5390 // 5391 // In principle, people compiling for non-Windows, non-Unix-like (i.e. uncommon, 5392 // special-purpose environments) might want to stick other stuff in front of 5393 // exported symbols. That's why, in the non-Windows case, we set PCRE2_EXP_DEFN 5394 // only if it is not already set. 5395 5396 // Include the public PCRE2 header and the definitions of UCP character 5397 // property values. This must follow the setting of PCRE2_EXP_DECL above. 5398 5399 // ************************************************ 5400 // 5401 // Perl-Compatible Regular Expressions * 5402 // 5403 5404 // This is the public header file for the PCRE library, second API, to be 5405 // #included by applications that call PCRE2 functions. 5406 // 5407 // Copyright (c) 2016-2021 University of Cambridge 5408 // 5409 // ----------------------------------------------------------------------------- 5410 // Redistribution and use in source and binary forms, with or without 5411 // modification, are permitted provided that the following conditions are met: 5412 // 5413 // * Redistributions of source code must retain the above copyright notice, 5414 // this list of conditions and the following disclaimer. 5415 // 5416 // * Redistributions in binary form must reproduce the above copyright 5417 // notice, this list of conditions and the following disclaimer in the 5418 // documentation and/or other materials provided with the distribution. 5419 // 5420 // * Neither the name of the University of Cambridge nor the names of its 5421 // contributors may be used to endorse or promote products derived from 5422 // this software without specific prior written permission. 5423 // 5424 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 5425 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 5426 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 5427 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 5428 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 5429 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 5430 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 5431 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 5432 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 5433 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 5434 // POSSIBILITY OF SUCH DAMAGE. 5435 // ----------------------------------------------------------------------------- 5436 5437 // The current PCRE version information. 5438 5439 // When an application links to a PCRE DLL in Windows, the symbols that are 5440 // imported have to be identified as such. When building PCRE2, the appropriate 5441 // export setting is defined in pcre2_internal.h, which includes this file. So we 5442 // don't change existing definitions of PCRE2_EXP_DECL. 5443 5444 // By default, we use the standard "extern" declarations. 5445 5446 // When compiling with the MSVC compiler, it is sometimes necessary to include 5447 // a "calling convention" before exported function names. (This is secondhand 5448 // information; I know nothing about MSVC myself). For example, something like 5449 // 5450 // void __cdecl function(....) 5451 // 5452 // might be needed. In order so make this easy, all the exported functions have 5453 // PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not 5454 // set, we ensure here that it has no effect. 5455 5456 // Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and 5457 // uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do 5458 // not have stdint.h, which is why we use inttypes.h, which according to the C 5459 // standard is a superset of stdint.h. If inttypes.h is not available the build 5460 // will break and the relevant values must be provided by some other means. 5461 5462 // Copyright (C) 1992-2021 Free Software Foundation, Inc. 5463 // 5464 // This file is part of GCC. 5465 // 5466 // GCC is free software; you can redistribute it and/or modify it under 5467 // the terms of the GNU General Public License as published by the Free 5468 // Software Foundation; either version 3, or (at your option) any later 5469 // version. 5470 // 5471 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY 5472 // WARRANTY; without even the implied warranty of MERCHANTABILITY or 5473 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 5474 // for more details. 5475 // 5476 // Under Section 7 of GPL version 3, you are granted additional 5477 // permissions described in the GCC Runtime Library Exception, version 5478 // 3.1, as published by the Free Software Foundation. 5479 // 5480 // You should have received a copy of the GNU General Public License and 5481 // a copy of the GCC Runtime Library Exception along with this program; 5482 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 5483 // <http://www.gnu.org/licenses/>. 5484 5485 // This administrivia gets added to the beginning of limits.h 5486 // if the system has its own version of limits.h. 5487 5488 // We use _GCC_LIMITS_H_ because we want this not to match 5489 // any macros that the system's limits.h uses for its own purposes. 5490 5491 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5492 // Copyright The GNU Toolchain Authors. 5493 // This file is part of the GNU C Library. 5494 // 5495 // The GNU C Library is free software; you can redistribute it and/or 5496 // modify it under the terms of the GNU Lesser General Public 5497 // License as published by the Free Software Foundation; either 5498 // version 2.1 of the License, or (at your option) any later version. 5499 // 5500 // The GNU C Library is distributed in the hope that it will be useful, 5501 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5502 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5503 // Lesser General Public License for more details. 5504 // 5505 // You should have received a copy of the GNU Lesser General Public 5506 // License along with the GNU C Library; if not, see 5507 // <https://www.gnu.org/licenses/>. 5508 5509 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 5510 5511 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5512 // This file is part of the GNU C Library. 5513 // 5514 // The GNU C Library is free software; you can redistribute it and/or 5515 // modify it under the terms of the GNU Lesser General Public 5516 // License as published by the Free Software Foundation; either 5517 // version 2.1 of the License, or (at your option) any later version. 5518 // 5519 // The GNU C Library is distributed in the hope that it will be useful, 5520 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5521 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5522 // Lesser General Public License for more details. 5523 // 5524 // You should have received a copy of the GNU Lesser General Public 5525 // License along with the GNU C Library; if not, see 5526 // <https://www.gnu.org/licenses/>. 5527 5528 // ISO C99: 7.8 Format conversion of integer types <inttypes.h> 5529 5530 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5531 // This file is part of the GNU C Library. 5532 // 5533 // The GNU C Library is free software; you can redistribute it and/or 5534 // modify it under the terms of the GNU Lesser General Public 5535 // License as published by the Free Software Foundation; either 5536 // version 2.1 of the License, or (at your option) any later version. 5537 // 5538 // The GNU C Library is distributed in the hope that it will be useful, 5539 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5540 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5541 // Lesser General Public License for more details. 5542 // 5543 // You should have received a copy of the GNU Lesser General Public 5544 // License along with the GNU C Library; if not, see 5545 // <https://www.gnu.org/licenses/>. 5546 5547 // Get the type definitions. 5548 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5549 // This file is part of the GNU C Library. 5550 // 5551 // The GNU C Library is free software; you can redistribute it and/or 5552 // modify it under the terms of the GNU Lesser General Public 5553 // License as published by the Free Software Foundation; either 5554 // version 2.1 of the License, or (at your option) any later version. 5555 // 5556 // The GNU C Library is distributed in the hope that it will be useful, 5557 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5558 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5559 // Lesser General Public License for more details. 5560 // 5561 // You should have received a copy of the GNU Lesser General Public 5562 // License along with the GNU C Library; if not, see 5563 // <https://www.gnu.org/licenses/>. 5564 5565 // ISO C99: 7.18 Integer types <stdint.h> 5566 5567 // Handle feature test macros at the start of a header. 5568 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5569 // This file is part of the GNU C Library. 5570 // 5571 // The GNU C Library is free software; you can redistribute it and/or 5572 // modify it under the terms of the GNU Lesser General Public 5573 // License as published by the Free Software Foundation; either 5574 // version 2.1 of the License, or (at your option) any later version. 5575 // 5576 // The GNU C Library is distributed in the hope that it will be useful, 5577 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5578 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5579 // Lesser General Public License for more details. 5580 // 5581 // You should have received a copy of the GNU Lesser General Public 5582 // License along with the GNU C Library; if not, see 5583 // <https://www.gnu.org/licenses/>. 5584 5585 // This header is internal to glibc and should not be included outside 5586 // of glibc headers. Headers including it must define 5587 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 5588 // cannot have multiple include guards because ISO C feature test 5589 // macros depend on the definition of the macro when an affected 5590 // header is included, not when the first system header is 5591 // included. 5592 5593 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5594 // This file is part of the GNU C Library. 5595 // 5596 // The GNU C Library is free software; you can redistribute it and/or 5597 // modify it under the terms of the GNU Lesser General Public 5598 // License as published by the Free Software Foundation; either 5599 // version 2.1 of the License, or (at your option) any later version. 5600 // 5601 // The GNU C Library is distributed in the hope that it will be useful, 5602 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5603 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5604 // Lesser General Public License for more details. 5605 // 5606 // You should have received a copy of the GNU Lesser General Public 5607 // License along with the GNU C Library; if not, see 5608 // <https://www.gnu.org/licenses/>. 5609 5610 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 5611 // macro. 5612 5613 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 5614 // macro. Most but not all symbols enabled by that macro in TS 5615 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 5616 // Annex F still require a new feature test macro 5617 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 5618 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 5619 // 18661-1 are not included in C2X (and thus should depend on 5620 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 5621 // enabled). 5622 // 5623 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 5624 // 18661-1 not included in C2X. 5625 // 5626 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 5627 // 18661-1 that are also included in C2X (with no feature test macro 5628 // required in C2X). 5629 // 5630 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 5631 // that are included in C2X but conditional on 5632 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 5633 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 5634 // 18661-1.) 5635 5636 // ISO/IEC TS 18661-4:2015 defines the 5637 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 5638 // functions, the symbols from this TS are enabled unconditionally in 5639 // C2X. 5640 5641 // ISO/IEC TS 18661-3:2015 defines the 5642 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 5643 // bits/types.h -- definitions of __*_t types underlying *_t types. 5644 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5645 // This file is part of the GNU C Library. 5646 // 5647 // The GNU C Library is free software; you can redistribute it and/or 5648 // modify it under the terms of the GNU Lesser General Public 5649 // License as published by the Free Software Foundation; either 5650 // version 2.1 of the License, or (at your option) any later version. 5651 // 5652 // The GNU C Library is distributed in the hope that it will be useful, 5653 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5654 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5655 // Lesser General Public License for more details. 5656 // 5657 // You should have received a copy of the GNU Lesser General Public 5658 // License along with the GNU C Library; if not, see 5659 // <https://www.gnu.org/licenses/>. 5660 5661 // Never include this file directly; use <sys/types.h> instead. 5662 5663 // wchar_t type related definitions. 5664 // Copyright (C) 2000-2022 Free Software Foundation, Inc. 5665 // This file is part of the GNU C Library. 5666 // 5667 // The GNU C Library is free software; you can redistribute it and/or 5668 // modify it under the terms of the GNU Lesser General Public 5669 // License as published by the Free Software Foundation; either 5670 // version 2.1 of the License, or (at your option) any later version. 5671 // 5672 // The GNU C Library is distributed in the hope that it will be useful, 5673 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5674 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5675 // Lesser General Public License for more details. 5676 // 5677 // You should have received a copy of the GNU Lesser General Public 5678 // License along with the GNU C Library; if not, see 5679 // <https://www.gnu.org/licenses/>. 5680 5681 // The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ 5682 // are not defined, give the right value and type as long as both int 5683 // and wchar_t are 32-bit types. Adding L'\0' to a constant value 5684 // ensures that the type is correct; it is necessary to use (L'\0' + 5685 // 0) rather than just L'\0' so that the type in C++ is the promoted 5686 // version of wchar_t rather than the distinct wchar_t type itself. 5687 // Because wchar_t in preprocessor #if expressions is treated as 5688 // intmax_t or uintmax_t, the expression (L'\0' - 1) would have the 5689 // wrong value for WCHAR_MAX in such expressions and so cannot be used 5690 // to define __WCHAR_MAX in the unsigned case. 5691 5692 // Determine the wordsize from the preprocessor defines. 5693 5694 // Both x86-64 and x32 use the 64-bit system call interface. 5695 5696 // Exact integral types. 5697 5698 // Signed. 5699 // Define intN_t types. 5700 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5701 // This file is part of the GNU C Library. 5702 // 5703 // The GNU C Library is free software; you can redistribute it and/or 5704 // modify it under the terms of the GNU Lesser General Public 5705 // License as published by the Free Software Foundation; either 5706 // version 2.1 of the License, or (at your option) any later version. 5707 // 5708 // The GNU C Library is distributed in the hope that it will be useful, 5709 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5710 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5711 // Lesser General Public License for more details. 5712 // 5713 // You should have received a copy of the GNU Lesser General Public 5714 // License along with the GNU C Library; if not, see 5715 // <https://www.gnu.org/licenses/>. 5716 5717 // Unsigned. 5718 // Define uintN_t types. 5719 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5720 // This file is part of the GNU C Library. 5721 // 5722 // The GNU C Library is free software; you can redistribute it and/or 5723 // modify it under the terms of the GNU Lesser General Public 5724 // License as published by the Free Software Foundation; either 5725 // version 2.1 of the License, or (at your option) any later version. 5726 // 5727 // The GNU C Library is distributed in the hope that it will be useful, 5728 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5729 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5730 // Lesser General Public License for more details. 5731 // 5732 // You should have received a copy of the GNU Lesser General Public 5733 // License along with the GNU C Library; if not, see 5734 // <https://www.gnu.org/licenses/>. 5735 5736 // bits/types.h -- definitions of __*_t types underlying *_t types. 5737 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5738 // This file is part of the GNU C Library. 5739 // 5740 // The GNU C Library is free software; you can redistribute it and/or 5741 // modify it under the terms of the GNU Lesser General Public 5742 // License as published by the Free Software Foundation; either 5743 // version 2.1 of the License, or (at your option) any later version. 5744 // 5745 // The GNU C Library is distributed in the hope that it will be useful, 5746 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5747 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5748 // Lesser General Public License for more details. 5749 // 5750 // You should have received a copy of the GNU Lesser General Public 5751 // License along with the GNU C Library; if not, see 5752 // <https://www.gnu.org/licenses/>. 5753 5754 // Never include this file directly; use <sys/types.h> instead. 5755 5756 type Tuint8_t = T__uint8_t /* stdint-uintn.h:24:19 */ 5757 type Tuint16_t = T__uint16_t /* stdint-uintn.h:25:20 */ 5758 type Tuint32_t = T__uint32_t /* stdint-uintn.h:26:20 */ 5759 type Tuint64_t = T__uint64_t /* stdint-uintn.h:27:20 */ 5760 5761 // Small types. 5762 5763 // Signed. 5764 type Tint_least8_t = T__int_least8_t /* stdint.h:43:24 */ 5765 type Tint_least16_t = T__int_least16_t /* stdint.h:44:25 */ 5766 type Tint_least32_t = T__int_least32_t /* stdint.h:45:25 */ 5767 type Tint_least64_t = T__int_least64_t /* stdint.h:46:25 */ 5768 5769 // Unsigned. 5770 type Tuint_least8_t = T__uint_least8_t /* stdint.h:49:25 */ 5771 type Tuint_least16_t = T__uint_least16_t /* stdint.h:50:26 */ 5772 type Tuint_least32_t = T__uint_least32_t /* stdint.h:51:26 */ 5773 type Tuint_least64_t = T__uint_least64_t /* stdint.h:52:26 */ 5774 5775 // Fast types. 5776 5777 // Signed. 5778 type Tint_fast8_t = int8 /* stdint.h:58:22 */ 5779 type Tint_fast16_t = int32 /* stdint.h:60:19 */ 5780 type Tint_fast32_t = int32 /* stdint.h:61:19 */ 5781 type Tint_fast64_t = int32 /* stdint.h:62:19 */ 5782 5783 // Unsigned. 5784 type Tuint_fast8_t = uint8 /* stdint.h:71:24 */ 5785 type Tuint_fast16_t = uint32 /* stdint.h:73:27 */ 5786 type Tuint_fast32_t = uint32 /* stdint.h:74:27 */ 5787 type Tuint_fast64_t = uint32 /* stdint.h:75:27 */ 5788 5789 // Types for `void *' pointers. 5790 type Tintptr_t = int32 /* stdint.h:87:19 */ 5791 type Tuintptr_t = uint32 /* stdint.h:90:27 */ 5792 5793 // Largest integral types. 5794 type Tintmax_t = T__intmax_t /* stdint.h:101:21 */ 5795 type Tuintmax_t = T__uintmax_t /* stdint.h:102:22 */ 5796 5797 // Limits of integral types. 5798 5799 // Minimum of signed integral types. 5800 // Maximum of signed integral types. 5801 5802 // Maximum of unsigned integral types. 5803 5804 // Minimum of signed integral types having a minimum size. 5805 // Maximum of signed integral types having a minimum size. 5806 5807 // Maximum of unsigned integral types having a minimum size. 5808 5809 // Minimum of fast signed integral types having a minimum size. 5810 // Maximum of fast signed integral types having a minimum size. 5811 5812 // Maximum of fast unsigned integral types having a minimum size. 5813 5814 // Values to test for integral types holding `void *' pointer. 5815 5816 // Minimum for largest signed integral type. 5817 // Maximum for largest signed integral type. 5818 5819 // Maximum for largest unsigned integral type. 5820 5821 // Limits of other integer types. 5822 5823 // Limits of `ptrdiff_t' type. 5824 5825 // Limits of `sig_atomic_t'. 5826 5827 // Limit of `size_t' type. 5828 5829 // Limits of `wchar_t'. 5830 // These constants might also be defined in <wchar.h>. 5831 5832 // Limits of `wint_t'. 5833 5834 // Signed. 5835 5836 // Unsigned. 5837 5838 // Maximal type. 5839 5840 // Get a definition for wchar_t. But we must not define wchar_t itself. 5841 type T__gwchar_t = int32 /* inttypes.h:34:24 */ 5842 5843 // Macros for printing format specifiers. 5844 5845 // Decimal notation. 5846 5847 // Octal notation. 5848 5849 // Unsigned integers. 5850 5851 // lowercase hexadecimal notation. 5852 5853 // UPPERCASE hexadecimal notation. 5854 5855 // Macros for printing `intmax_t' and `uintmax_t'. 5856 5857 // Macros for printing `intptr_t' and `uintptr_t'. 5858 5859 // Macros for scanning format specifiers. 5860 5861 // Signed decimal notation. 5862 5863 // Signed decimal notation. 5864 5865 // Unsigned decimal notation. 5866 5867 // Octal notation. 5868 5869 // Hexadecimal notation. 5870 5871 // Macros for scanning `intmax_t' and `uintmax_t'. 5872 5873 // Macros for scaning `intptr_t' and `uintptr_t'. 5874 5875 // We have to define the `uintmax_t' type using `ldiv_t'. 5876 type Timaxdiv_t = struct { 5877 Fquot int32 5878 Frem int32 5879 } /* inttypes.h:275:5 */ 5880 5881 // Allow for C++ users compiling this directly. 5882 5883 // The following option bits can be passed to pcre2_compile(), pcre2_match(), 5884 // or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it 5885 // is passed. Put these bits at the most significant end of the options word so 5886 // others can be added next to them 5887 5888 // The following option bits can be passed only to pcre2_compile(). However, 5889 // they may affect compilation, JIT compilation, and/or interpretive execution. 5890 // The following tags indicate which: 5891 // 5892 // C alters what is compiled by pcre2_compile() 5893 // J alters what is compiled by pcre2_jit_compile() 5894 // M is inspected during pcre2_match() execution 5895 // D is inspected during pcre2_dfa_match() execution 5896 5897 // An additional compile options word is available in the compile context. 5898 5899 // These are for pcre2_jit_compile(). 5900 5901 // These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and 5902 // pcre2_substitute(). Some are allowed only for one of the functions, and in 5903 // these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and 5904 // PCRE2_NO_UTF_CHECK can also be passed to these functions (though 5905 // pcre2_jit_match() ignores the latter since it bypasses all sanity checks). 5906 5907 // Options for pcre2_pattern_convert(). 5908 5909 // Newline and \R settings, for use in compile contexts. The newline values 5910 // must be kept in step with values set in config.h and both sets must all be 5911 // greater than zero. 5912 5913 // Error codes for pcre2_compile(). Some of these are also used by 5914 // pcre2_pattern_convert(). 5915 5916 // Error 159 is obsolete and should now never occur 5917 5918 // "Expected" matching error codes: no match and partial match. 5919 5920 // Error codes for UTF-8 validity checks 5921 5922 // Error codes for UTF-16 validity checks 5923 5924 // Error codes for UTF-32 validity checks 5925 5926 // Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction 5927 // functions, context functions, and serializing functions. They are in numerical 5928 // order. Originally they were in alphabetical order too, but now that PCRE2 is 5929 // released, the numbers must not be changed. 5930 5931 // Request types for pcre2_pattern_info() 5932 5933 // Request types for pcre2_config(). 5934 5935 // Types for code units in patterns and subject strings. 5936 5937 type TPCRE2_UCHAR8 = Tuint8_t /* pcre2.h:458:18 */ 5938 type TPCRE2_UCHAR16 = Tuint16_t /* pcre2.h:459:18 */ 5939 type TPCRE2_UCHAR32 = Tuint32_t /* pcre2.h:460:18 */ 5940 5941 type TPCRE2_SPTR8 = uintptr /* pcre2.h:462:29 */ 5942 type TPCRE2_SPTR16 = uintptr /* pcre2.h:463:29 */ 5943 type TPCRE2_SPTR32 = uintptr /* pcre2.h:464:29 */ 5944 5945 // The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, 5946 // including pattern offsets for errors and subject offsets after a match. We 5947 // define special values to indicate zero-terminated strings and unset offsets in 5948 // the offset vector (ovector). 5949 5950 // Generic types for opaque structures and JIT callback functions. These 5951 // declarations are defined in a macro that is expanded for each width later. 5952 5953 // The structures for passing out data via callout functions. We use structures 5954 // so that new fields can be added on the end in future versions, without changing 5955 // the API of the function, thereby allowing old clients to work without 5956 // modification. Define the generic versions in a macro; the width-specific 5957 // versions are generated from this macro below. 5958 5959 // Flags for the callout_flags field. These are cleared after a callout. 5960 5961 // List the generic forms of all other functions in macros, which will be 5962 // expanded for each width below. Start with functions that give general 5963 // information. 5964 5965 // Functions for manipulating contexts. 5966 5967 // Functions concerned with compiling a pattern to PCRE internal code. 5968 5969 // Functions that give information about a compiled pattern. 5970 5971 // Functions for running a match and inspecting the result. 5972 5973 // Convenience functions for handling matched substrings. 5974 5975 // Functions for serializing / deserializing compiled patterns. 5976 5977 // Convenience function for match + substitute. 5978 5979 // Functions for converting pattern source strings. 5980 5981 // Functions for JIT processing 5982 5983 // Other miscellaneous functions. 5984 5985 // Define macros that generate width-specific names from generic versions. The 5986 // three-level macro scheme is necessary to get the macros expanded when we want 5987 // them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for 5988 // generating three versions of everything below. After that, PCRE2_SUFFIX will be 5989 // re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as 5990 // pcre2_compile are called by application code. 5991 5992 // Data types 5993 5994 // Data blocks 5995 5996 // Functions: the complete list in alphabetical order 5997 5998 // Keep this old function name for backwards compatibility 5999 6000 // Keep this obsolete function for backwards compatibility: it is now a noop. 6001 6002 // Now generate all three sets of width-specific structures and function 6003 // prototypes. 6004 6005 type Spcre2_real_general_context_8 = struct{ Fmemctl Tpcre2_memctl } /* pcre2.h:935:1 */ 6006 6007 type Tpcre2_general_context_8 = Spcre2_real_general_context_8 /* pcre2.h:935:1 */ 6008 type Spcre2_real_compile_context_8 = struct { 6009 Fmemctl Tpcre2_memctl 6010 Fstack_guard uintptr 6011 Fstack_guard_data uintptr 6012 Ftables uintptr 6013 Fmax_pattern_length Tsize_t 6014 Fbsr_convention Tuint16_t 6015 Fnewline_convention Tuint16_t 6016 Fparens_nest_limit Tuint32_t 6017 Fextra_options Tuint32_t 6018 } /* pcre2.h:935:1 */ 6019 6020 type Tpcre2_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2.h:935:1 */ 6021 type Spcre2_real_match_context_8 = struct { 6022 Fmemctl Tpcre2_memctl 6023 Fcallout uintptr 6024 Fcallout_data uintptr 6025 Fsubstitute_callout uintptr 6026 Fsubstitute_callout_data uintptr 6027 Foffset_limit Tsize_t 6028 Fheap_limit Tuint32_t 6029 Fmatch_limit Tuint32_t 6030 Fdepth_limit Tuint32_t 6031 } /* pcre2.h:935:1 */ 6032 6033 type Tpcre2_match_context_8 = Spcre2_real_match_context_8 /* pcre2.h:935:1 */ 6034 type Spcre2_real_convert_context_8 = struct { 6035 Fmemctl Tpcre2_memctl 6036 Fglob_separator Tuint32_t 6037 Fglob_escape Tuint32_t 6038 } /* pcre2.h:935:1 */ 6039 6040 type Tpcre2_convert_context_8 = Spcre2_real_convert_context_8 /* pcre2.h:935:1 */ 6041 type Spcre2_real_code_8 = struct { 6042 Fmemctl Tpcre2_memctl 6043 Ftables uintptr 6044 Fexecutable_jit uintptr 6045 Fstart_bitmap [32]Tuint8_t 6046 Fblocksize Tsize_t 6047 Fmagic_number Tuint32_t 6048 Fcompile_options Tuint32_t 6049 Foverall_options Tuint32_t 6050 Fextra_options Tuint32_t 6051 Fflags Tuint32_t 6052 Flimit_heap Tuint32_t 6053 Flimit_match Tuint32_t 6054 Flimit_depth Tuint32_t 6055 Ffirst_codeunit Tuint32_t 6056 Flast_codeunit Tuint32_t 6057 Fbsr_convention Tuint16_t 6058 Fnewline_convention Tuint16_t 6059 Fmax_lookbehind Tuint16_t 6060 Fminlength Tuint16_t 6061 Ftop_bracket Tuint16_t 6062 Ftop_backref Tuint16_t 6063 Fname_entry_size Tuint16_t 6064 Fname_count Tuint16_t 6065 } /* pcre2.h:935:1 */ 6066 6067 type Tpcre2_code_8 = Spcre2_real_code_8 /* pcre2.h:935:1 */ 6068 type Spcre2_real_match_data_8 = struct { 6069 Fmemctl Tpcre2_memctl 6070 Fcode uintptr 6071 Fsubject TPCRE2_SPTR8 6072 Fmark TPCRE2_SPTR8 6073 Fleftchar Tsize_t 6074 Frightchar Tsize_t 6075 Fstartchar Tsize_t 6076 Fmatchedby Tuint8_t 6077 Fflags Tuint8_t 6078 Foveccount Tuint16_t 6079 Frc int32 6080 Fovector [131072]Tsize_t 6081 } /* pcre2.h:935:1 */ 6082 6083 type Tpcre2_match_data_8 = Spcre2_real_match_data_8 /* pcre2.h:935:1 */ 6084 type Spcre2_real_jit_stack_8 = struct { 6085 Fmemctl Tpcre2_memctl 6086 Fstack uintptr 6087 } /* pcre2.h:935:1 */ 6088 6089 type Tpcre2_jit_stack_8 = Spcre2_real_jit_stack_8 /* pcre2.h:935:1 */ 6090 type Tpcre2_jit_callback_8 = uintptr /* pcre2.h:935:1 */ 6091 type Spcre2_callout_block_8 = struct { 6092 Fversion Tuint32_t 6093 Fcallout_number Tuint32_t 6094 Fcapture_top Tuint32_t 6095 Fcapture_last Tuint32_t 6096 Foffset_vector uintptr 6097 Fmark TPCRE2_SPTR8 6098 Fsubject TPCRE2_SPTR8 6099 Fsubject_length Tsize_t 6100 Fstart_match Tsize_t 6101 Fcurrent_position Tsize_t 6102 Fpattern_position Tsize_t 6103 Fnext_item_length Tsize_t 6104 Fcallout_string_offset Tsize_t 6105 Fcallout_string_length Tsize_t 6106 Fcallout_string TPCRE2_SPTR8 6107 Fcallout_flags Tuint32_t 6108 } /* pcre2.h:935:1 */ 6109 6110 type Tpcre2_callout_block_8 = Spcre2_callout_block_8 /* pcre2.h:935:1 */ 6111 type Spcre2_callout_enumerate_block_8 = struct { 6112 Fversion Tuint32_t 6113 Fpattern_position Tsize_t 6114 Fnext_item_length Tsize_t 6115 Fcallout_number Tuint32_t 6116 Fcallout_string_offset Tsize_t 6117 Fcallout_string_length Tsize_t 6118 Fcallout_string TPCRE2_SPTR8 6119 } /* pcre2.h:935:1 */ 6120 6121 type Tpcre2_callout_enumerate_block_8 = Spcre2_callout_enumerate_block_8 /* pcre2.h:935:1 */ 6122 type Spcre2_substitute_callout_block_8 = struct { 6123 Fversion Tuint32_t 6124 Finput TPCRE2_SPTR8 6125 Foutput TPCRE2_SPTR8 6126 Foutput_offsets [2]Tsize_t 6127 Fovector uintptr 6128 Foveccount Tuint32_t 6129 Fsubscount Tuint32_t 6130 } /* pcre2.h:935:1 */ 6131 6132 type Tpcre2_substitute_callout_block_8 = Spcre2_substitute_callout_block_8 /* pcre2.h:935:1 */ 6133 type Tpcre2_jit_callback_16 = uintptr /* pcre2.h:939:1 */ 6134 type Spcre2_callout_block_16 = struct { 6135 Fversion Tuint32_t 6136 Fcallout_number Tuint32_t 6137 Fcapture_top Tuint32_t 6138 Fcapture_last Tuint32_t 6139 Foffset_vector uintptr 6140 Fmark TPCRE2_SPTR16 6141 Fsubject TPCRE2_SPTR16 6142 Fsubject_length Tsize_t 6143 Fstart_match Tsize_t 6144 Fcurrent_position Tsize_t 6145 Fpattern_position Tsize_t 6146 Fnext_item_length Tsize_t 6147 Fcallout_string_offset Tsize_t 6148 Fcallout_string_length Tsize_t 6149 Fcallout_string TPCRE2_SPTR16 6150 Fcallout_flags Tuint32_t 6151 } /* pcre2.h:939:1 */ 6152 6153 type Tpcre2_callout_block_16 = Spcre2_callout_block_16 /* pcre2.h:939:1 */ 6154 type Spcre2_callout_enumerate_block_16 = struct { 6155 Fversion Tuint32_t 6156 Fpattern_position Tsize_t 6157 Fnext_item_length Tsize_t 6158 Fcallout_number Tuint32_t 6159 Fcallout_string_offset Tsize_t 6160 Fcallout_string_length Tsize_t 6161 Fcallout_string TPCRE2_SPTR16 6162 } /* pcre2.h:939:1 */ 6163 6164 type Tpcre2_callout_enumerate_block_16 = Spcre2_callout_enumerate_block_16 /* pcre2.h:939:1 */ 6165 type Spcre2_substitute_callout_block_16 = struct { 6166 Fversion Tuint32_t 6167 Finput TPCRE2_SPTR16 6168 Foutput TPCRE2_SPTR16 6169 Foutput_offsets [2]Tsize_t 6170 Fovector uintptr 6171 Foveccount Tuint32_t 6172 Fsubscount Tuint32_t 6173 } /* pcre2.h:939:1 */ 6174 6175 type Tpcre2_substitute_callout_block_16 = Spcre2_substitute_callout_block_16 /* pcre2.h:939:1 */ 6176 type Tpcre2_jit_callback_32 = uintptr /* pcre2.h:943:1 */ 6177 type Spcre2_callout_block_32 = struct { 6178 Fversion Tuint32_t 6179 Fcallout_number Tuint32_t 6180 Fcapture_top Tuint32_t 6181 Fcapture_last Tuint32_t 6182 Foffset_vector uintptr 6183 Fmark TPCRE2_SPTR32 6184 Fsubject TPCRE2_SPTR32 6185 Fsubject_length Tsize_t 6186 Fstart_match Tsize_t 6187 Fcurrent_position Tsize_t 6188 Fpattern_position Tsize_t 6189 Fnext_item_length Tsize_t 6190 Fcallout_string_offset Tsize_t 6191 Fcallout_string_length Tsize_t 6192 Fcallout_string TPCRE2_SPTR32 6193 Fcallout_flags Tuint32_t 6194 } /* pcre2.h:943:1 */ 6195 6196 type Tpcre2_callout_block_32 = Spcre2_callout_block_32 /* pcre2.h:943:1 */ 6197 type Spcre2_callout_enumerate_block_32 = struct { 6198 Fversion Tuint32_t 6199 Fpattern_position Tsize_t 6200 Fnext_item_length Tsize_t 6201 Fcallout_number Tuint32_t 6202 Fcallout_string_offset Tsize_t 6203 Fcallout_string_length Tsize_t 6204 Fcallout_string TPCRE2_SPTR32 6205 } /* pcre2.h:943:1 */ 6206 6207 type Tpcre2_callout_enumerate_block_32 = Spcre2_callout_enumerate_block_32 /* pcre2.h:943:1 */ 6208 type Spcre2_substitute_callout_block_32 = struct { 6209 Fversion Tuint32_t 6210 Finput TPCRE2_SPTR32 6211 Foutput TPCRE2_SPTR32 6212 Foutput_offsets [2]Tsize_t 6213 Fovector uintptr 6214 Foveccount Tuint32_t 6215 Fsubscount Tuint32_t 6216 } /* pcre2.h:943:1 */ 6217 6218 type Tpcre2_substitute_callout_block_32 = Spcre2_substitute_callout_block_32 /* pcre2.h:943:1 */ 6219 6220 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6221 // definitions that follow must also be updated to match. There are also tables 6222 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6223 // pcre2_dfa_match.c that must be updated. 6224 6225 // This macro defines textual names for all the opcodes. These are used only 6226 // for debugging, and some of them are only partial names. The macro is referenced 6227 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6228 // some cases doesn't actually use these names at all). 6229 6230 // This macro defines the length of fixed length operations in the compiled 6231 // regex. The lengths are used when searching for specific things, and also in the 6232 // debugging printing of a compiled regex. We use a macro so that it can be 6233 // defined close to the definitions of the opcodes themselves. 6234 // 6235 // As things have been extended, some of these are no longer fixed lenths, but are 6236 // minima instead. For example, the length of a single-character repeat may vary 6237 // in UTF-8 mode. The code that uses this table must know about such things. 6238 6239 // A magic value for OP_RREF to indicate the "any recursion" condition. 6240 6241 // ---------- Private structures that are mode-independent. ---------- 6242 6243 // Structure to hold data for custom memory management. 6244 6245 type Spcre2_memctl = struct { 6246 Fmalloc uintptr 6247 Ffree uintptr 6248 Fmemory_data uintptr 6249 } /* pcre2.h:935:1 */ 6250 6251 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6252 // definitions that follow must also be updated to match. There are also tables 6253 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6254 // pcre2_dfa_match.c that must be updated. 6255 6256 // This macro defines textual names for all the opcodes. These are used only 6257 // for debugging, and some of them are only partial names. The macro is referenced 6258 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6259 // some cases doesn't actually use these names at all). 6260 6261 // This macro defines the length of fixed length operations in the compiled 6262 // regex. The lengths are used when searching for specific things, and also in the 6263 // debugging printing of a compiled regex. We use a macro so that it can be 6264 // defined close to the definitions of the opcodes themselves. 6265 // 6266 // As things have been extended, some of these are no longer fixed lenths, but are 6267 // minima instead. For example, the length of a single-character repeat may vary 6268 // in UTF-8 mode. The code that uses this table must know about such things. 6269 6270 // A magic value for OP_RREF to indicate the "any recursion" condition. 6271 6272 // ---------- Private structures that are mode-independent. ---------- 6273 6274 // Structure to hold data for custom memory management. 6275 6276 type Tpcre2_memctl = Spcre2_memctl /* pcre2_internal.h:1794:3 */ 6277 6278 // Structure for building a chain of open capturing subpatterns during 6279 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6280 // encountered. 6281 6282 type Sopen_capitem = struct { 6283 Fnext uintptr 6284 Fnumber Tuint16_t 6285 Fassert_depth Tuint16_t 6286 } /* pcre2_internal.h:1800:9 */ 6287 6288 // Structure for building a chain of open capturing subpatterns during 6289 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6290 // encountered. 6291 6292 type Topen_capitem = Sopen_capitem /* pcre2_internal.h:1804:3 */ 6293 6294 // Layout of the UCP type table that translates property names into types and 6295 // codes. Each entry used to point directly to a name, but to reduce the number of 6296 // relocations in shared libraries, it now has an offset into a single string 6297 // instead. 6298 6299 type Tucp_type_table = struct { 6300 Fname_offset Tuint16_t 6301 Ftype Tuint16_t 6302 Fvalue Tuint16_t 6303 } /* pcre2_internal.h:1815:3 */ 6304 6305 // Unicode character database (UCD) record format 6306 6307 type Tucd_record = struct { 6308 Fscript Tuint8_t 6309 Fchartype Tuint8_t 6310 Fgbprop Tuint8_t 6311 Fcaseset Tuint8_t 6312 Fother_case Tint32_t 6313 Fscriptx_bidiclass Tuint16_t 6314 Fbprops Tuint16_t 6315 } /* pcre2_internal.h:1827:3 */ 6316 6317 // UCD access macros 6318 6319 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6320 // that form a bitmap representing a list of scripts or boolean properties. These 6321 // macros test or set a bit in the map by number. 6322 6323 // Header for serialized pcre2 codes. 6324 6325 type Spcre2_serialized_data = struct { 6326 Fmagic Tuint32_t 6327 Fversion Tuint32_t 6328 Fconfig Tuint32_t 6329 Fnumber_of_codes Tint32_t 6330 } /* pcre2_internal.h:1870:9 */ 6331 6332 // UCD access macros 6333 6334 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6335 // that form a bitmap representing a list of scripts or boolean properties. These 6336 // macros test or set a bit in the map by number. 6337 6338 // Header for serialized pcre2 codes. 6339 6340 type Tpcre2_serialized_data = Spcre2_serialized_data /* pcre2_internal.h:1875:3 */ 6341 6342 // Mode-dependent macros and hidden and private structures are defined in a 6343 // separate file so that pcre2test can include them at all supported widths. When 6344 // compiling the library, PCRE2_CODE_UNIT_WIDTH will be defined, and we can 6345 // include them at the appropriate width, after setting up suffix macros for the 6346 // private structures. 6347 6348 // ************************************************ 6349 // 6350 // Perl-Compatible Regular Expressions * 6351 // 6352 6353 // PCRE is a library of functions to support regular expressions whose syntax 6354 // and semantics are as close as possible to those of the Perl 5 language. 6355 // 6356 // Written by Philip Hazel 6357 // Original API code Copyright (c) 1997-2012 University of Cambridge 6358 // New API code Copyright (c) 2016-2018 University of Cambridge 6359 // 6360 // ----------------------------------------------------------------------------- 6361 // Redistribution and use in source and binary forms, with or without 6362 // modification, are permitted provided that the following conditions are met: 6363 // 6364 // * Redistributions of source code must retain the above copyright notice, 6365 // this list of conditions and the following disclaimer. 6366 // 6367 // * Redistributions in binary form must reproduce the above copyright 6368 // notice, this list of conditions and the following disclaimer in the 6369 // documentation and/or other materials provided with the distribution. 6370 // 6371 // * Neither the name of the University of Cambridge nor the names of its 6372 // contributors may be used to endorse or promote products derived from 6373 // this software without specific prior written permission. 6374 // 6375 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 6376 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6377 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 6378 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 6379 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 6380 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 6381 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 6382 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 6383 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6384 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 6385 // POSSIBILITY OF SUCH DAMAGE. 6386 // ----------------------------------------------------------------------------- 6387 6388 // This module contains mode-dependent macro and structure definitions. The 6389 // file is #included by pcre2_internal.h if PCRE2_CODE_UNIT_WIDTH is defined. 6390 // These mode-dependent items are kept in a separate file so that they can also be 6391 // #included multiple times for different code unit widths by pcre2test in order 6392 // to have access to the hidden structures at all supported widths. 6393 // 6394 // Some of the mode-dependent macros are required at different widths for 6395 // different parts of the pcre2test code (in particular, the included 6396 // pcre_printint.c file). We undefine them here so that they can be re-defined for 6397 // multiple inclusions. Not all of these are used in pcre2test, but it's easier 6398 // just to undefine them all. 6399 6400 // -------------------------- MACROS ----------------------------- 6401 6402 // PCRE keeps offsets in its compiled code as at least 16-bit quantities 6403 // (always stored in big-endian order in 8-bit mode) by default. These are used, 6404 // for example, to link from the start of a subpattern to its alternatives and its 6405 // end. The use of 16 bits per offset limits the size of an 8-bit compiled regex 6406 // to around 64K, which is big enough for almost everybody. However, I received a 6407 // request for an even bigger limit. For this reason, and also to make the code 6408 // easier to maintain, the storing and loading of offsets from the compiled code 6409 // unit string is now handled by the macros that are defined here. 6410 // 6411 // The macros are controlled by the value of LINK_SIZE. This defaults to 2, but 6412 // values of 3 or 4 are also supported. 6413 6414 // ------------------- 8-bit support ------------------ 6415 6416 // ------------------- 16-bit support ------------------ 6417 6418 // --------------- Other mode-specific macros ----------------- 6419 6420 // PCRE uses some other (at least) 16-bit quantities that do not change when 6421 // the size of offsets changes. There are used for repeat counts and for other 6422 // things such as capturing parenthesis numbers in back references. 6423 // 6424 // Define the number of code units required to hold a 16-bit count/offset, and 6425 // macros to load and store such a value. For reasons that I do not understand, 6426 // the expression in the 8-bit GET2 macro is treated by gcc as a signed 6427 // expression, even when a is declared as unsigned. It seems that any kind of 6428 // arithmetic results in a signed value. Hence the cast. 6429 6430 // Other macros that are different for 8-bit mode. The MAX_255 macro checks 6431 // whether its argument, which is assumed to be one code unit, is less than 256. 6432 // The CHMAX_255 macro does not assume one code unit. The maximum length of a MARK 6433 // name must fit in one code unit; currently it is set to 255 or 65535. The 6434 // TABLE_GET macro is used to access elements of tables containing exactly 256 6435 // items. Its argument is a code unit. When code points can be greater than 255, a 6436 // check is needed before accessing these tables. 6437 6438 // ----------------- Character-handling macros ----------------- 6439 6440 // There is a proposed future special "UTF-21" mode, in which only the lowest 6441 // 21 bits of a 32-bit character are interpreted as UTF, with the remaining 11 6442 // high-order bits available to the application for other uses. In preparation for 6443 // the future implementation of this mode, there are macros that load a data item 6444 // and, if in this special mode, mask it to 21 bits. These macros all have names 6445 // starting with UCHAR21. In all other modes, including the normal 32-bit 6446 // library, the macros all have the same simple definitions. When the new mode is 6447 // implemented, it is expected that these definitions will be varied appropriately 6448 // using #ifdef when compiling the library that supports the special mode. 6449 6450 // When UTF encoding is being used, a character is no longer just a single 6451 // byte in 8-bit mode or a single short in 16-bit mode. The macros for character 6452 // handling generate simple sequences when used in the basic mode, and more 6453 // complicated ones for UTF characters. GETCHARLENTEST and other macros are not 6454 // used when UTF is not supported. To make sure they can never even appear when 6455 // UTF support is omitted, we don't even define them. 6456 6457 // ------------------- 8-bit support ------------------ 6458 6459 // The largest UTF code point that can be encoded as a single code unit. 6460 6461 // Tests whether the code point needs extra characters to decode. 6462 6463 // Returns with the additional number of characters if IS_MULTICHAR(c) is TRUE. 6464 // Otherwise it has an undefined behaviour. 6465 6466 // Returns TRUE, if the given value is not the first code unit of a UTF 6467 // sequence. 6468 6469 // Get the next UTF-8 character, not advancing the pointer. This is called when 6470 // we know we are in UTF-8 mode. 6471 6472 // Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the 6473 // pointer. 6474 6475 // Get the next UTF-8 character, advancing the pointer. This is called when we 6476 // know we are in UTF-8 mode. 6477 6478 // Get the next character, testing for UTF-8 mode, and advancing the pointer. 6479 // This is called when we don't know if we are in UTF-8 mode. 6480 6481 // Get the next UTF-8 character, not advancing the pointer, incrementing length 6482 // if there are extra bytes. This is called when we know we are in UTF-8 mode. 6483 6484 // Get the next UTF-8 character, testing for UTF-8 mode, not advancing the 6485 // pointer, incrementing length if there are extra bytes. This is called when we 6486 // do not know if we are in UTF-8 mode. 6487 6488 // If the pointer is not at the start of a character, move it back until 6489 // it is. This is called only in UTF-8 mode - we don't put a test within the macro 6490 // because almost all calls are already within a block of UTF-8 only code. 6491 6492 // Same as above, just in the other direction. 6493 6494 // Same as above, but it allows a fully customizable form. 6495 6496 // Deposit a character into memory, returning the number of code units. 6497 6498 // ------------------- 16-bit support ------------------ 6499 6500 // Mode-dependent macros that have the same definition in all modes. 6501 6502 // ----------------------- HIDDEN STRUCTURES ----------------------------- 6503 6504 // NOTE: All these structures *must* start with a pcre2_memctl structure. The 6505 // code that uses them is simpler because it assumes this. 6506 6507 // The real general context structure. At present it holds only data for custom 6508 // memory control. 6509 6510 type Tpcre2_real_general_context_8 = Spcre2_real_general_context_8 /* pcre2_intmodedep.h:561:3 */ 6511 6512 // The real compile context structure 6513 6514 type Tpcre2_real_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2_intmodedep.h:575:3 */ 6515 6516 // The real match context structure. 6517 6518 type Tpcre2_real_match_context_8 = Spcre2_real_match_context_8 /* pcre2_intmodedep.h:593:3 */ 6519 6520 // The real convert context structure. 6521 6522 type Tpcre2_real_convert_context_8 = Spcre2_real_convert_context_8 /* pcre2_intmodedep.h:601:3 */ 6523 6524 // The real compiled code structure. The type for the blocksize field is 6525 // defined specially because it is required in pcre2_serialize_decode() when 6526 // copying the size from possibly unaligned memory into a variable of the same 6527 // type. Use a macro rather than a typedef to avoid compiler warnings when this 6528 // file is included multiple times by pcre2test. LOOKBEHIND_MAX specifies the 6529 // largest lookbehind that is supported. (OP_REVERSE in a pattern has a 16-bit 6530 // argument in 8-bit and 16-bit modes, so we need no more than a 16-bit field 6531 // here.) 6532 6533 type Tpcre2_real_code_8 = Spcre2_real_code_8 /* pcre2_intmodedep.h:642:3 */ 6534 6535 // The real match data structure. Define ovector as large as it can ever 6536 // actually be so that array bound checkers don't grumble. Memory for this 6537 // structure is obtained by calling pcre2_match_data_create(), which sets the size 6538 // as the offset of ovector plus a pair of elements for each capturable string, so 6539 // the size varies from call to call. As the maximum number of capturing 6540 // subpatterns is 65535 we must allow for 65536 strings to include the overall 6541 // match. (See also the heapframe structure below.) 6542 6543 type Tpcre2_real_match_data_8 = Spcre2_real_match_data_8 /* pcre2_intmodedep.h:665:3 */ 6544 6545 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6546 6547 // These structures are not needed for pcre2test. 6548 6549 // Structures for checking for mutual recursion when scanning compiled or 6550 // parsed code. 6551 6552 type Srecurse_check = struct { 6553 Fprev uintptr 6554 Fgroup TPCRE2_SPTR8 6555 } /* pcre2_intmodedep.h:677:9 */ 6556 6557 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6558 6559 // These structures are not needed for pcre2test. 6560 6561 // Structures for checking for mutual recursion when scanning compiled or 6562 // parsed code. 6563 6564 type Trecurse_check = Srecurse_check /* pcre2_intmodedep.h:680:3 */ 6565 6566 type Sparsed_recurse_check = struct { 6567 Fprev uintptr 6568 Fgroupptr uintptr 6569 } /* pcre2_intmodedep.h:682:9 */ 6570 6571 type Tparsed_recurse_check = Sparsed_recurse_check /* pcre2_intmodedep.h:685:3 */ 6572 6573 // Structure for building a cache when filling in recursion offsets. 6574 6575 type Srecurse_cache = struct { 6576 Fgroup TPCRE2_SPTR8 6577 Fgroupnumber int32 6578 } /* pcre2_intmodedep.h:689:9 */ 6579 6580 // Structure for building a cache when filling in recursion offsets. 6581 6582 type Trecurse_cache = Srecurse_cache /* pcre2_intmodedep.h:692:3 */ 6583 6584 // Structure for maintaining a chain of pointers to the currently incomplete 6585 // branches, for testing for left recursion while compiling. 6586 6587 type Sbranch_chain_8 = struct { 6588 Fouter uintptr 6589 Fcurrent_branch uintptr 6590 } /* pcre2_intmodedep.h:697:9 */ 6591 6592 // Structure for maintaining a chain of pointers to the currently incomplete 6593 // branches, for testing for left recursion while compiling. 6594 6595 type Tbranch_chain_8 = Sbranch_chain_8 /* pcre2_intmodedep.h:700:3 */ 6596 6597 // Structure for building a list of named groups during the first pass of 6598 // compiling. 6599 6600 type Snamed_group_8 = struct { 6601 Fname TPCRE2_SPTR8 6602 Fnumber Tuint32_t 6603 Flength Tuint16_t 6604 Fisdup Tuint16_t 6605 } /* pcre2_intmodedep.h:705:9 */ 6606 6607 // Structure for building a list of named groups during the first pass of 6608 // compiling. 6609 6610 type Tnamed_group_8 = Snamed_group_8 /* pcre2_intmodedep.h:710:3 */ 6611 6612 // Structure for passing "static" information around between the functions 6613 // doing the compiling, so that they are thread-safe. 6614 6615 type Scompile_block_8 = struct { 6616 Fcx uintptr 6617 Flcc uintptr 6618 Ffcc uintptr 6619 Fcbits uintptr 6620 Fctypes uintptr 6621 Fstart_workspace TPCRE2_SPTR8 6622 Fstart_code TPCRE2_SPTR8 6623 Fstart_pattern TPCRE2_SPTR8 6624 Fend_pattern TPCRE2_SPTR8 6625 Fname_table uintptr 6626 Fworkspace_size Tsize_t 6627 Fsmall_ref_offset [10]Tsize_t 6628 Ferroroffset Tsize_t 6629 Fnames_found Tuint16_t 6630 Fname_entry_size Tuint16_t 6631 Fparens_depth Tuint16_t 6632 Fassert_depth Tuint16_t 6633 Fopen_caps uintptr 6634 Fnamed_groups uintptr 6635 Fnamed_group_list_size Tuint32_t 6636 Fexternal_options Tuint32_t 6637 Fexternal_flags Tuint32_t 6638 Fbracount Tuint32_t 6639 Flastcapture Tuint32_t 6640 Fparsed_pattern uintptr 6641 Fparsed_pattern_end uintptr 6642 Fgroupinfo uintptr 6643 Ftop_backref Tuint32_t 6644 Fbackref_map Tuint32_t 6645 Fnltype Tuint32_t 6646 Fnllen Tuint32_t 6647 Fclass_range_start Tuint32_t 6648 Fclass_range_end Tuint32_t 6649 Fnl [4]TPCRE2_UCHAR8 6650 Freq_varyopt Tuint32_t 6651 Fmax_lookbehind int32 6652 Fhad_accept TBOOL 6653 Fhad_pruneorskip TBOOL 6654 Fhad_recurse TBOOL 6655 Fdupnames TBOOL 6656 } /* pcre2_intmodedep.h:715:9 */ 6657 6658 // Structure for passing "static" information around between the functions 6659 // doing the compiling, so that they are thread-safe. 6660 6661 type Tcompile_block_8 = Scompile_block_8 /* pcre2_intmodedep.h:756:3 */ 6662 6663 // Structure for keeping the properties of the in-memory stack used 6664 // by the JIT matcher. 6665 6666 type Tpcre2_real_jit_stack_8 = Spcre2_real_jit_stack_8 /* pcre2_intmodedep.h:764:3 */ 6667 6668 // Structure for items in a linked list that represents an explicit recursive 6669 // call within the pattern when running pcre2_dfa_match(). 6670 6671 type Sdfa_recursion_info = struct { 6672 Fprevrec uintptr 6673 Fsubject_position TPCRE2_SPTR8 6674 Fgroup_num Tuint32_t 6675 } /* pcre2_intmodedep.h:769:9 */ 6676 6677 // Structure for items in a linked list that represents an explicit recursive 6678 // call within the pattern when running pcre2_dfa_match(). 6679 6680 type Tdfa_recursion_info = Sdfa_recursion_info /* pcre2_intmodedep.h:773:3 */ 6681 6682 // Structure for "stack" frames that are used for remembering backtracking 6683 // positions during matching. As these are used in a vector, with the ovector item 6684 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6685 // only way to check this at compile time is to force an error by generating an 6686 // array with a negative size. By putting this in a typedef (which is never used), 6687 // we don't generate any code when all is well. 6688 6689 type Sheapframe = struct { 6690 Fecode TPCRE2_SPTR8 6691 Ftemp_sptr [2]TPCRE2_SPTR8 6692 Flength Tsize_t 6693 Fback_frame Tsize_t 6694 Ftemp_size Tsize_t 6695 Frdepth Tuint32_t 6696 Fgroup_frame_type Tuint32_t 6697 Ftemp_32 [4]Tuint32_t 6698 Freturn_id Tuint8_t 6699 Fop Tuint8_t 6700 Foccu [6]TPCRE2_UCHAR8 6701 Feptr TPCRE2_SPTR8 6702 Fstart_match TPCRE2_SPTR8 6703 Fmark TPCRE2_SPTR8 6704 Fcurrent_recurse Tuint32_t 6705 Fcapture_last Tuint32_t 6706 Flast_group_offset Tsize_t 6707 Foffset_top Tsize_t 6708 Fovector [131072]Tsize_t 6709 } /* pcre2_intmodedep.h:782:9 */ 6710 6711 // Structure for "stack" frames that are used for remembering backtracking 6712 // positions during matching. As these are used in a vector, with the ovector item 6713 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6714 // only way to check this at compile time is to force an error by generating an 6715 // array with a negative size. By putting this in a typedef (which is never used), 6716 // we don't generate any code when all is well. 6717 6718 type Theapframe = Sheapframe /* pcre2_intmodedep.h:833:3 */ 6719 6720 // This typedef is a check that the size of the heapframe structure is a 6721 // multiple of PCRE2_SIZE. See various comments above. 6722 6723 type Tcheck_heapframe_size = [1]int8 /* pcre2_intmodedep.h:838:14 */ 6724 6725 // Structure for computing the alignment of heapframe. 6726 6727 type Sheapframe_align = struct { 6728 Funalign int8 6729 F__ccgo_pad1 [3]byte 6730 Fframe Theapframe 6731 } /* pcre2_intmodedep.h:843:9 */ 6732 6733 // Structure for computing the alignment of heapframe. 6734 6735 type Theapframe_align = Sheapframe_align /* pcre2_intmodedep.h:846:3 */ 6736 6737 // This define is the minimum alignment required for a heapframe, in bytes. 6738 6739 // Structure for passing "static" information around between the functions 6740 // doing traditional NFA matching (pcre2_match() and friends). 6741 6742 type Smatch_block_8 = struct { 6743 Fmemctl Tpcre2_memctl 6744 Fframe_vector_size Tsize_t 6745 Fmatch_frames uintptr 6746 Fmatch_frames_top uintptr 6747 Fstack_frames uintptr 6748 Fheap_limit Tsize_t 6749 Fmatch_limit Tuint32_t 6750 Fmatch_limit_depth Tuint32_t 6751 Fmatch_call_count Tuint32_t 6752 Fhitend TBOOL 6753 Fhasthen TBOOL 6754 Fallowemptypartial TBOOL 6755 Flcc uintptr 6756 Ffcc uintptr 6757 Fctypes uintptr 6758 Fstart_offset Tsize_t 6759 Fend_offset_top Tsize_t 6760 Fpartial Tuint16_t 6761 Fbsr_convention Tuint16_t 6762 Fname_count Tuint16_t 6763 Fname_entry_size Tuint16_t 6764 Fname_table TPCRE2_SPTR8 6765 Fstart_code TPCRE2_SPTR8 6766 Fstart_subject TPCRE2_SPTR8 6767 Fcheck_subject TPCRE2_SPTR8 6768 Fend_subject TPCRE2_SPTR8 6769 Fend_match_ptr TPCRE2_SPTR8 6770 Fstart_used_ptr TPCRE2_SPTR8 6771 Flast_used_ptr TPCRE2_SPTR8 6772 Fmark TPCRE2_SPTR8 6773 Fnomatch_mark TPCRE2_SPTR8 6774 Fverb_ecode_ptr TPCRE2_SPTR8 6775 Fverb_skip_ptr TPCRE2_SPTR8 6776 Fverb_current_recurse Tuint32_t 6777 Fmoptions Tuint32_t 6778 Fpoptions Tuint32_t 6779 Fskip_arg_count Tuint32_t 6780 Fignore_skip_arg Tuint32_t 6781 Fnltype Tuint32_t 6782 Fnllen Tuint32_t 6783 Fnl [4]TPCRE2_UCHAR8 6784 Fcb uintptr 6785 Fcallout_data uintptr 6786 Fcallout uintptr 6787 } /* pcre2_intmodedep.h:855:9 */ 6788 6789 // This define is the minimum alignment required for a heapframe, in bytes. 6790 6791 // Structure for passing "static" information around between the functions 6792 // doing traditional NFA matching (pcre2_match() and friends). 6793 6794 type Tmatch_block_8 = Smatch_block_8 /* pcre2_intmodedep.h:900:3 */ 6795 6796 // A similar structure is used for the same purpose by the DFA matching 6797 // functions. 6798 6799 type Sdfa_match_block_8 = struct { 6800 Fmemctl Tpcre2_memctl 6801 Fstart_code TPCRE2_SPTR8 6802 Fstart_subject TPCRE2_SPTR8 6803 Fend_subject TPCRE2_SPTR8 6804 Fstart_used_ptr TPCRE2_SPTR8 6805 Flast_used_ptr TPCRE2_SPTR8 6806 Ftables uintptr 6807 Fstart_offset Tsize_t 6808 Fheap_limit Tsize_t 6809 Fheap_used Tsize_t 6810 Fmatch_limit Tuint32_t 6811 Fmatch_limit_depth Tuint32_t 6812 Fmatch_call_count Tuint32_t 6813 Fmoptions Tuint32_t 6814 Fpoptions Tuint32_t 6815 Fnltype Tuint32_t 6816 Fnllen Tuint32_t 6817 Fallowemptypartial TBOOL 6818 Fnl [4]TPCRE2_UCHAR8 6819 Fbsr_convention Tuint16_t 6820 F__ccgo_pad1 [2]byte 6821 Fcb uintptr 6822 Fcallout_data uintptr 6823 Fcallout uintptr 6824 Frecursive uintptr 6825 } /* pcre2_intmodedep.h:905:9 */ 6826 6827 // A similar structure is used for the same purpose by the DFA matching 6828 // functions. 6829 6830 type Tdfa_match_block_8 = Sdfa_match_block_8 /* pcre2_intmodedep.h:930:3 */ 6831 6832 // This function is needed only when memmove() is not available. 6833 6834 // End of pcre2_internal.h 6835 6836 // ************************************************ 6837 // 6838 // Tables for auto-possessification * 6839 // 6840 6841 // This table is used to check whether auto-possessification is possible 6842 // between adjacent character-type opcodes. The left-hand (repeated) opcode is 6843 // used to select the row, and the right-hand opcode is use to select the column. 6844 // A value of 1 means that auto-possessification is OK. For example, the second 6845 // value in the first row means that \D+\d can be turned into \D++\d. 6846 // 6847 // The Unicode property types (\P and \p) have to be present to fill out the table 6848 // because of what their opcode values are, but the table values should always be 6849 // zero because property types are handled separately in the code. The last four 6850 // columns apply to items that cannot be repeated, so there is no need to have 6851 // rows for them. Note that OP_DIGIT etc. are generated only when PCRE_UCP is 6852 // *not* set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 6853 6854 var autoposstab = [17][21]Tuint8_t{ 6855 // \D \d \S \s \W \w . .+ \C \P \p \R \H \h \V \v \X \Z \z $ $M 6856 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \D 6857 {Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \d 6858 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \S 6859 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \s 6860 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \W 6861 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \w 6862 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // . 6863 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // .+ 6864 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \C 6865 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // \P 6866 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // \p 6867 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \R 6868 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \H 6869 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \h 6870 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \V 6871 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \v 6872 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \X 6873 } /* pcre2_auto_possess.c:73:22 */ 6874 6875 // This table is used to check whether auto-possessification is possible 6876 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP). The 6877 // left-hand (repeated) opcode is used to select the row, and the right-hand 6878 // opcode is used to select the column. The values are as follows: 6879 // 6880 // 0 Always return FALSE (never auto-possessify) 6881 // 1 Character groups are distinct (possessify if both are OP_PROP) 6882 // 2 Check character categories in the same group (general or particular) 6883 // 3 TRUE if the two opcodes are not the same (PROP vs NOTPROP) 6884 // 6885 // 4 Check left general category vs right particular category 6886 // 5 Check right general category vs left particular category 6887 // 6888 // 6 Left alphanum vs right general category 6889 // 7 Left space vs right general category 6890 // 8 Left word vs right general category 6891 // 6892 // 9 Right alphanum vs left general category 6893 // 10 Right space vs left general category 6894 // 11 Right word vs left general category 6895 // 6896 // 12 Left alphanum vs right particular category 6897 // 13 Left space vs right particular category 6898 // 14 Left word vs right particular category 6899 // 6900 // 15 Right alphanum vs left particular category 6901 // 16 Right space vs left particular category 6902 // 17 Right word vs left particular category 6903 6904 var propposstab = [14][14]Tuint8_t{ 6905 // ANY LAMP GC PC SC SCX ALNUM SPACE PXSPACE WORD CLIST UCNC BIDICL BOOL 6906 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_ANY 6907 {Tuint8_t(0), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_LAMP 6908 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(4), Tuint8_t(0), Tuint8_t(0), Tuint8_t(9), Tuint8_t(10), Tuint8_t(10), Tuint8_t(11), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_GC 6909 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(5), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(15), Tuint8_t(16), Tuint8_t(16), Tuint8_t(17), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_PC 6910 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SC 6911 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SCX 6912 {Tuint8_t(0), Tuint8_t(3), Tuint8_t(6), Tuint8_t(12), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_ALNUM 6913 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(7), Tuint8_t(13), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(3), Tuint8_t(3), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SPACE 6914 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(7), Tuint8_t(13), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(3), Tuint8_t(3), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_PXSPACE 6915 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(8), Tuint8_t(14), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_WORD 6916 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_CLIST 6917 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0)}, // PT_UCNC 6918 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_BIDICL 6919 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_BOOL 6920 } /* pcre2_auto_possess.c:125:22 */ 6921 6922 // This table is used to check whether auto-possessification is possible 6923 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP) when one 6924 // specifies a general category and the other specifies a particular category. The 6925 // row is selected by the general category and the column by the particular 6926 // category. The value is 1 if the particular category is not part of the general 6927 // category. 6928 6929 var catposstab = [7][30]Tuint8_t{ 6930 // Cc Cf Cn Co Cs Ll Lm Lo Lt Lu Mc Me Mn Nd Nl No Pc Pd Pe Pf Pi Po Ps Sc Sk Sm So Zl Zp Zs 6931 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // C 6932 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // L 6933 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // M 6934 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // N 6935 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // P 6936 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // S 6937 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // Z 6938 } /* pcre2_auto_possess.c:150:22 */ 6939 6940 // This table is used when checking ALNUM, (PX)SPACE, SPACE, and WORD against 6941 // a general or particular category. The properties in each row are those 6942 // that apply to the character set in question. Duplication means that a little 6943 // unnecessary work is done when checking, but this keeps things much simpler 6944 // because they can all use the same code. For more details see the comment where 6945 // this table is used. 6946 // 6947 // Note: SPACE and PXSPACE used to be different because Perl excluded VT from 6948 // "space", but from Perl 5.18 it's included, so both categories are treated the 6949 // same here. 6950 6951 var posspropstab = [3][4]Tuint8_t{ 6952 {ucp_L, ucp_N, ucp_N, ucp_Nl}, // ALNUM, 3rd and 4th values redundant 6953 {ucp_Z, ucp_Z, ucp_C, ucp_Cc}, // SPACE and PXSPACE, 2nd value redundant 6954 {ucp_L, ucp_N, ucp_P, ucp_Po}, // WORD 6955 } /* pcre2_auto_possess.c:172:22 */ 6956 6957 // ************************************************ 6958 // 6959 // Check a character and a property * 6960 // 6961 6962 // This function is called by compare_opcodes() when a property item is 6963 // adjacent to a fixed character. 6964 // 6965 // Arguments: 6966 // c the character 6967 // ptype the property type 6968 // pdata the data for the type 6969 // negated TRUE if it's a negated property (\P or \p{^) 6970 // 6971 // Returns: TRUE if auto-possessifying is OK 6972 6973 func check_char_prop(tls *libc.TLS, c Tuint32_t, ptype uint32, pdata uint32, negated TBOOL) TBOOL { /* pcre2_auto_possess.c:199:1: */ 6974 var ok TBOOL 6975 var p uintptr 6976 var prop uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 6977 6978 switch ptype { 6979 case uint32(DPT_LAMP): 6980 return libc.Bool32(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == negated) 6981 6982 case uint32(DPT_GC): 6983 return libc.Bool32(libc.Bool32(pdata == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == negated) 6984 6985 case uint32(DPT_PC): 6986 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == negated) 6987 6988 case uint32(DPT_SC): 6989 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == negated) 6990 6991 case uint32(DPT_SCX): 6992 ok = libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || 6993 *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(pdata/uint32(32))*4))&(uint32(1)<<(pdata%uint32(32))) != Tuint32_t(0)) 6994 return libc.Bool32(ok == negated) 6995 6996 // These are specials 6997 6998 case uint32(DPT_ALNUM): 6999 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == negated) 7000 7001 // Perl space used to exclude VT, but from Perl 5.18 it is included, which 7002 // means that Perl space and POSIX space are now identical. PCRE was changed 7003 // at release 8.34. 7004 7005 case uint32(DPT_SPACE): 7006 fallthrough // Perl space 7007 case uint32(DPT_PXSPACE): // POSIX space 7008 switch c { 7009 case Tuint32_t('\011'): 7010 fallthrough 7011 case Tuint32_t('\040'): 7012 fallthrough 7013 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7014 fallthrough 7015 case Tuint32_t(0x1680): 7016 fallthrough /* OGHAM SPACE MARK */ 7017 case Tuint32_t(0x180e): 7018 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7019 case Tuint32_t(0x2000): 7020 fallthrough /* EN QUAD */ 7021 case Tuint32_t(0x2001): 7022 fallthrough /* EM QUAD */ 7023 case Tuint32_t(0x2002): 7024 fallthrough /* EN SPACE */ 7025 case Tuint32_t(0x2003): 7026 fallthrough /* EM SPACE */ 7027 case Tuint32_t(0x2004): 7028 fallthrough /* THREE-PER-EM SPACE */ 7029 case Tuint32_t(0x2005): 7030 fallthrough /* FOUR-PER-EM SPACE */ 7031 case Tuint32_t(0x2006): 7032 fallthrough /* SIX-PER-EM SPACE */ 7033 case Tuint32_t(0x2007): 7034 fallthrough /* FIGURE SPACE */ 7035 case Tuint32_t(0x2008): 7036 fallthrough /* PUNCTUATION SPACE */ 7037 case Tuint32_t(0x2009): 7038 fallthrough /* THIN SPACE */ 7039 case Tuint32_t(0x200A): 7040 fallthrough /* HAIR SPACE */ 7041 case Tuint32_t(0x202f): 7042 fallthrough /* NARROW NO-BREAK SPACE */ 7043 case Tuint32_t(0x205f): 7044 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7045 case Tuint32_t(0x3000): 7046 fallthrough 7047 case Tuint32_t('\012'): 7048 fallthrough 7049 case Tuint32_t('\013'): 7050 fallthrough 7051 case Tuint32_t('\014'): 7052 fallthrough 7053 case Tuint32_t('\015'): 7054 fallthrough 7055 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 7056 fallthrough 7057 case Tuint32_t(0x2028): 7058 fallthrough /* LINE SEPARATOR */ 7059 case Tuint32_t(0x2029): 7060 return negated 7061 7062 default: 7063 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == negated) 7064 } 7065 break // Control never reaches here 7066 7067 case uint32(DPT_WORD): 7068 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) == negated) 7069 7070 case uint32(DPT_CLIST): 7071 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(prop)).Fcaseset)*4 7072 for { 7073 if c < *(*Tuint32_t)(unsafe.Pointer(p)) { 7074 return libc.BoolInt32(!(negated != 0)) 7075 } 7076 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4))) { 7077 return negated 7078 } 7079 } 7080 break // Control never reaches here 7081 7082 // Haven't yet thought these through. 7083 7084 case uint32(DPT_BIDICL): 7085 return DFALSE 7086 7087 case uint32(DPT_BOOL): 7088 return DFALSE 7089 } 7090 7091 return DFALSE 7092 } 7093 7094 // ************************************************ 7095 // 7096 // Base opcode of repeated opcodes * 7097 // 7098 7099 // Returns the base opcode for repeated single character type opcodes. If the 7100 // opcode is not a repeated character type, it returns with the original value. 7101 // 7102 // Arguments: c opcode 7103 // Returns: base opcode for the type 7104 7105 func get_repeat_base(tls *libc.TLS, c TPCRE2_UCHAR8) TPCRE2_UCHAR8 { /* pcre2_auto_possess.c:291:1: */ 7106 if int32(c) > OP_TYPEPOSUPTO { 7107 return c 7108 } 7109 if int32(c) >= OP_TYPESTAR { 7110 return OP_TYPESTAR 7111 } 7112 if int32(c) >= OP_NOTSTARI { 7113 return OP_NOTSTARI 7114 } 7115 if int32(c) >= OP_NOTSTAR { 7116 return OP_NOTSTAR 7117 } 7118 if int32(c) >= OP_STARI { 7119 return OP_STARI 7120 } 7121 return OP_STAR 7122 } 7123 7124 // ************************************************ 7125 // 7126 // Fill the character property list * 7127 // 7128 7129 // Checks whether the code points to an opcode that can take part in auto- 7130 // possessification, and if so, fills a list with its properties. 7131 // 7132 // Arguments: 7133 // code points to start of expression 7134 // utf TRUE if in UTF mode 7135 // ucp TRUE if in UCP mode 7136 // fcc points to the case-flipping table 7137 // list points to output list 7138 // list[0] will be filled with the opcode 7139 // list[1] will be non-zero if this opcode 7140 // can match an empty character string 7141 // list[2..7] depends on the opcode 7142 // 7143 // Returns: points to the start of the next opcode if *code is accepted 7144 // NULL if *code is not accepted 7145 7146 func get_chr_property_list(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, fcc uintptr, list uintptr) TPCRE2_SPTR8 { /* pcre2_auto_possess.c:325:1: */ 7147 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7148 var base TPCRE2_UCHAR8 7149 var end TPCRE2_SPTR8 7150 var chr Tuint32_t 7151 var clist_dest uintptr 7152 var clist_src uintptr 7153 7154 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(c) 7155 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DFALSE) 7156 code++ 7157 7158 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 7159 base = get_repeat_base(tls, c) 7160 c = TPCRE2_UCHAR8(int32(c) - (int32(base) - OP_STAR)) 7161 7162 if int32(c) == OP_UPTO || int32(c) == OP_MINUPTO || int32(c) == OP_EXACT || int32(c) == OP_POSUPTO { 7163 code += TPCRE2_SPTR8(DIMM2_SIZE) 7164 } 7165 7166 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(libc.Bool32(int32(c) != OP_PLUS && int32(c) != OP_MINPLUS && int32(c) != OP_EXACT && int32(c) != OP_POSPLUS)) 7167 7168 switch int32(base) { 7169 case OP_STAR: 7170 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHAR 7171 break 7172 fallthrough 7173 7174 case OP_STARI: 7175 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHARI 7176 break 7177 fallthrough 7178 7179 case OP_NOTSTAR: 7180 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOT 7181 break 7182 fallthrough 7183 7184 case OP_NOTSTARI: 7185 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOTI 7186 break 7187 fallthrough 7188 7189 case OP_TYPESTAR: 7190 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7191 code++ 7192 break 7193 } 7194 c = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(list))) 7195 } 7196 7197 switch int32(c) { 7198 case OP_NOT_DIGIT: 7199 fallthrough 7200 case OP_DIGIT: 7201 fallthrough 7202 case OP_NOT_WHITESPACE: 7203 fallthrough 7204 case OP_WHITESPACE: 7205 fallthrough 7206 case OP_NOT_WORDCHAR: 7207 fallthrough 7208 case OP_WORDCHAR: 7209 fallthrough 7210 case OP_ANY: 7211 fallthrough 7212 case OP_ALLANY: 7213 fallthrough 7214 case OP_ANYNL: 7215 fallthrough 7216 case OP_NOT_HSPACE: 7217 fallthrough 7218 case OP_HSPACE: 7219 fallthrough 7220 case OP_NOT_VSPACE: 7221 fallthrough 7222 case OP_VSPACE: 7223 fallthrough 7224 case OP_EXTUNI: 7225 fallthrough 7226 case OP_EODN: 7227 fallthrough 7228 case OP_EOD: 7229 fallthrough 7230 case OP_DOLL: 7231 fallthrough 7232 case OP_DOLLM: 7233 return code 7234 7235 case OP_CHAR: 7236 fallthrough 7237 case OP_NOT: 7238 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7239 if utf != 0 && chr >= 0xc0 { 7240 if chr&0x20 == Tuint32_t(0) { 7241 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7242 } else if chr&0x10 == Tuint32_t(0) { 7243 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7244 code += uintptr(2) 7245 } else if chr&0x08 == Tuint32_t(0) { 7246 chr = chr&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f 7247 code += uintptr(3) 7248 } else if chr&0x04 == Tuint32_t(0) { 7249 chr = chr&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f 7250 code += uintptr(4) 7251 } else { 7252 chr = chr&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))&0x3f 7253 code += uintptr(5) 7254 } 7255 } 7256 7257 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7258 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7259 return code 7260 7261 case OP_CHARI: 7262 fallthrough 7263 case OP_NOTI: 7264 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7265 if int32(c) == OP_CHARI { 7266 return OP_CHAR 7267 } 7268 return OP_NOT 7269 }() 7270 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7271 if utf != 0 && chr >= 0xc0 { 7272 if chr&0x20 == Tuint32_t(0) { 7273 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7274 } else if chr&0x10 == Tuint32_t(0) { 7275 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7276 code += uintptr(2) 7277 } else if chr&0x08 == Tuint32_t(0) { 7278 chr = chr&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f 7279 code += uintptr(3) 7280 } else if chr&0x04 == Tuint32_t(0) { 7281 chr = chr&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f 7282 code += uintptr(4) 7283 } else { 7284 chr = chr&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))&0x3f 7285 code += uintptr(5) 7286 } 7287 } 7288 7289 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7290 7291 if chr < Tuint32_t(128) || chr < Tuint32_t(256) && !(utf != 0) && !(ucp != 0) { 7292 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(chr)))) 7293 } else { 7294 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(int32(chr) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(chr)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(chr)%DUCD_BLOCK_SIZE])*12)).Fother_case) 7295 } 7296 7297 // The othercase might be the same value. 7298 7299 if chr == *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) { 7300 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7301 } else { 7302 *(*Tuint32_t)(unsafe.Pointer(list + 4*4)) = DNOTACHAR 7303 } 7304 return code 7305 7306 case OP_PROP: 7307 fallthrough 7308 case OP_NOTPROP: 7309 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) != DPT_CLIST { 7310 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7311 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7312 return code + uintptr(2) 7313 } 7314 7315 // Convert only if we have enough space. 7316 7317 clist_src = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))*4 7318 clist_dest = list + uintptr(2)*4 7319 code += uintptr(2) 7320 7321 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_src, 4))) != DNOTACHAR { 7322 if clist_dest >= list+uintptr(8)*4 { 7323 // Early return if there is not enough space. This should never 7324 // happen, since all clists are shorter than 5 character now. 7325 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7326 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7327 return code 7328 } 7329 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_dest, 4))) = *(*Tuint32_t)(unsafe.Pointer(clist_src)) 7330 } 7331 7332 // All characters are stored. The terminating NOTACHAR is copied from the 7333 // clist itself. 7334 7335 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7336 if int32(c) == OP_PROP { 7337 return OP_CHAR 7338 } 7339 return OP_NOT 7340 }() 7341 return code 7342 7343 case OP_NCLASS: 7344 fallthrough 7345 case OP_CLASS: 7346 fallthrough 7347 case OP_XCLASS: 7348 if int32(c) == OP_XCLASS { 7349 end = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))))) - uintptr(1) 7350 } else { 7351 end = code + uintptr(uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 7352 } 7353 7354 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end))) { 7355 case OP_CRSTAR: 7356 fallthrough 7357 case OP_CRMINSTAR: 7358 fallthrough 7359 case OP_CRQUERY: 7360 fallthrough 7361 case OP_CRMINQUERY: 7362 fallthrough 7363 case OP_CRPOSSTAR: 7364 fallthrough 7365 case OP_CRPOSQUERY: 7366 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DTRUE) 7367 end++ 7368 break 7369 7370 case OP_CRPLUS: 7371 fallthrough 7372 case OP_CRMINPLUS: 7373 fallthrough 7374 case OP_CRPOSPLUS: 7375 end++ 7376 break 7377 7378 case OP_CRRANGE: 7379 fallthrough 7380 case OP_CRMINRANGE: 7381 fallthrough 7382 case OP_CRPOSRANGE: 7383 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(libc.Bool32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end + 2)))) == uint32(0))) 7384 end += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 7385 break 7386 } 7387 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t((int32(end) - int32(code)) / 1) 7388 return end 7389 } 7390 7391 return uintptr(0) // Opcode not accepted 7392 } 7393 7394 // ************************************************ 7395 // 7396 // Scan further character sets for match * 7397 // 7398 7399 // Checks whether the base and the current opcode have a common character, in 7400 // which case the base cannot be possessified. 7401 // 7402 // Arguments: 7403 // code points to the byte code 7404 // utf TRUE in UTF mode 7405 // ucp TRUE in UCP mode 7406 // cb compile data block 7407 // base_list the data list of the base opcode 7408 // base_end the end of the base opcode 7409 // rec_limit points to recursion depth counter 7410 // 7411 // Returns: TRUE if the auto-possessification is possible 7412 7413 func compare_opcodes(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, cb uintptr, base_list uintptr, base_end TPCRE2_SPTR8, rec_limit uintptr) TBOOL { /* pcre2_auto_possess.c:536:1: */ 7414 bp := tls.Alloc(32) 7415 defer tls.Free(32) 7416 7417 var c TPCRE2_UCHAR8 7418 // var list [8]Tuint32_t at bp, 32 7419 7420 var chr_ptr uintptr 7421 var ochr_ptr uintptr 7422 var list_ptr uintptr 7423 var next_code TPCRE2_SPTR8 7424 var xclass_flags TPCRE2_SPTR8 7425 var class_bitset uintptr 7426 var set1 uintptr 7427 var set2 uintptr 7428 var set_end uintptr 7429 var chr Tuint32_t 7430 var accepted TBOOL 7431 var invert_bits TBOOL 7432 var entered_a_group TBOOL = DFALSE 7433 7434 if libc.PreDecInt32(&*(*int32)(unsafe.Pointer(rec_limit)), 1) <= 0 { 7435 return DFALSE 7436 } // Recursion has gone too deep 7437 7438 // Note: the base_list[1] contains whether the current opcode has a greedy 7439 // (represented by a non-zero value) quantifier. This is a different from 7440 // other character type lists, which store here that the character iterator 7441 // matches to an empty string (also represented by a non-zero value). 7442 7443 for { 7444 // All operations move the code pointer forward. 7445 // Therefore infinite recursions are not possible. 7446 7447 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7448 7449 // Skip over callouts 7450 7451 if int32(c) == OP_CALLOUT { 7452 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7453 continue 7454 } 7455 7456 if int32(c) == OP_CALLOUT_STR { 7457 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 7458 continue 7459 } 7460 7461 // At the end of a branch, skip to the end of the group. 7462 7463 if int32(c) == OP_ALT { 7464 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 7465 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7466 } 7467 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7468 } 7469 7470 // Inspect the next opcode. 7471 7472 switch int32(c) { 7473 // We can always possessify a greedy iterator at the end of the pattern, 7474 // which is reached after skipping over the final OP_KET. A non-greedy 7475 // iterator must never be possessified. 7476 7477 case OP_END: 7478 return libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) != Tuint32_t(0)) 7479 7480 // When an iterator is at the end of certain kinds of group we can inspect 7481 // what follows the group by skipping over the closing ket. Note that this 7482 // does not apply to OP_KETRMAX or OP_KETRMIN because what follows any given 7483 // iteration is variable (could be another iteration or could be the next 7484 // item). As these two opcodes are not listed in the next switch, they will 7485 // end up as the next code to inspect, and return FALSE by virtue of being 7486 // unsupported. 7487 7488 case OP_KET: 7489 fallthrough 7490 case OP_KETRPOS: 7491 // The non-greedy case cannot be converted to a possessive form. 7492 7493 if *(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) == Tuint32_t(0) { 7494 return DFALSE 7495 } 7496 7497 // If the bracket is capturing it might be referenced by an OP_RECURSE 7498 // so its last iterator can never be possessified if the pattern contains 7499 // recursions. (This could be improved by keeping a list of group numbers that 7500 // are called by recursion.) 7501 7502 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))))) { 7503 case OP_CBRA: 7504 fallthrough 7505 case OP_SCBRA: 7506 fallthrough 7507 case OP_CBRAPOS: 7508 fallthrough 7509 case OP_SCBRAPOS: 7510 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse != 0 { 7511 return DFALSE 7512 } 7513 break 7514 7515 // A script run might have to backtrack if the iterated item can match 7516 // characters from more than one script. So give up unless repeating an 7517 // explicit character. 7518 7519 case OP_SCRIPT_RUN: 7520 if *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHAR && *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHARI { 7521 return DFALSE 7522 } 7523 break 7524 7525 // Atomic sub-patterns and assertions can always auto-possessify their 7526 // last iterator. However, if the group was entered as a result of checking 7527 // a previous iterator, this is not possible. 7528 7529 case OP_ASSERT: 7530 fallthrough 7531 case OP_ASSERT_NOT: 7532 fallthrough 7533 case OP_ASSERTBACK: 7534 fallthrough 7535 case OP_ASSERTBACK_NOT: 7536 fallthrough 7537 case OP_ONCE: 7538 return libc.BoolInt32(!(entered_a_group != 0)) 7539 7540 // Non-atomic assertions - don't possessify last iterator. This needs 7541 // more thought. 7542 7543 case OP_ASSERT_NA: 7544 fallthrough 7545 case OP_ASSERTBACK_NA: 7546 return DFALSE 7547 } 7548 7549 // Skip over the bracket and inspect what comes next. 7550 7551 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7552 continue 7553 7554 // Handle cases where the next item is a group. 7555 7556 case OP_ONCE: 7557 fallthrough 7558 case OP_BRA: 7559 fallthrough 7560 case OP_CBRA: 7561 next_code = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7562 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7563 7564 // Check each branch. We have to recurse a level for all but the last 7565 // branch. 7566 7567 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7568 if !(compare_opcodes(tls, code, utf, ucp, cb, base_list, base_end, rec_limit) != 0) { 7569 return DFALSE 7570 } 7571 code = next_code + uintptr(1) + uintptr(DLINK_SIZE) 7572 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7573 } 7574 7575 entered_a_group = DTRUE 7576 continue 7577 7578 case OP_BRAZERO: 7579 fallthrough 7580 case OP_BRAMINZERO: 7581 7582 next_code = code + uintptr(1) 7583 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_BRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_CBRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_ONCE { 7584 return DFALSE 7585 } 7586 7587 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7588 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7589 } 7590 7591 // The bracket content will be checked by the OP_BRA/OP_CBRA case above. 7592 7593 next_code += TPCRE2_SPTR8(1 + DLINK_SIZE) 7594 if !(compare_opcodes(tls, next_code, utf, ucp, cb, base_list, base_end, 7595 rec_limit) != 0) { 7596 return DFALSE 7597 } 7598 7599 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7600 continue 7601 7602 // The next opcode does not need special handling; fall through and use it 7603 // to see if the base can be possessified. 7604 7605 default: 7606 break 7607 } 7608 7609 // We now have the next appropriate opcode to compare with the base. Check 7610 // for a supported opcode, and load its properties. 7611 7612 code = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 7613 if code == uintptr(0) { 7614 return DFALSE 7615 } // Unsupported 7616 7617 // If either opcode is a small character list, set pointers for comparing 7618 // characters from that list with another list, or with a property. 7619 7620 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CHAR { 7621 chr_ptr = base_list + uintptr(2)*4 7622 list_ptr = bp /* &list[0] */ 7623 } else if *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CHAR { 7624 chr_ptr = bp + uintptr(2)*4 7625 list_ptr = base_list 7626 } else if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CLASS || 7627 7628 !(utf != 0) && (*(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_NCLASS) { 7629 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS { 7630 set1 = base_end - uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 2*4))) 7631 list_ptr = bp /* &list[0] */ 7632 } else { 7633 set1 = code - uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 2*4))) 7634 list_ptr = base_list 7635 } 7636 7637 invert_bits = DFALSE 7638 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7639 case OP_CLASS: 7640 fallthrough 7641 case OP_NCLASS: 7642 set2 = func() uintptr { 7643 if list_ptr == bp { 7644 return code 7645 } 7646 return base_end 7647 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 7648 break 7649 fallthrough 7650 7651 case OP_XCLASS: 7652 xclass_flags = func() uintptr { 7653 if list_ptr == bp { 7654 return code 7655 } 7656 return base_end 7657 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) + uintptr(DLINK_SIZE) 7658 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_HASPROP != 0 { 7659 return DFALSE 7660 } 7661 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_MAP == 0 { 7662 // No bits are set for characters < 256. 7663 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7664 return libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_NOT == 0) 7665 } 7666 // Might be an empty repeat. 7667 continue 7668 } 7669 set2 = xclass_flags + uintptr(1) 7670 break 7671 fallthrough 7672 7673 case OP_NOT_DIGIT: 7674 invert_bits = DTRUE 7675 fallthrough 7676 // Fall through 7677 case OP_DIGIT: 7678 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_digit) 7679 break 7680 fallthrough 7681 7682 case OP_NOT_WHITESPACE: 7683 invert_bits = DTRUE 7684 fallthrough 7685 // Fall through 7686 case OP_WHITESPACE: 7687 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_space) 7688 break 7689 fallthrough 7690 7691 case OP_NOT_WORDCHAR: 7692 invert_bits = DTRUE 7693 fallthrough 7694 // Fall through 7695 case OP_WORDCHAR: 7696 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_word) 7697 break 7698 fallthrough 7699 7700 default: 7701 return DFALSE 7702 } 7703 7704 // Because the bit sets are unaligned bytes, we need to perform byte 7705 // comparison here. 7706 7707 set_end = set1 + uintptr(32) 7708 if invert_bits != 0 { 7709 for __ccgo2 := true; __ccgo2; __ccgo2 = set1 < set_end { 7710 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1)))) & ^int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7711 return DFALSE 7712 } 7713 } 7714 } else { 7715 for __ccgo3 := true; __ccgo3; __ccgo3 = set1 < set_end { 7716 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1))))&int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7717 return DFALSE 7718 } 7719 } 7720 } 7721 7722 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7723 return DTRUE 7724 } 7725 // Might be an empty repeat. 7726 continue 7727 } else { 7728 var leftop Tuint32_t 7729 var rightop Tuint32_t 7730 7731 leftop = *(*Tuint32_t)(unsafe.Pointer(base_list)) 7732 rightop = *(*Tuint32_t)(unsafe.Pointer(bp)) 7733 7734 accepted = DFALSE // Always set in non-unicode case. 7735 if leftop == OP_PROP || leftop == OP_NOTPROP { 7736 if rightop == OP_EOD { 7737 accepted = DTRUE 7738 } else if rightop == OP_PROP || rightop == OP_NOTPROP { 7739 var n int32 7740 var p uintptr 7741 var same TBOOL = libc.Bool32(leftop == rightop) 7742 var lisprop TBOOL = libc.Bool32(leftop == OP_PROP) 7743 var risprop TBOOL = libc.Bool32(rightop == OP_PROP) 7744 var bothprop TBOOL = libc.Bool32(lisprop != 0 && risprop != 0) 7745 7746 // There's a table that specifies how each combination is to be 7747 // processed: 7748 // 0 Always return FALSE (never auto-possessify) 7749 // 1 Character groups are distinct (possessify if both are OP_PROP) 7750 // 2 Check character categories in the same group (general or particular) 7751 // 3 Return TRUE if the two opcodes are not the same 7752 // ... see comments below 7753 // 7754 7755 n = int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&propposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 2*4)))*14 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 2*4)))))) 7756 switch n { 7757 case 0: 7758 break 7759 fallthrough 7760 case 1: 7761 accepted = bothprop 7762 break 7763 fallthrough 7764 case 2: 7765 accepted = libc.Bool32(libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) == *(*Tuint32_t)(unsafe.Pointer(bp + 3*4))) != same) 7766 break 7767 fallthrough 7768 case 3: 7769 accepted = libc.BoolInt32(!(same != 0)) 7770 break 7771 fallthrough 7772 7773 case 4: // Left general category, right particular category 7774 accepted = libc.Bool32(risprop != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)))))) == same) 7775 break 7776 fallthrough 7777 7778 case 5: // Right general category, left particular category 7779 accepted = libc.Bool32(lisprop != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)))))) == same) 7780 break 7781 fallthrough 7782 7783 // This code is logically tricky. Think hard before fiddling with it. 7784 // The posspropstab table has four entries per row. Each row relates to 7785 // one of PCRE's special properties such as ALNUM or SPACE or WORD. 7786 // Only WORD actually needs all four entries, but using repeats for the 7787 // others means they can all use the same code below. 7788 // 7789 // The first two entries in each row are Unicode general categories, and 7790 // apply always, because all the characters they include are part of the 7791 // PCRE character set. The third and fourth entries are a general and a 7792 // particular category, respectively, that include one or more relevant 7793 // characters. One or the other is used, depending on whether the check 7794 // is for a general or a particular category. However, in both cases the 7795 // category contains more characters than the specials that are defined 7796 // for the property being tested against. Therefore, it cannot be used 7797 // in a NOTPROP case. 7798 // 7799 // Example: the row for WORD contains ucp_L, ucp_N, ucp_P, ucp_Po. 7800 // Underscore is covered by ucp_P or ucp_Po. 7801 7802 case 6: 7803 fallthrough // Left alphanum vs right general category 7804 case 7: 7805 fallthrough // Left space vs right general category 7806 case 8: // Left word vs right general category 7807 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-6)*4 7808 accepted = libc.Bool32(risprop != 0 && lisprop == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p))) && *(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 1))) && (*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 2))) || !(lisprop != 0)))) 7809 break 7810 fallthrough 7811 7812 case 9: 7813 fallthrough // Right alphanum vs left general category 7814 case 10: 7815 fallthrough // Right space vs left general category 7816 case 11: // Right word vs left general category 7817 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-9)*4 7818 accepted = libc.Bool32(lisprop != 0 && risprop == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p))) && *(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 1))) && (*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 2))) || !(risprop != 0)))) 7819 break 7820 fallthrough 7821 7822 case 12: 7823 fallthrough // Left alphanum vs right particular category 7824 case 13: 7825 fallthrough // Left space vs right particular category 7826 case 14: // Left word vs right particular category 7827 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-12)*4 7828 accepted = libc.Bool32(risprop != 0 && lisprop == libc.Bool32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4))))) != 0 && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p + 1)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4))))) != 0 && (*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 3))) || !(lisprop != 0)))) 7829 break 7830 fallthrough 7831 7832 case 15: 7833 fallthrough // Right alphanum vs left particular category 7834 case 16: 7835 fallthrough // Right space vs left particular category 7836 case 17: // Right word vs left particular category 7837 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-15)*4 7838 accepted = libc.Bool32(lisprop != 0 && risprop == libc.Bool32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4))))) != 0 && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p + 1)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4))))) != 0 && (*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 3))) || !(risprop != 0)))) 7839 break 7840 } 7841 } 7842 } else { 7843 7844 accepted = libc.Bool32(leftop >= OP_NOT_DIGIT && leftop <= OP_EXTUNI && rightop >= OP_NOT_DIGIT && rightop <= OP_DOLLM && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&autoposstab)) + uintptr(leftop-OP_NOT_DIGIT)*21 + uintptr(rightop-OP_NOT_DIGIT))) != 0) 7845 } 7846 7847 if !(accepted != 0) { 7848 return DFALSE 7849 } 7850 7851 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7852 return DTRUE 7853 } 7854 // Might be an empty repeat. 7855 continue 7856 } 7857 7858 // Control reaches here only if one of the items is a small character list. 7859 // All characters are checked against the other side. 7860 7861 for __ccgo4 := true; __ccgo4; __ccgo4 = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) != DNOTACHAR { 7862 chr = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) 7863 7864 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7865 case OP_CHAR: 7866 ochr_ptr = list_ptr + uintptr(2)*4 7867 for __ccgo5 := true; __ccgo5; __ccgo5 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7868 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7869 return DFALSE 7870 } 7871 ochr_ptr += 4 7872 } 7873 break 7874 7875 case OP_NOT: 7876 ochr_ptr = list_ptr + uintptr(2)*4 7877 for __ccgo6 := true; __ccgo6; __ccgo6 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7878 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7879 break 7880 } 7881 ochr_ptr += 4 7882 } 7883 if *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) == DNOTACHAR { 7884 return DFALSE 7885 } // Not found 7886 break 7887 7888 // Note that OP_DIGIT etc. are generated only when PCRE2_UCP is *not* 7889 // set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 7890 7891 case OP_DIGIT: 7892 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit != 0 { 7893 return DFALSE 7894 } 7895 break 7896 7897 case OP_NOT_DIGIT: 7898 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit == 0 { 7899 return DFALSE 7900 } 7901 break 7902 7903 case OP_WHITESPACE: 7904 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space != 0 { 7905 return DFALSE 7906 } 7907 break 7908 7909 case OP_NOT_WHITESPACE: 7910 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space == 0 { 7911 return DFALSE 7912 } 7913 break 7914 7915 case OP_WORDCHAR: 7916 if chr < Tuint32_t(255) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word != 0 { 7917 return DFALSE 7918 } 7919 break 7920 7921 case OP_NOT_WORDCHAR: 7922 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word == 0 { 7923 return DFALSE 7924 } 7925 break 7926 7927 case OP_HSPACE: 7928 switch chr { 7929 case Tuint32_t('\011'): 7930 fallthrough 7931 case Tuint32_t('\040'): 7932 fallthrough 7933 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7934 fallthrough 7935 case Tuint32_t(0x1680): 7936 fallthrough /* OGHAM SPACE MARK */ 7937 case Tuint32_t(0x180e): 7938 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7939 case Tuint32_t(0x2000): 7940 fallthrough /* EN QUAD */ 7941 case Tuint32_t(0x2001): 7942 fallthrough /* EM QUAD */ 7943 case Tuint32_t(0x2002): 7944 fallthrough /* EN SPACE */ 7945 case Tuint32_t(0x2003): 7946 fallthrough /* EM SPACE */ 7947 case Tuint32_t(0x2004): 7948 fallthrough /* THREE-PER-EM SPACE */ 7949 case Tuint32_t(0x2005): 7950 fallthrough /* FOUR-PER-EM SPACE */ 7951 case Tuint32_t(0x2006): 7952 fallthrough /* SIX-PER-EM SPACE */ 7953 case Tuint32_t(0x2007): 7954 fallthrough /* FIGURE SPACE */ 7955 case Tuint32_t(0x2008): 7956 fallthrough /* PUNCTUATION SPACE */ 7957 case Tuint32_t(0x2009): 7958 fallthrough /* THIN SPACE */ 7959 case Tuint32_t(0x200A): 7960 fallthrough /* HAIR SPACE */ 7961 case Tuint32_t(0x202f): 7962 fallthrough /* NARROW NO-BREAK SPACE */ 7963 case Tuint32_t(0x205f): 7964 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7965 case Tuint32_t(0x3000): 7966 return DFALSE 7967 default: 7968 break 7969 } 7970 break 7971 7972 case OP_NOT_HSPACE: 7973 switch chr { 7974 case Tuint32_t('\011'): 7975 fallthrough 7976 case Tuint32_t('\040'): 7977 fallthrough 7978 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7979 fallthrough 7980 case Tuint32_t(0x1680): 7981 fallthrough /* OGHAM SPACE MARK */ 7982 case Tuint32_t(0x180e): 7983 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7984 case Tuint32_t(0x2000): 7985 fallthrough /* EN QUAD */ 7986 case Tuint32_t(0x2001): 7987 fallthrough /* EM QUAD */ 7988 case Tuint32_t(0x2002): 7989 fallthrough /* EN SPACE */ 7990 case Tuint32_t(0x2003): 7991 fallthrough /* EM SPACE */ 7992 case Tuint32_t(0x2004): 7993 fallthrough /* THREE-PER-EM SPACE */ 7994 case Tuint32_t(0x2005): 7995 fallthrough /* FOUR-PER-EM SPACE */ 7996 case Tuint32_t(0x2006): 7997 fallthrough /* SIX-PER-EM SPACE */ 7998 case Tuint32_t(0x2007): 7999 fallthrough /* FIGURE SPACE */ 8000 case Tuint32_t(0x2008): 8001 fallthrough /* PUNCTUATION SPACE */ 8002 case Tuint32_t(0x2009): 8003 fallthrough /* THIN SPACE */ 8004 case Tuint32_t(0x200A): 8005 fallthrough /* HAIR SPACE */ 8006 case Tuint32_t(0x202f): 8007 fallthrough /* NARROW NO-BREAK SPACE */ 8008 case Tuint32_t(0x205f): 8009 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 8010 case Tuint32_t(0x3000): 8011 break 8012 default: 8013 return DFALSE 8014 } 8015 break 8016 8017 case OP_ANYNL: 8018 fallthrough 8019 case OP_VSPACE: 8020 switch chr { 8021 case Tuint32_t('\012'): 8022 fallthrough 8023 case Tuint32_t('\013'): 8024 fallthrough 8025 case Tuint32_t('\014'): 8026 fallthrough 8027 case Tuint32_t('\015'): 8028 fallthrough 8029 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8030 fallthrough 8031 case Tuint32_t(0x2028): 8032 fallthrough /* LINE SEPARATOR */ 8033 case Tuint32_t(0x2029): 8034 return DFALSE 8035 default: 8036 break 8037 } 8038 break 8039 8040 case OP_NOT_VSPACE: 8041 switch chr { 8042 case Tuint32_t('\012'): 8043 fallthrough 8044 case Tuint32_t('\013'): 8045 fallthrough 8046 case Tuint32_t('\014'): 8047 fallthrough 8048 case Tuint32_t('\015'): 8049 fallthrough 8050 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8051 fallthrough 8052 case Tuint32_t(0x2028): 8053 fallthrough /* LINE SEPARATOR */ 8054 case Tuint32_t(0x2029): 8055 break 8056 default: 8057 return DFALSE 8058 } 8059 break 8060 8061 case OP_DOLL: 8062 fallthrough 8063 case OP_EODN: 8064 switch chr { 8065 case Tuint32_t('\015'): 8066 fallthrough 8067 case Tuint32_t('\012'): 8068 fallthrough 8069 case Tuint32_t('\013'): 8070 fallthrough 8071 case Tuint32_t('\014'): 8072 fallthrough 8073 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8074 fallthrough 8075 case Tuint32_t(0x2028): 8076 fallthrough 8077 case Tuint32_t(0x2029): 8078 return DFALSE 8079 } 8080 break 8081 8082 case OP_EOD: // Can always possessify before \z 8083 break 8084 8085 case OP_PROP: 8086 fallthrough 8087 case OP_NOTPROP: 8088 if !(check_char_prop(tls, chr, *(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)), *(*Tuint32_t)(unsafe.Pointer(list_ptr + 3*4)), 8089 libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(list_ptr)) == OP_NOTPROP)) != 0) { 8090 return DFALSE 8091 } 8092 break 8093 8094 case OP_NCLASS: 8095 if chr > Tuint32_t(255) { 8096 return DFALSE 8097 } 8098 fallthrough 8099 // Fall through 8100 8101 case OP_CLASS: 8102 if chr > Tuint32_t(255) { 8103 break 8104 } 8105 class_bitset = func() uintptr { 8106 if list_ptr == bp { 8107 return code 8108 } 8109 return base_end 8110 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 8111 if uint32(*(*Tuint8_t)(unsafe.Pointer(class_bitset + uintptr(chr>>3))))&(uint32(1)<<(chr&Tuint32_t(7))) != uint32(0) { 8112 return DFALSE 8113 } 8114 break 8115 8116 case OP_XCLASS: 8117 if X_pcre2_xclass_8(tls, chr, func() uintptr { 8118 if list_ptr == bp { 8119 return code 8120 } 8121 return base_end 8122 }()-uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)))+uintptr(DLINK_SIZE), utf) != 0 { 8123 return DFALSE 8124 } 8125 break 8126 8127 default: 8128 return DFALSE 8129 } 8130 8131 chr_ptr += 4 8132 } 8133 8134 // At least one character must be matched from this opcode. 8135 8136 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 8137 return DTRUE 8138 } 8139 } 8140 return TBOOL(0) 8141 8142 // Control never reaches here. There used to be a fail-save return FALSE; here, 8143 // but some compilers complain about an unreachable statement. 8144 } 8145 8146 // ************************************************ 8147 // 8148 // Scan compiled regex for auto-possession * 8149 // 8150 8151 // Replaces single character iterations with their possessive alternatives 8152 // if appropriate. This function modifies the compiled opcode! Hitting a 8153 // non-existent opcode may indicate a bug in PCRE2, but it can also be caused if a 8154 // bad UTF string was compiled with PCRE2_NO_UTF_CHECK. The rec_limit catches 8155 // overly complicated or large patterns. In these cases, the check just stops, 8156 // leaving the remainder of the pattern unpossessified. 8157 // 8158 // Arguments: 8159 // code points to start of the byte code 8160 // cb compile data block 8161 // 8162 // Returns: 0 for success 8163 // -1 if a non-existant opcode is encountered 8164 8165 func X_pcre2_auto_possessify_8(tls *libc.TLS, code uintptr, cb uintptr) int32 { /* pcre2_auto_possess.c:1132:1: */ 8166 bp := tls.Alloc(36) 8167 defer tls.Free(36) 8168 8169 var c TPCRE2_UCHAR8 8170 var end TPCRE2_SPTR8 8171 var repeat_opcode uintptr 8172 // var list [8]Tuint32_t at bp, 32 8173 8174 *(*int32)(unsafe.Pointer(bp + 32 /* rec_limit */)) = 1000 // Was 10,000 but clang+ASAN uses a lot of stack. 8175 var utf TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 8176 var ucp TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 8177 8178 for { 8179 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8180 8181 if int32(c) >= OP_TABLE_LENGTH { 8182 return -1 8183 } // Something gone wrong 8184 8185 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 8186 c = TPCRE2_UCHAR8(int32(c) - (int32(get_repeat_base(tls, c)) - OP_STAR)) 8187 if int32(c) <= OP_MINUPTO { 8188 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8189 } else { 8190 end = uintptr(0) 8191 } 8192 *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) = Tuint32_t(libc.Bool32(int32(c) == OP_STAR || int32(c) == OP_PLUS || int32(c) == OP_QUERY || int32(c) == OP_UPTO)) 8193 8194 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, 8195 bp+32) != 0 { 8196 switch int32(c) { 8197 case OP_STAR: 8198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_STAR) 8199 break 8200 fallthrough 8201 8202 case OP_MINSTAR: 8203 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_MINSTAR) 8204 break 8205 fallthrough 8206 8207 case OP_PLUS: 8208 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_PLUS) 8209 break 8210 fallthrough 8211 8212 case OP_MINPLUS: 8213 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_MINPLUS) 8214 break 8215 fallthrough 8216 8217 case OP_QUERY: 8218 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_QUERY) 8219 break 8220 fallthrough 8221 8222 case OP_MINQUERY: 8223 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_MINQUERY) 8224 break 8225 fallthrough 8226 8227 case OP_UPTO: 8228 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_UPTO) 8229 break 8230 fallthrough 8231 8232 case OP_MINUPTO: 8233 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_MINUPTO) 8234 break 8235 } 8236 } 8237 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8238 } else if int32(c) == OP_CLASS || int32(c) == OP_NCLASS || int32(c) == OP_XCLASS { 8239 if int32(c) == OP_XCLASS { 8240 repeat_opcode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8241 } else { 8242 repeat_opcode = code + uintptr(1) + uintptr(uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 8243 } 8244 8245 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) 8246 if int32(c) >= OP_CRSTAR && int32(c) <= OP_CRMINRANGE { 8247 // The return from get_chr_property_list() will never be NULL when 8248 // code (aka c) is one of the three class opcodes. However, gcc with 8249 // -fanalyzer notes that a NULL return is possible, and grumbles. Hence we 8250 // put in a check. 8251 8252 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8253 *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) = Tuint32_t(libc.Bool32(int32(c)&1 == 0)) 8254 8255 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, bp+32) != 0 { 8256 switch int32(c) { 8257 case OP_CRSTAR: 8258 fallthrough 8259 case OP_CRMINSTAR: 8260 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSSTAR 8261 break 8262 fallthrough 8263 8264 case OP_CRPLUS: 8265 fallthrough 8266 case OP_CRMINPLUS: 8267 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSPLUS 8268 break 8269 fallthrough 8270 8271 case OP_CRQUERY: 8272 fallthrough 8273 case OP_CRMINQUERY: 8274 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSQUERY 8275 break 8276 fallthrough 8277 8278 case OP_CRRANGE: 8279 fallthrough 8280 case OP_CRMINRANGE: 8281 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSRANGE 8282 break 8283 } 8284 } 8285 } 8286 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8287 } 8288 8289 switch int32(c) { 8290 case OP_END: 8291 return 0 8292 8293 case OP_TYPESTAR: 8294 fallthrough 8295 case OP_TYPEMINSTAR: 8296 fallthrough 8297 case OP_TYPEPLUS: 8298 fallthrough 8299 case OP_TYPEMINPLUS: 8300 fallthrough 8301 case OP_TYPEQUERY: 8302 fallthrough 8303 case OP_TYPEMINQUERY: 8304 fallthrough 8305 case OP_TYPEPOSSTAR: 8306 fallthrough 8307 case OP_TYPEPOSPLUS: 8308 fallthrough 8309 case OP_TYPEPOSQUERY: 8310 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 8311 code += uintptr(2) 8312 } 8313 break 8314 8315 case OP_TYPEUPTO: 8316 fallthrough 8317 case OP_TYPEMINUPTO: 8318 fallthrough 8319 case OP_TYPEEXACT: 8320 fallthrough 8321 case OP_TYPEPOSUPTO: 8322 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 8323 code += uintptr(2) 8324 } 8325 break 8326 8327 case OP_CALLOUT_STR: 8328 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 8329 break 8330 8331 case OP_XCLASS: 8332 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8333 break 8334 8335 case OP_MARK: 8336 fallthrough 8337 case OP_COMMIT_ARG: 8338 fallthrough 8339 case OP_PRUNE_ARG: 8340 fallthrough 8341 case OP_SKIP_ARG: 8342 fallthrough 8343 case OP_THEN_ARG: 8344 code += uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 8345 break 8346 } 8347 8348 // Add in the fixed length from the table 8349 8350 code += uintptr(X_pcre2_OP_lengths_8[c]) 8351 8352 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 8353 // followed by a multi-byte character. The length in the table is a minimum, so 8354 // we have to arrange to skip the extra code units. 8355 8356 if utf != 0 { 8357 switch int32(c) { 8358 case OP_CHAR: 8359 fallthrough 8360 case OP_CHARI: 8361 fallthrough 8362 case OP_NOT: 8363 fallthrough 8364 case OP_NOTI: 8365 fallthrough 8366 case OP_STAR: 8367 fallthrough 8368 case OP_MINSTAR: 8369 fallthrough 8370 case OP_PLUS: 8371 fallthrough 8372 case OP_MINPLUS: 8373 fallthrough 8374 case OP_QUERY: 8375 fallthrough 8376 case OP_MINQUERY: 8377 fallthrough 8378 case OP_UPTO: 8379 fallthrough 8380 case OP_MINUPTO: 8381 fallthrough 8382 case OP_EXACT: 8383 fallthrough 8384 case OP_POSSTAR: 8385 fallthrough 8386 case OP_POSPLUS: 8387 fallthrough 8388 case OP_POSQUERY: 8389 fallthrough 8390 case OP_POSUPTO: 8391 fallthrough 8392 case OP_STARI: 8393 fallthrough 8394 case OP_MINSTARI: 8395 fallthrough 8396 case OP_PLUSI: 8397 fallthrough 8398 case OP_MINPLUSI: 8399 fallthrough 8400 case OP_QUERYI: 8401 fallthrough 8402 case OP_MINQUERYI: 8403 fallthrough 8404 case OP_UPTOI: 8405 fallthrough 8406 case OP_MINUPTOI: 8407 fallthrough 8408 case OP_EXACTI: 8409 fallthrough 8410 case OP_POSSTARI: 8411 fallthrough 8412 case OP_POSPLUSI: 8413 fallthrough 8414 case OP_POSQUERYI: 8415 fallthrough 8416 case OP_POSUPTOI: 8417 fallthrough 8418 case OP_NOTSTAR: 8419 fallthrough 8420 case OP_NOTMINSTAR: 8421 fallthrough 8422 case OP_NOTPLUS: 8423 fallthrough 8424 case OP_NOTMINPLUS: 8425 fallthrough 8426 case OP_NOTQUERY: 8427 fallthrough 8428 case OP_NOTMINQUERY: 8429 fallthrough 8430 case OP_NOTUPTO: 8431 fallthrough 8432 case OP_NOTMINUPTO: 8433 fallthrough 8434 case OP_NOTEXACT: 8435 fallthrough 8436 case OP_NOTPOSSTAR: 8437 fallthrough 8438 case OP_NOTPOSPLUS: 8439 fallthrough 8440 case OP_NOTPOSQUERY: 8441 fallthrough 8442 case OP_NOTPOSUPTO: 8443 fallthrough 8444 case OP_NOTSTARI: 8445 fallthrough 8446 case OP_NOTMINSTARI: 8447 fallthrough 8448 case OP_NOTPLUSI: 8449 fallthrough 8450 case OP_NOTMINPLUSI: 8451 fallthrough 8452 case OP_NOTQUERYI: 8453 fallthrough 8454 case OP_NOTMINQUERYI: 8455 fallthrough 8456 case OP_NOTUPTOI: 8457 fallthrough 8458 case OP_NOTMINUPTOI: 8459 fallthrough 8460 case OP_NOTEXACTI: 8461 fallthrough 8462 case OP_NOTPOSSTARI: 8463 fallthrough 8464 case OP_NOTPOSPLUSI: 8465 fallthrough 8466 case OP_NOTPOSQUERYI: 8467 fallthrough 8468 case OP_NOTPOSUPTOI: 8469 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 8470 code += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 8471 } 8472 break 8473 } 8474 } 8475 } 8476 return int32(0) 8477 } 8478 8479 // End of pcre2_auto_possess.c 8480 8481 // This function is needed only when memmove() is not available. 8482 8483 // End of pcre2_internal.h 8484 8485 var X_pcre2_default_tables_8 = [1088]Tuint8_t{ 8486 8487 // This table is a lower casing table. 8488 8489 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8490 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8491 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8492 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8493 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8494 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8495 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8496 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8497 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8498 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8499 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8500 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8501 Tuint8_t(96), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8502 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8503 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8504 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8505 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8506 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8507 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8508 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8509 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8510 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8511 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8512 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8513 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8514 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8515 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8516 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8517 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8518 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8519 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8520 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8521 8522 // This table is a case flipping table. 8523 8524 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8525 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8526 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8527 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8528 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8529 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8530 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8531 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8532 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8533 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8534 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8535 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8536 Tuint8_t(96), Tuint8_t(65), Tuint8_t(66), Tuint8_t(67), Tuint8_t(68), Tuint8_t(69), Tuint8_t(70), Tuint8_t(71), 8537 Tuint8_t(72), Tuint8_t(73), Tuint8_t(74), Tuint8_t(75), Tuint8_t(76), Tuint8_t(77), Tuint8_t(78), Tuint8_t(79), 8538 Tuint8_t(80), Tuint8_t(81), Tuint8_t(82), Tuint8_t(83), Tuint8_t(84), Tuint8_t(85), Tuint8_t(86), Tuint8_t(87), 8539 Tuint8_t(88), Tuint8_t(89), Tuint8_t(90), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8540 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8541 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8542 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8543 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8544 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8545 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8546 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8547 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8548 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8549 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8550 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8551 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8552 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8553 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8554 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8555 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8556 8557 // This table contains bit maps for various character classes. Each map is 32 8558 // bytes long and the bits run from the least significant end of each byte. The 8559 // classes that have their own maps are: space, xdigit, digit, upper, lower, word, 8560 // graph, print, punct, and cntrl. Other classes are built from combinations. 8561 8562 Tuint8_t(0x00), Tuint8_t(0x3e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // space 8563 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8564 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8565 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8566 8567 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // xdigit 8568 Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8569 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8570 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8571 8572 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // digit 8573 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8574 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8575 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8576 8577 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // upper 8578 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8579 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8580 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8581 8582 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // lower 8583 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8584 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8585 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8586 8587 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // word 8588 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x87), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8589 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8590 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8591 8592 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // graph 8593 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8594 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8595 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8596 8597 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // print 8598 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8599 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8600 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8601 8602 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0x00), Tuint8_t(0xfc), // punct 8603 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xf8), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x78), 8604 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8605 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8606 8607 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // cntrl 8608 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x80), 8609 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8610 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8611 8612 // This table identifies various classes of character by individual bits: 8613 // 0x01 white space character 8614 // 0x02 letter 8615 // 0x04 lower case letter 8616 // 0x08 decimal digit 8617 // 0x10 alphanumeric or '_' 8618 8619 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 0- 7 8620 Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), // 8- 15 8621 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 16- 23 8622 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 24- 31 8623 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // - ' 8624 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // ( - / 8625 Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), // 0 - 7 8626 Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 8 - ? 8627 Tuint8_t(0x00), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // @ - G 8628 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // H - O 8629 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // P - W 8630 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x10), // X - _ 8631 Tuint8_t(0x00), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // ` - g 8632 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // h - o 8633 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // p - w 8634 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // x -127 8635 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 128-135 8636 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 136-143 8637 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 144-151 8638 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 152-159 8639 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 160-167 8640 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 168-175 8641 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 176-183 8642 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 184-191 8643 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 192-199 8644 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 200-207 8645 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 208-215 8646 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 216-223 8647 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 224-231 8648 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 232-239 8649 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 240-247 8650 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00)} /* pcre2_chartables.c:34:15 */ // 248-255 8651 8652 // End of pcre2_chartables.c 8653 8654 // ************************************************ 8655 // 8656 // Code parameters and static tables * 8657 // 8658 8659 // COMPILE_WORK_SIZE specifies the size of stack workspace, which is used in 8660 // different ways in the different pattern scans. The parsing and group- 8661 // identifying pre-scan uses it to handle nesting, and needs it to be 16-bit 8662 // aligned for this. Having defined the size in code units, we set up 8663 // C16_WORK_SIZE as the number of elements in the 16-bit vector. 8664 // 8665 // During the first compiling phase, when determining how much memory is required, 8666 // the regex is partly compiled into this space, but the compiled parts are 8667 // discarded as soon as they can be, so that hopefully there will never be an 8668 // overrun. The code does, however, check for an overrun, which can occur for 8669 // pathological patterns. The size of the workspace depends on LINK_SIZE because 8670 // the length of compiled items varies with this. 8671 // 8672 // In the real compile phase, this workspace is not currently used. 8673 8674 // A uint32_t vector is used for caching information about the size of 8675 // capturing groups, to improve performance. A default is created on the stack of 8676 // this size. 8677 8678 // The overrun tests check for a slightly smaller size so that they detect the 8679 // overrun before it actually does run off the end of the data block. 8680 8681 // This value determines the size of the initial vector that is used for 8682 // remembering named groups during the pre-compile. It is allocated on the stack, 8683 // but if it is too small, it is expanded, in a similar way to the workspace. The 8684 // value is the number of slots in the list. 8685 8686 // The pre-compiling pass over the pattern creates a parsed pattern in a vector 8687 // of uint32_t. For short patterns this lives on the stack, with this size. Heap 8688 // memory is used for longer patterns. 8689 8690 // Maximum length value to check against when making sure that the variable 8691 // that holds the compiled pattern length does not overflow. We make it a bit less 8692 // than INT_MAX to allow for adding in group terminating code units, so that we 8693 // don't have to check them every time. 8694 8695 // Code values for parsed patterns, which are stored in a vector of 32-bit 8696 // unsigned ints. Values less than META_END are literal data values. The coding 8697 // for identifying the item is in the top 16-bits, leaving 16 bits for the 8698 // additional data that some of them need. The META_CODE, META_DATA, and META_DIFF 8699 // macros are used to manipulate parsed pattern elements. 8700 // 8701 // NOTE: When these definitions are changed, the table of extra lengths for each 8702 // code (meta_extra_lengths, just below) must be updated to remain in step. 8703 8704 // These must be kept together to make it easy to check that an assertion 8705 // is present where expected in a conditional group. 8706 8707 // These cannot be conditions 8708 8709 // These must be kept in this order, with consecutive values, and the _ARG 8710 // versions of COMMIT, PRUNE, SKIP, and THEN immediately after their non-argument 8711 // versions. 8712 8713 // These must be kept in groups of adjacent 3 values, and all together. 8714 8715 // This is a special "meta code" that is used only to distinguish (*asr: from 8716 // (*sr: in the table of aphabetic assertions. It is never stored in the parsed 8717 // pattern because (*asr: is turned into (*sr:(*atomic: at that stage. There is 8718 // therefore no need for it to have a length entry, so use a high value. 8719 8720 // Table of extra lengths for each of the meta codes. Must be kept in step with 8721 // the definitions above. For some items these values are a basic length to which 8722 // a variable amount has to be added. 8723 8724 var meta_extra_lengths = [64]uint8{ 8725 uint8(0), // META_END 8726 uint8(0), // META_ALT 8727 uint8(0), // META_ATOMIC 8728 uint8(0), // META_BACKREF - more if group is >= 10 8729 uint8(1 + DSIZEOFFSET), 8730 uint8(1), // META_BIGVALUE 8731 uint8(3), // META_CALLOUT_NUMBER 8732 uint8(3 + DSIZEOFFSET), 8733 uint8(0), // META_CAPTURE 8734 uint8(0), // META_CIRCUMFLEX 8735 uint8(0), // META_CLASS 8736 uint8(0), // META_CLASS_EMPTY 8737 uint8(0), // META_CLASS_EMPTY_NOT 8738 uint8(0), // META_CLASS_END 8739 uint8(0), // META_CLASS_NOT 8740 uint8(0), // META_COND_ASSERT 8741 uint8(DSIZEOFFSET), // META_COND_DEFINE 8742 uint8(1 + DSIZEOFFSET), 8743 uint8(1 + DSIZEOFFSET), 8744 uint8(1 + DSIZEOFFSET), 8745 uint8(1 + DSIZEOFFSET), 8746 uint8(3), // META_COND_VERSION 8747 uint8(0), // META_DOLLAR 8748 uint8(0), // META_DOT 8749 uint8(0), // META_ESCAPE - more for ESC_P, ESC_p, ESC_g, ESC_k 8750 uint8(0), // META_KET 8751 uint8(0), // META_NOCAPTURE 8752 uint8(1), // META_OPTIONS 8753 uint8(1), // META_POSIX 8754 uint8(1), // META_POSIX_NEG 8755 uint8(0), // META_RANGE_ESCAPED 8756 uint8(0), // META_RANGE_LITERAL 8757 uint8(DSIZEOFFSET), // META_RECURSE 8758 uint8(1 + DSIZEOFFSET), 8759 uint8(0), // META_SCRIPT_RUN 8760 uint8(0), // META_LOOKAHEAD 8761 uint8(0), // META_LOOKAHEADNOT 8762 uint8(DSIZEOFFSET), // META_LOOKBEHIND 8763 uint8(DSIZEOFFSET), // META_LOOKBEHINDNOT 8764 uint8(0), // META_LOOKAHEAD_NA 8765 uint8(DSIZEOFFSET), // META_LOOKBEHIND_NA 8766 uint8(1), // META_MARK - plus the string length 8767 uint8(0), // META_ACCEPT 8768 uint8(0), // META_FAIL 8769 uint8(0), // META_COMMIT 8770 uint8(1), // META_COMMIT_ARG - plus the string length 8771 uint8(0), // META_PRUNE 8772 uint8(1), // META_PRUNE_ARG - plus the string length 8773 uint8(0), // META_SKIP 8774 uint8(1), // META_SKIP_ARG - plus the string length 8775 uint8(0), // META_THEN 8776 uint8(1), // META_THEN_ARG - plus the string length 8777 uint8(0), // META_ASTERISK 8778 uint8(0), // META_ASTERISK_PLUS 8779 uint8(0), // META_ASTERISK_QUERY 8780 uint8(0), // META_PLUS 8781 uint8(0), // META_PLUS_PLUS 8782 uint8(0), // META_PLUS_QUERY 8783 uint8(0), // META_QUERY 8784 uint8(0), // META_QUERY_PLUS 8785 uint8(0), // META_QUERY_QUERY 8786 uint8(2), // META_MINMAX 8787 uint8(2), // META_MINMAX_PLUS 8788 uint8(2), // META_MINMAX_QUERY 8789 } /* pcre2_compile.c:306:22 */ 8790 8791 // Macro for setting individual bits in class bitmaps. It took some 8792 // experimenting to figure out how to stop gcc 5.3.0 from warning with 8793 // -Wconversion. This version gets a warning: 8794 // 8795 // #define SETBIT(a,b) a[(b)/8] |= (uint8_t)(1u << ((b)&7)) 8796 // 8797 // Let's hope the apparently less efficient version isn't actually so bad if the 8798 // compiler is clever with identical subexpressions. 8799 8800 // Values and flags for the unsigned xxcuflags variables that accompany xxcu 8801 // variables, which are concerned with first and required code units. A value 8802 // greater than or equal to REQ_NONE means "no code unit set"; otherwise the 8803 // matching xxcu variable is set, and the low valued bits are relevant. 8804 8805 // These flags are used in the groupinfo vector. 8806 8807 // This simple test for a decimal digit works for both ASCII/Unicode and EBCDIC 8808 // and is fast (a good compiler can turn it into a subtraction and unsigned 8809 // comparison). 8810 8811 // Table to identify hex digits. The tables in chartables are dependent on the 8812 // locale, and may mark arbitrary characters as digits. We want to recognize only 8813 // 0-9, a-z, and A-Z as hex digits, which is why we have a private table here. It 8814 // costs 256 bytes, but it is a lot faster than doing character value tests (at 8815 // least in some simple cases I timed), and in some applications one wants PCRE2 8816 // to compile efficiently as well as match efficiently. The value in the table is 8817 // the binary hex digit value, or 0xff for non-hex digits. 8818 8819 // This is the "normal" case, for ASCII systems, and EBCDIC systems running in 8820 // UTF-8 mode. 8821 8822 var xdigitab = [256]Tuint8_t{ 8823 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 0- 7 8824 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 8- 15 8825 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 16- 23 8826 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 24- 31 8827 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // - ' 8828 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // ( - / 8829 Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x02), Tuint8_t(0x03), Tuint8_t(0x04), Tuint8_t(0x05), Tuint8_t(0x06), Tuint8_t(0x07), // 0 - 7 8830 Tuint8_t(0x08), Tuint8_t(0x09), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 8 - ? 8831 Tuint8_t(0xff), Tuint8_t(0x0a), Tuint8_t(0x0b), Tuint8_t(0x0c), Tuint8_t(0x0d), Tuint8_t(0x0e), Tuint8_t(0x0f), Tuint8_t(0xff), // @ - G 8832 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // H - O 8833 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // P - W 8834 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // X - _ 8835 Tuint8_t(0xff), Tuint8_t(0x0a), Tuint8_t(0x0b), Tuint8_t(0x0c), Tuint8_t(0x0d), Tuint8_t(0x0e), Tuint8_t(0x0f), Tuint8_t(0xff), // ` - g 8836 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // h - o 8837 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // p - w 8838 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // x -127 8839 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 128-135 8840 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 136-143 8841 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 144-151 8842 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 152-159 8843 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 160-167 8844 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 168-175 8845 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 176-183 8846 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 184-191 8847 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 192-199 8848 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 2ff-207 8849 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 208-215 8850 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 216-223 8851 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 224-231 8852 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 232-239 8853 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 240-247 8854 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff)} /* pcre2_compile.c:422:22 */ // 248-255 8855 8856 // Table for handling alphanumeric escaped characters. Positive returns are 8857 // simple data values; negative values are for special things like \d and so on. 8858 // Zero means further processing is needed (for things like \x), or the escape is 8859 // invalid. 8860 8861 // This is the "normal" table for ASCII systems or for EBCDIC systems running 8862 // in UTF-8 mode. It runs from '0' to 'z'. 8863 8864 var escapes = [75]int16{ 8865 int16(0), int16(0), 8866 int16(0), int16(0), 8867 int16(0), int16(0), 8868 int16(0), int16(0), 8869 int16(0), int16(0), 8870 int16('\072'), int16('\073'), 8871 int16('\074'), int16('\075'), 8872 int16('\076'), int16('\077'), 8873 int16('\100'), int16(-ESC_A), 8874 int16(-ESC_B), int16(-ESC_C), 8875 int16(-ESC_D), int16(-ESC_E), 8876 int16(0), int16(-ESC_G), 8877 int16(-ESC_H), int16(0), 8878 int16(0), int16(-ESC_K), 8879 int16(0), int16(0), 8880 int16(-ESC_N), int16(0), 8881 int16(-ESC_P), int16(-ESC_Q), 8882 int16(-ESC_R), int16(-ESC_S), 8883 int16(0), int16(0), 8884 int16(-ESC_V), int16(-ESC_W), 8885 int16(-ESC_X), int16(0), 8886 int16(-ESC_Z), int16('\133'), 8887 int16('\134'), int16('\135'), 8888 int16('\136'), int16('\137'), 8889 int16('\140'), int16('\007'), 8890 int16(-ESC_b), int16(0), 8891 int16(-ESC_d), int16('\033'), 8892 int16('\014'), int16(0), 8893 int16(-ESC_h), int16(0), 8894 int16(0), int16(-ESC_k), 8895 int16(0), int16(0), 8896 int16('\012'), int16(0), 8897 int16(-ESC_p), int16(0), 8898 int16('\015'), int16(-ESC_s), 8899 int16('\011'), int16(0), 8900 int16(-ESC_v), int16(-ESC_w), 8901 int16(0), int16(0), 8902 int16(-ESC_z), 8903 } /* pcre2_compile.c:511:24 */ 8904 8905 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8906 // searched linearly. Put all the names into a single string, in order to reduce 8907 // the number of relocations when a shared library is dynamically linked. The 8908 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8909 // platforms. 8910 8911 type Sverbitem = struct { 8912 Flen uint32 8913 Fmeta Tuint32_t 8914 Fhas_arg int32 8915 } /* pcre2_compile.c:602:9 */ 8916 8917 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8918 // searched linearly. Put all the names into a single string, in order to reduce 8919 // the number of relocations when a shared library is dynamically linked. The 8920 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8921 // platforms. 8922 8923 type Tverbitem = Sverbitem /* pcre2_compile.c:606:3 */ 8924 8925 var verbnames = 8926 // Empty name is a shorthand for MARK 8927 8928 *(*[43]int8)(unsafe.Pointer(ts)) /* pcre2_compile.c:608:19 */ 8929 8930 var verbs = [9]Tverbitem{ 8931 {Fmeta: DMETA_MARK, Fhas_arg: +1}, // > 0 => must have an argument 8932 {Flen: uint32(4), Fmeta: DMETA_MARK, Fhas_arg: +1}, 8933 {Flen: uint32(6), Fmeta: DMETA_ACCEPT, Fhas_arg: -1}, // < 0 => Optional argument, convert to pre-MARK 8934 {Flen: uint32(1), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8935 {Flen: uint32(4), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8936 {Flen: uint32(6), Fmeta: DMETA_COMMIT}, 8937 {Flen: uint32(5), Fmeta: DMETA_PRUNE}, // Optional argument; bump META code if found 8938 {Flen: uint32(4), Fmeta: DMETA_SKIP}, 8939 {Flen: uint32(4), Fmeta: DMETA_THEN}, 8940 } /* pcre2_compile.c:619:23 */ 8941 8942 var verbcount int32 = int32(uint32(unsafe.Sizeof(verbs)) / uint32(unsafe.Sizeof(Tverbitem{}))) /* pcre2_compile.c:631:18 */ 8943 8944 // Verb opcodes, indexed by their META code offset from META_MARK. 8945 8946 var verbops = [11]Tuint32_t{ 8947 OP_MARK, OP_ACCEPT, OP_FAIL, OP_COMMIT, OP_COMMIT_ARG, OP_PRUNE, 8948 OP_PRUNE_ARG, OP_SKIP, OP_SKIP_ARG, OP_THEN, OP_THEN_ARG} /* pcre2_compile.c:635:23 */ 8949 8950 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8951 8952 type Salasitem = struct { 8953 Flen uint32 8954 Fmeta Tuint32_t 8955 } /* pcre2_compile.c:641:9 */ 8956 8957 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8958 8959 type Talasitem = Salasitem /* pcre2_compile.c:644:3 */ 8960 8961 var alasnames = *(*[210]int8)(unsafe.Pointer(ts + 43)) /* pcre2_compile.c:646:19 */ 8962 8963 var alasmeta = [17]Talasitem{ 8964 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEAD}, 8965 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHIND}, 8966 {Flen: uint32(5), Fmeta: DMETA_LOOKAHEAD_NA}, 8967 {Flen: uint32(5), Fmeta: DMETA_LOOKBEHIND_NA}, 8968 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEADNOT}, 8969 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHINDNOT}, 8970 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEAD}, 8971 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHIND}, 8972 {Flen: uint32(29), Fmeta: DMETA_LOOKAHEAD_NA}, 8973 {Flen: uint32(30), Fmeta: DMETA_LOOKBEHIND_NA}, 8974 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEADNOT}, 8975 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHINDNOT}, 8976 {Flen: uint32(6), Fmeta: DMETA_ATOMIC}, 8977 {Flen: uint32(2), Fmeta: DMETA_SCRIPT_RUN}, // sr = script run 8978 {Flen: uint32(3), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // asr = atomic script run 8979 {Flen: uint32(10), Fmeta: DMETA_SCRIPT_RUN}, // script run 8980 {Flen: uint32(17), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // atomic script run 8981 } /* pcre2_compile.c:665:23 */ 8982 8983 var alascount int32 = int32(uint32(unsafe.Sizeof(alasmeta)) / uint32(unsafe.Sizeof(Talasitem{}))) /* pcre2_compile.c:685:18 */ 8984 8985 // Offsets from OP_STAR for case-independent and negative repeat opcodes. 8986 8987 var chartypeoffset = [4]Tuint32_t{ 8988 Tuint32_t(OP_STAR - OP_STAR), Tuint32_t(OP_STARI - OP_STAR), 8989 Tuint32_t(OP_NOTSTAR - OP_STAR), Tuint32_t(OP_NOTSTARI - OP_STAR)} /* pcre2_compile.c:689:17 */ 8990 8991 // Tables of names of POSIX character classes and their lengths. The names are 8992 // now all in a single string, to reduce the number of relocations when a shared 8993 // library is dynamically loaded. The list of lengths is terminated by a zero 8994 // length entry. The first three must be alpha, lower, upper, as this is assumed 8995 // for handling case independence. The indices for graph, print, and punct are 8996 // needed, so identify them. 8997 8998 var posix_names = *(*[84]int8)(unsafe.Pointer(ts + 253)) /* pcre2_compile.c:700:19 */ 8999 9000 var posix_name_lengths = [15]Tuint8_t{ 9001 Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(4), Tuint8_t(6), Tuint8_t(0)} /* pcre2_compile.c:706:22 */ 9002 9003 // Table of class bit maps for each POSIX class. Each class is formed from a 9004 // base map, with an optional addition or removal of another map. Then, for some 9005 // classes, there is some additional tweaking: for [:blank:] the vertical space 9006 // characters are removed, and for [:alpha:] and [:alnum:] the underscore 9007 // character is removed. The triples in the table consist of the base map offset, 9008 // second map offset or -1 if no second map, and a non-negative value for map 9009 // addition or a negative value for map subtraction (if there are two maps). The 9010 // absolute value of the third field has these meanings: 0 => no tweaking, 1 => 9011 // remove vertical space characters, 2 => remove underscore. 9012 9013 var posix_class_maps = [42]int32{ 9014 Dcbit_word, Dcbit_digit, -2, // alpha 9015 Dcbit_lower, -1, 0, // lower 9016 Dcbit_upper, -1, 0, // upper 9017 Dcbit_word, -1, 2, // alnum - word without underscore 9018 Dcbit_print, Dcbit_cntrl, 0, // ascii 9019 Dcbit_space, -1, 1, // blank - a GNU extension 9020 Dcbit_cntrl, -1, 0, // cntrl 9021 Dcbit_digit, -1, 0, // digit 9022 Dcbit_graph, -1, 0, // graph 9023 Dcbit_print, -1, 0, // print 9024 Dcbit_punct, -1, 0, // punct 9025 Dcbit_space, -1, 0, // space 9026 Dcbit_word, -1, 0, // word - a Perl extension 9027 Dcbit_xdigit, -1, 0, // xdigit 9028 } /* pcre2_compile.c:723:18 */ 9029 9030 // The POSIX class Unicode property substitutes that are used in UCP mode must 9031 // be in the order of the POSIX class names, defined above. 9032 9033 var posix_substitutes = [28]int32{ 9034 DPT_GC, ucp_L, // alpha 9035 DPT_PC, ucp_Ll, // lower 9036 DPT_PC, ucp_Lu, // upper 9037 DPT_ALNUM, 0, // alnum 9038 -1, 0, // ascii, treat as non-UCP 9039 -1, 1, // blank, treat as \h 9040 DPT_PC, ucp_Cc, // cntrl 9041 DPT_PC, ucp_Nd, // digit 9042 DPT_PXGRAPH, 0, // graph 9043 DPT_PXPRINT, 0, // print 9044 DPT_PXPUNCT, 0, // punct 9045 DPT_PXSPACE, 0, /* space */ // Xps is POSIX space, but from 8.34 9046 DPT_WORD, 0, /* word */ // Perl and POSIX space are the same 9047 -1, 0, // xdigit, treat as non-UCP 9048 } /* pcre2_compile.c:745:12 */ // Read integer value for depth limit 9049 9050 type Spso = struct { 9051 Fname uintptr 9052 Flength Tuint16_t 9053 Ftype Tuint16_t 9054 Fvalue Tuint32_t 9055 } /* pcre2_compile.c:822:9 */ 9056 9057 // Read integer value for depth limit 9058 9059 type Tpso = Spso /* pcre2_compile.c:827:3 */ 9060 9061 // NB: STRING_UTFn_RIGHTPAR contains the length as well 9062 9063 var pso_list = [21]Tpso{ 9064 {Fname: uintptr(ts + 337), Flength: Tuint16_t(5), Fvalue: DPCRE2_UTF}, 9065 {Fname: uintptr(ts + 343), Flength: Tuint16_t(4), Fvalue: DPCRE2_UTF}, 9066 {Fname: uintptr(ts + 348), Flength: Tuint16_t(4), Fvalue: DPCRE2_UCP}, 9067 {Fname: uintptr(ts + 353), Flength: Tuint16_t(9), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOTEMPTY_SET)}, 9068 {Fname: uintptr(ts + 363), Flength: Tuint16_t(17), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NE_ATST_SET)}, 9069 {Fname: uintptr(ts + 381), Flength: Tuint16_t(16), Fvalue: DPCRE2_NO_AUTO_POSSESS}, 9070 {Fname: uintptr(ts + 398), Flength: Tuint16_t(18), Fvalue: DPCRE2_NO_DOTSTAR_ANCHOR}, 9071 {Fname: uintptr(ts + 417), Flength: Tuint16_t(7), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOJIT)}, 9072 {Fname: uintptr(ts + 425), Flength: Tuint16_t(13), Fvalue: DPCRE2_NO_START_OPTIMIZE}, 9073 {Fname: uintptr(ts + 439), Flength: Tuint16_t(11), Ftype: PSO_LIMH}, 9074 {Fname: uintptr(ts + 451), Flength: Tuint16_t(12), Ftype: PSO_LIMM}, 9075 {Fname: uintptr(ts + 464), Flength: Tuint16_t(12), Ftype: PSO_LIMD}, 9076 {Fname: uintptr(ts + 477), Flength: Tuint16_t(16), Ftype: PSO_LIMD}, 9077 {Fname: uintptr(ts + 494), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CR)}, 9078 {Fname: uintptr(ts + 498), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_LF)}, 9079 {Fname: uintptr(ts + 502), Flength: Tuint16_t(5), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CRLF)}, 9080 {Fname: uintptr(ts + 508), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANY)}, 9081 {Fname: uintptr(ts + 513), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_NUL)}, 9082 {Fname: uintptr(ts + 518), Flength: Tuint16_t(8), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANYCRLF)}, 9083 {Fname: uintptr(ts + 527), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_ANYCRLF)}, 9084 {Fname: uintptr(ts + 540), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_UNICODE)}, 9085 } /* pcre2_compile.c:831:12 */ 9086 9087 // This table is used when converting repeating opcodes into possessified 9088 // versions as a result of an explicit possessive quantifier such as ++. A zero 9089 // value means there is no possessified version - in those cases the item in 9090 // question must be wrapped in ONCE brackets. The table is truncated at OP_CALLOUT 9091 // because all relevant opcodes are less than that. 9092 9093 var opcode_possessify = [119]Tuint8_t{ 9094 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // 0 - 15 9095 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // 16 - 31 9096 9097 Tuint8_t(0), // NOTI 9098 OP_POSSTAR, Tuint8_t(0), // STAR, MINSTAR 9099 OP_POSPLUS, Tuint8_t(0), // PLUS, MINPLUS 9100 OP_POSQUERY, Tuint8_t(0), // QUERY, MINQUERY 9101 OP_POSUPTO, Tuint8_t(0), // UPTO, MINUPTO 9102 Tuint8_t(0), // EXACT 9103 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STAR,PLUS,QUERY,UPTO} 9104 9105 OP_POSSTARI, Tuint8_t(0), // STARI, MINSTARI 9106 OP_POSPLUSI, Tuint8_t(0), // PLUSI, MINPLUSI 9107 OP_POSQUERYI, Tuint8_t(0), // QUERYI, MINQUERYI 9108 OP_POSUPTOI, Tuint8_t(0), // UPTOI, MINUPTOI 9109 Tuint8_t(0), // EXACTI 9110 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STARI,PLUSI,QUERYI,UPTOI} 9111 9112 OP_NOTPOSSTAR, Tuint8_t(0), // NOTSTAR, NOTMINSTAR 9113 OP_NOTPOSPLUS, Tuint8_t(0), // NOTPLUS, NOTMINPLUS 9114 OP_NOTPOSQUERY, Tuint8_t(0), // NOTQUERY, NOTMINQUERY 9115 OP_NOTPOSUPTO, Tuint8_t(0), // NOTUPTO, NOTMINUPTO 9116 Tuint8_t(0), // NOTEXACT 9117 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STAR,PLUS,QUERY,UPTO} 9118 9119 OP_NOTPOSSTARI, Tuint8_t(0), // NOTSTARI, NOTMINSTARI 9120 OP_NOTPOSPLUSI, Tuint8_t(0), // NOTPLUSI, NOTMINPLUSI 9121 OP_NOTPOSQUERYI, Tuint8_t(0), // NOTQUERYI, NOTMINQUERYI 9122 OP_NOTPOSUPTOI, Tuint8_t(0), // NOTUPTOI, NOTMINUPTOI 9123 Tuint8_t(0), // NOTEXACTI 9124 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STARI,PLUSI,QUERYI,UPTOI} 9125 9126 OP_TYPEPOSSTAR, Tuint8_t(0), // TYPESTAR, TYPEMINSTAR 9127 OP_TYPEPOSPLUS, Tuint8_t(0), // TYPEPLUS, TYPEMINPLUS 9128 OP_TYPEPOSQUERY, Tuint8_t(0), // TYPEQUERY, TYPEMINQUERY 9129 OP_TYPEPOSUPTO, Tuint8_t(0), // TYPEUPTO, TYPEMINUPTO 9130 Tuint8_t(0), // TYPEEXACT 9131 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // TYPEPOS{STAR,PLUS,QUERY,UPTO} 9132 9133 OP_CRPOSSTAR, Tuint8_t(0), // CRSTAR, CRMINSTAR 9134 OP_CRPOSPLUS, Tuint8_t(0), // CRPLUS, CRMINPLUS 9135 OP_CRPOSQUERY, Tuint8_t(0), // CRQUERY, CRMINQUERY 9136 OP_CRPOSRANGE, Tuint8_t(0), // CRRANGE, CRMINRANGE 9137 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CRPOS{STAR,PLUS,QUERY,RANGE} 9138 9139 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLASS, NCLASS, XCLASS 9140 Tuint8_t(0), Tuint8_t(0), // REF, REFI 9141 Tuint8_t(0), Tuint8_t(0), // DNREF, DNREFI 9142 Tuint8_t(0), Tuint8_t(0), // RECURSE, CALLOUT 9143 } /* pcre2_compile.c:861:22 */ 9144 9145 // ************************************************ 9146 // 9147 // Copy compiled code * 9148 // 9149 9150 // Compiled JIT code cannot be copied, so the new compiled block has no 9151 // associated JIT data. 9152 9153 func Xpcre2_code_copy_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1193:27: */ 9154 var ref_count uintptr 9155 var newcode uintptr 9156 9157 if code == uintptr(0) { 9158 return uintptr(0) 9159 } 9160 newcode = (*struct { 9161 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9162 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9163 if newcode == uintptr(0) { 9164 return uintptr(0) 9165 } 9166 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9167 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9168 9169 // If the code is one that has been deserialized, increment the reference count 9170 // in the decoded tables. 9171 9172 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9173 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9174 *(*Tsize_t)(unsafe.Pointer(ref_count))++ 9175 } 9176 9177 return newcode 9178 } 9179 9180 // ************************************************ 9181 // 9182 // Copy compiled code and character tables * 9183 // 9184 9185 // Compiled JIT code cannot be copied, so the new compiled block has no 9186 // associated JIT data. This version of code_copy also makes a separate copy of 9187 // the character tables. 9188 9189 func Xpcre2_code_copy_with_tables_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1227:27: */ 9190 var ref_count uintptr 9191 var newcode uintptr 9192 var newtables uintptr 9193 9194 if code == uintptr(0) { 9195 return uintptr(0) 9196 } 9197 newcode = (*struct { 9198 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9199 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9200 if newcode == uintptr(0) { 9201 return uintptr(0) 9202 } 9203 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9204 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9205 9206 newtables = (*struct { 9207 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9208 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, uint32(Dcbits_offset+Dcbit_length+256)+uint32(unsafe.Sizeof(Tsize_t(0))), 9209 (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9210 if newtables == uintptr(0) { 9211 (*struct { 9212 f func(*libc.TLS, uintptr, uintptr) 9213 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, newcode, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9214 return uintptr(0) 9215 } 9216 libc.Xmemcpy(tls, newtables, (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables, uint32(Dcbits_offset+Dcbit_length+256)) 9217 ref_count = newtables + uintptr(Dcbits_offset+Dcbit_length+256) 9218 *(*Tsize_t)(unsafe.Pointer(ref_count)) = Tsize_t(1) 9219 9220 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Ftables = newtables 9221 *(*Tuint32_t)(unsafe.Pointer(newcode + 72)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 9222 return newcode 9223 } 9224 9225 // ************************************************ 9226 // 9227 // Free compiled code * 9228 // 9229 9230 func Xpcre2_code_free_8(tls *libc.TLS, code uintptr) { /* pcre2_compile.c:1263:1: */ 9231 var ref_count uintptr 9232 9233 if code != uintptr(0) { 9234 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit != uintptr(0) { 9235 X_pcre2_jit_free_8(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit, code) 9236 } 9237 9238 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9239 // Decoded tables belong to the codes after deserialization, and they must 9240 // be freed when there are no more references to them. The *ref_count should 9241 // always be > 0. 9242 9243 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9244 if *(*Tsize_t)(unsafe.Pointer(ref_count)) > Tsize_t(0) { 9245 *(*Tsize_t)(unsafe.Pointer(ref_count))-- 9246 if *(*Tsize_t)(unsafe.Pointer(ref_count)) == Tsize_t(0) { 9247 (*struct { 9248 f func(*libc.TLS, uintptr, uintptr) 9249 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9250 } 9251 } 9252 } 9253 9254 (*struct { 9255 f func(*libc.TLS, uintptr, uintptr) 9256 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9257 } 9258 } 9259 9260 // ************************************************ 9261 // 9262 // Read a number, possibly signed * 9263 // 9264 9265 // This function is used to read numbers in the pattern. The initial pointer 9266 // must be the sign or first digit of the number. When relative values (introduced 9267 // by + or -) are allowed, they are relative group numbers, and the result must be 9268 // greater than zero. 9269 // 9270 // Arguments: 9271 // ptrptr points to the character pointer variable 9272 // ptrend points to the end of the input string 9273 // allow_sign if < 0, sign not allowed; if >= 0, sign is relative to this 9274 // max_value the largest number allowed 9275 // max_error the error to give for an over-large number 9276 // intptr where to put the result 9277 // errcodeptr where to put an error code 9278 // 9279 // Returns: TRUE - a number was read 9280 // FALSE - errorcode == 0 => no number was found 9281 // errorcode != 0 => an error occurred 9282 9283 func read_number(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, allow_sign Tint32_t, max_value Tuint32_t, max_error Tuint32_t, intptr uintptr, errorcodeptr uintptr) TBOOL { /* pcre2_compile.c:1317:1: */ 9284 var sign int32 9285 var n Tuint32_t 9286 var ptr TPCRE2_SPTR8 9287 var yield TBOOL 9288 sign = 0 9289 n = Tuint32_t(0) 9290 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9291 yield = DFALSE 9292 9293 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9294 9295 if !(allow_sign >= 0 && ptr < ptrend) { 9296 goto __1 9297 } 9298 9299 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\053') { 9300 goto __2 9301 } 9302 9303 sign = +1 9304 max_value = max_value - Tuint32_t(allow_sign) 9305 ptr++ 9306 goto __3 9307 __2: 9308 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\055') { 9309 goto __4 9310 } 9311 9312 sign = -1 9313 ptr++ 9314 __4: 9315 ; 9316 __3: 9317 ; 9318 __1: 9319 ; 9320 9321 if !(ptr >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9322 goto __5 9323 } 9324 return DFALSE 9325 __5: 9326 ; 9327 __6: 9328 if !(ptr < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9329 goto __7 9330 } 9331 9332 n = n*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) - Tuint32_t('\060') 9333 if !(n > max_value) { 9334 goto __8 9335 } 9336 9337 *(*int32)(unsafe.Pointer(errorcodeptr)) = int32(max_error) 9338 goto EXIT 9339 __8: 9340 ; 9341 goto __6 9342 __7: 9343 ; 9344 9345 if !(allow_sign >= 0 && sign != 0) { 9346 goto __9 9347 } 9348 9349 if !(n == Tuint32_t(0)) { 9350 goto __10 9351 } 9352 9353 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR26 // +0 and -0 are not allowed 9354 goto EXIT 9355 __10: 9356 ; 9357 9358 if !(sign > 0) { 9359 goto __11 9360 } 9361 n = n + Tuint32_t(allow_sign) 9362 goto __12 9363 __11: 9364 if !(int32(n) > allow_sign) { 9365 goto __13 9366 } 9367 9368 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 9369 goto EXIT 9370 goto __14 9371 __13: 9372 n = Tuint32_t(allow_sign+1) - n 9373 __14: 9374 ; 9375 __12: 9376 ; 9377 __9: 9378 ; 9379 9380 yield = DTRUE 9381 9382 EXIT: 9383 *(*int32)(unsafe.Pointer(intptr)) = int32(n) 9384 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 9385 return yield 9386 } 9387 9388 // ************************************************ 9389 // 9390 // Read repeat counts * 9391 // 9392 9393 // Read an item of the form {n,m} and return the values if non-NULL pointers 9394 // are supplied. Repeat counts must be less than 65536 (MAX_REPEAT_COUNT); a 9395 // larger value is used for "unlimited". We have to use signed arguments for 9396 // read_number() because it is capable of returning a signed value. 9397 // 9398 // Arguments: 9399 // ptrptr points to pointer to character after'{' 9400 // ptrend pointer to end of input 9401 // minp if not NULL, pointer to int for min 9402 // maxp if not NULL, pointer to int for max (-1 if no max) 9403 // returned as -1 if no max 9404 // errorcodeptr points to error code variable 9405 // 9406 // Returns: FALSE if not a repeat quantifier, errorcode set zero 9407 // FALSE on error, with errorcode set non-zero 9408 // TRUE on success, with pointer updated to point after '}' 9409 9410 func read_repeat_counts(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, minp uintptr, maxp uintptr, errorcodeptr uintptr) TBOOL { /* pcre2_compile.c:1403:1: */ 9411 bp := tls.Alloc(12) 9412 defer tls.Free(12) 9413 9414 // var p TPCRE2_SPTR8 at bp, 4 9415 9416 var yield TBOOL 9417 var had_comma TBOOL 9418 // var min Tint32_t at bp+4, 4 9419 9420 // var max Tint32_t at bp+8, 4 9421 9422 var c Tuint32_t 9423 yield = DFALSE 9424 had_comma = DFALSE 9425 *(*Tint32_t)(unsafe.Pointer(bp + 4 /* min */)) = 0 9426 *(*Tint32_t)(unsafe.Pointer(bp + 8 /* max */)) = int32(DMAX_REPEAT_COUNT + uint32(1)) // This value is larger than MAX_REPEAT_COUNT 9427 9428 // Check the syntax 9429 9430 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9431 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9432 __1: 9433 ; 9434 9435 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) >= ptrend) { 9436 goto __4 9437 } 9438 return DFALSE 9439 __4: 9440 ; 9441 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))))) 9442 if !(c >= Tuint32_t('\060') && c <= Tuint32_t('\071')) { 9443 goto __5 9444 } 9445 goto __2 9446 __5: 9447 ; 9448 if !(c == Tuint32_t('\175')) { 9449 goto __6 9450 } 9451 goto __3 9452 __6: 9453 ; 9454 if !(c == Tuint32_t('\054')) { 9455 goto __7 9456 } 9457 9458 if !(had_comma != 0) { 9459 goto __9 9460 } 9461 return DFALSE 9462 __9: 9463 ; 9464 had_comma = DTRUE 9465 goto __8 9466 __7: 9467 return DFALSE 9468 __8: 9469 ; 9470 goto __2 9471 __2: 9472 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9473 goto __1 9474 goto __3 9475 __3: 9476 ; 9477 9478 // The only error from read_number() is for a number that is too big. 9479 9480 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9481 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+4, errorcodeptr) != 0) { 9482 goto __10 9483 } 9484 goto EXIT 9485 __10: 9486 ; 9487 9488 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 9489 goto __11 9490 } 9491 9492 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9493 *(*Tint32_t)(unsafe.Pointer(bp + 8 /* max */)) = *(*Tint32_t)(unsafe.Pointer(bp + 4 /* min */)) 9494 goto __12 9495 __11: 9496 9497 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)), 1)))) != '\175') { 9498 goto __13 9499 } 9500 9501 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+8, 9502 errorcodeptr) != 0) { 9503 goto __14 9504 } 9505 goto EXIT 9506 __14: 9507 ; 9508 if !(*(*Tint32_t)(unsafe.Pointer(bp + 8)) < *(*Tint32_t)(unsafe.Pointer(bp + 4))) { 9509 goto __15 9510 } 9511 9512 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR4 9513 goto EXIT 9514 __15: 9515 ; 9516 __13: 9517 ; 9518 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9519 __12: 9520 ; 9521 9522 yield = DTRUE 9523 if !(minp != uintptr(0)) { 9524 goto __16 9525 } 9526 *(*Tuint32_t)(unsafe.Pointer(minp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 4 /* min */))) 9527 __16: 9528 ; 9529 if !(maxp != uintptr(0)) { 9530 goto __17 9531 } 9532 *(*Tuint32_t)(unsafe.Pointer(maxp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 8 /* max */))) 9533 __17: 9534 ; 9535 9536 // Update the pattern pointer 9537 9538 EXIT: 9539 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) 9540 return yield 9541 } 9542 9543 // ************************************************ 9544 // 9545 // Handle escapes * 9546 // 9547 9548 // This function is called when a \ has been encountered. It either returns a 9549 // positive value for a simple escape such as \d, or 0 for a data character, which 9550 // is placed in chptr. A backreference to group n is returned as negative n. On 9551 // entry, ptr is pointing at the character after \. On exit, it points after the 9552 // final code unit of the escape sequence. 9553 // 9554 // This function is also called from pcre2_substitute() to handle escape sequences 9555 // in replacement strings. In this case, the cb argument is NULL, and in the case 9556 // of escapes that have further processing, only sequences that define a data 9557 // character are recognised. The isclass argument is not relevant; the options 9558 // argument is the final value of the compiled pattern's options. 9559 // 9560 // Arguments: 9561 // ptrptr points to the input position pointer 9562 // ptrend points to the end of the input 9563 // chptr points to a returned data character 9564 // errorcodeptr points to the errorcode variable (containing zero) 9565 // options the current options bits 9566 // isclass TRUE if inside a character class 9567 // cb compile data block or NULL when called from pcre2_substitute() 9568 // 9569 // Returns: zero => a data character 9570 // positive => a special escape sequence 9571 // negative => a numerical back reference 9572 // on error, errorcodeptr is set non-zero 9573 9574 func X_pcre2_check_escape_8(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, chptr uintptr, errorcodeptr uintptr, options Tuint32_t, extra_options Tuint32_t, isclass TBOOL, cb uintptr) int32 { /* pcre2_compile.c:1502:1: */ 9575 bp := tls.Alloc(16) 9576 defer tls.Free(16) 9577 9578 var utf TBOOL 9579 // var ptr TPCRE2_SPTR8 at bp+12, 4 9580 9581 var c Tuint32_t 9582 var cc Tuint32_t 9583 var escape int32 9584 var i int32 9585 // var p TPCRE2_SPTR8 at bp, 4 9586 9587 var hptr TPCRE2_SPTR8 9588 var xc Tuint32_t 9589 // var p1 TPCRE2_SPTR8 at bp+4, 4 9590 9591 var xc1 Tuint32_t 9592 // var s int32 at bp+8, 4 9593 9594 var oldptr TPCRE2_SPTR8 9595 var overflow TBOOL 9596 var alt_bsux TBOOL 9597 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 9598 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9599 escape = 0 9600 9601 // If backslash is at the end of the string, it's an error. 9602 9603 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend) { 9604 goto __1 9605 } 9606 9607 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR1 9608 return 0 9609 __1: 9610 ; 9611 9612 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)), 1)))) 9613 if !(utf != 0 && c >= 0xc0) { 9614 goto __2 9615 } 9616 if !(c&0x20 == Tuint32_t(0)) { 9617 goto __3 9618 } 9619 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1))))&0x3f 9620 goto __4 9621 __3: 9622 if !(c&0x10 == Tuint32_t(0)) { 9623 goto __5 9624 } 9625 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1)))&0x3f 9626 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(2) 9627 goto __6 9628 __5: 9629 if !(c&0x08 == Tuint32_t(0)) { 9630 goto __7 9631 } 9632 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 2)))&0x3f 9633 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(3) 9634 goto __8 9635 __7: 9636 if !(c&0x04 == Tuint32_t(0)) { 9637 goto __9 9638 } 9639 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 3)))&0x3f 9640 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(4) 9641 goto __10 9642 __9: 9643 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 4)))&0x3f 9644 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(5) 9645 __10: 9646 ; 9647 __8: 9648 ; 9649 __6: 9650 ; 9651 __4: 9652 ; 9653 __2: 9654 ; 9655 9656 // Get character value, increment pointer 9657 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 // Be optimistic 9658 9659 // Non-alphanumerics are literals, so we just leave the value in c. An initial 9660 // value test saves a memory lookup for code points outside the alphanumeric 9661 // range. 9662 9663 if !(c < Tuint32_t('\060') || c > Tuint32_t('\172')) { 9664 goto __11 9665 } 9666 goto __12 9667 __11: 9668 if !(libc.AssignInt32(&i, int32(escapes[c-Tuint32_t('\060')])) != 0) { 9669 goto __13 9670 } 9671 9672 if !(i > 0) { 9673 goto __15 9674 } 9675 9676 c = Tuint32_t(i) 9677 if !(c == Tuint32_t('\015') && extra_options&DPCRE2_EXTRA_ESCAPED_CR_IS_LF != Tuint32_t(0)) { 9678 goto __17 9679 } 9680 c = Tuint32_t('\012') 9681 __17: 9682 ; 9683 goto __16 9684 __15: /* Negative table entry */ 9685 9686 escape = -i // Else return a special escape 9687 if !(cb != uintptr(0) && (escape == ESC_P || escape == ESC_p || escape == ESC_X)) { 9688 goto __18 9689 } 9690 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASBKPORX) 9691 __18: 9692 ; // Note \P, \p, or \X 9693 9694 // Perl supports \N{name} for character names and \N{U+dddd} for numerical 9695 // Unicode code points, as well as plain \N for "not newline". PCRE does not 9696 // support \N{name}. However, it does support quantification such as \N{2,3}, 9697 // so if \N{ is not followed by U+dddd we check for a quantifier. 9698 9699 if !(escape == ESC_N && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\173') { 9700 goto __19 9701 } 9702 9703 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + uintptr(1) 9704 9705 // \N{U+ can be handled by the \x{ code. However, this construction is 9706 // not valid in EBCDIC environments because it specifies a Unicode 9707 // character, not a codepoint in the local code. For example \N{U+0041} 9708 // must be "A" in all environments. Also, in Perl, \N{U+ forces Unicode 9709 // casing semantics for the entire pattern, so allow it only in UTF (i.e. 9710 // Unicode) mode. 9711 9712 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))/1 > 1 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\125' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\053') { 9713 goto __20 9714 } 9715 9716 if !(utf != 0) { 9717 goto __22 9718 } 9719 9720 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + uintptr(1) 9721 escape = 0 // Not a fancy escape after all 9722 goto COME_FROM_NU 9723 goto __23 9724 __22: 9725 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR93 9726 __23: 9727 ; 9728 goto __21 9729 __20: 9730 9731 if !(!(read_repeat_counts(tls, bp, ptrend, uintptr(0), uintptr(0), errorcodeptr) != 0) && *(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 9732 goto __24 9733 } 9734 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9735 __24: 9736 ; 9737 __21: 9738 ; 9739 __19: 9740 ; 9741 __16: 9742 ; 9743 goto __14 9744 __13: 9745 alt_bsux = 9746 libc.Bool32(options&DPCRE2_ALT_BSUX|extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) 9747 9748 // Filter calls from pcre2_substitute(). 9749 9750 if !(cb == uintptr(0)) { 9751 goto __25 9752 } 9753 9754 if !(c != Tuint32_t('\143') && c != Tuint32_t('\157') && c != Tuint32_t('\170')) { 9755 goto __26 9756 } 9757 9758 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 9759 return 0 9760 __26: 9761 ; 9762 alt_bsux = DFALSE // Do not modify \x handling 9763 __25: 9764 ; 9765 9766 switch c { 9767 // A number of Perl escapes are not handled by PCRE. We give an explicit 9768 // error. 9769 9770 case Tuint32_t('\106'): 9771 goto __28 9772 case Tuint32_t('\154'): 9773 goto __29 9774 case Tuint32_t('\114'): 9775 goto __30 9776 9777 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9778 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9779 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9780 // Otherwise it is a lowercase u letter. This gives some compatibility with 9781 // ECMAScript (aka JavaScript). 9782 9783 case Tuint32_t('\165'): 9784 goto __31 9785 9786 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 9787 // in which case it is an upper case letter. 9788 9789 case Tuint32_t('\125'): 9790 goto __32 9791 9792 // In a character class, \g is just a literal "g". Outside a character 9793 // class, \g must be followed by one of a number of specific things: 9794 // 9795 // (1) A number, either plain or braced. If positive, it is an absolute 9796 // backreference. If negative, it is a relative backreference. This is a Perl 9797 // 5.10 feature. 9798 // 9799 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 9800 // is part of Perl's movement towards a unified syntax for back references. As 9801 // this is synonymous with \k{name}, we fudge it up by pretending it really 9802 // was \k{name}. 9803 // 9804 // (3) For Oniguruma compatibility we also support \g followed by a name or a 9805 // number either in angle brackets or in single quotes. However, these are 9806 // (possibly recursive) subroutine calls, _not_ backreferences. We return 9807 // the ESC_g code. 9808 // 9809 // Summary: Return a negative number for a numerical back reference, ESC_k for 9810 // a named back reference, and ESC_g for a named or numbered subroutine call. 9811 // 9812 9813 case Tuint32_t('\147'): 9814 goto __33 9815 9816 // The handling of escape sequences consisting of a string of digits 9817 // starting with one that is not zero is not straightforward. Perl has changed 9818 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 9819 // recommended to avoid the ambiguities in the old syntax. 9820 // 9821 // Outside a character class, the digits are read as a decimal number. If the 9822 // number is less than 10, or if there are that many previous extracting left 9823 // brackets, it is a back reference. Otherwise, up to three octal digits are 9824 // read to form an escaped character code. Thus \123 is likely to be octal 123 9825 // (cf \0123, which is octal 012 followed by the literal 3). 9826 // 9827 // Inside a character class, \ followed by a digit is always either a literal 9828 // 8 or 9 or an octal number. 9829 9830 case Tuint32_t('\061'): 9831 goto __34 9832 case Tuint32_t('\062'): 9833 goto __35 9834 case Tuint32_t('\063'): 9835 goto __36 9836 case Tuint32_t('\064'): 9837 goto __37 9838 case Tuint32_t('\065'): 9839 goto __38 9840 case Tuint32_t('\066'): 9841 goto __39 9842 case Tuint32_t('\067'): 9843 goto __40 9844 case Tuint32_t('\070'): 9845 goto __41 9846 case Tuint32_t('\071'): 9847 goto __42 9848 9849 // Fall through 9850 9851 // \0 always starts an octal number, but we may drop through to here with a 9852 // larger first octal digit. The original code used just to take the least 9853 // significant 8 bits of octal numbers (I think this is what early Perls used 9854 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 9855 // but no more than 3 octal digits. 9856 9857 case Tuint32_t('\060'): 9858 goto __43 9859 9860 // \o is a relatively new Perl feature, supporting a more general way of 9861 // specifying character codes in octal. The only supported form is \o{ddd}. 9862 9863 case Tuint32_t('\157'): 9864 goto __44 9865 9866 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 9867 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 9868 9869 case Tuint32_t('\170'): 9870 goto __45 9871 9872 // The handling of \c is different in ASCII and EBCDIC environments. In an 9873 // ASCII (or Unicode) environment, an error is given if the character 9874 // following \c is not a printable ASCII character. Otherwise, the following 9875 // character is upper-cased if it is a letter, and after that the 0x40 bit is 9876 // flipped. The result is the value of the escape. 9877 // 9878 // In an EBCDIC environment the handling of \c is compatible with the 9879 // specification in the perlebcdic document. The following character must be 9880 // a letter or one of small number of special characters. These provide a 9881 // means of defining the character values 0-31. 9882 // 9883 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 9884 // the EBCDIC value of 'c' explicitly. 9885 9886 case Tuint32_t('\143'): 9887 goto __46 9888 9889 // Any other alphanumeric following \ is an error. Perl gives an error only 9890 // if in warning mode, but PCRE doesn't have a warning mode. 9891 9892 default: 9893 goto __47 9894 } 9895 goto __27 9896 9897 // A number of Perl escapes are not handled by PCRE. We give an explicit 9898 // error. 9899 9900 __28: 9901 __29: 9902 __30: 9903 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9904 goto __27 9905 9906 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9907 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9908 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9909 // Otherwise it is a lowercase u letter. This gives some compatibility with 9910 // ECMAScript (aka JavaScript). 9911 9912 __31: 9913 if !!(alt_bsux != 0) { 9914 goto __48 9915 } 9916 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9917 goto __49 9918 __48: 9919 9920 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend) { 9921 goto __50 9922 } 9923 goto __27 9924 __50: 9925 ; 9926 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\173' && extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) { 9927 goto __51 9928 } 9929 9930 hptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + uintptr(1) 9931 cc = Tuint32_t(0) 9932 9933 __53: 9934 if !(hptr < ptrend && libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))])) != Tuint32_t(0xff)) { 9935 goto __54 9936 } 9937 9938 if !(cc&0xf0000000 != Tuint32_t(0)) { 9939 goto __55 9940 } /* Test for 32-bit overflow */ 9941 9942 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 9943 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = hptr // Show where 9944 goto __54 // *hptr != } will cause another break below 9945 __55: 9946 ; 9947 cc = cc<<4 | xc 9948 hptr++ 9949 goto __53 9950 __54: 9951 ; 9952 9953 if !(hptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))+uintptr(1) || hptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))) != '\175') { 9954 goto __56 9955 } // No } terminator 9956 goto __27 9957 __56: 9958 ; // Hex escape not recognized 9959 9960 c = cc // Accept the code point 9961 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = hptr + uintptr(1) 9962 goto __52 9963 __51: /* Must be exactly 4 hex digits */ 9964 9965 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))/1 < 4) { 9966 goto __57 9967 } 9968 goto __27 9969 __57: 9970 ; // Less than 4 chars 9971 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))])) == Tuint32_t(0xff)) { 9972 goto __58 9973 } 9974 goto __27 9975 __58: 9976 ; // Not a hex digit 9977 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1))])) == Tuint32_t(0xff)) { 9978 goto __59 9979 } 9980 goto __27 9981 __59: 9982 ; // Not a hex digit 9983 cc = cc<<4 | xc 9984 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 2))])) == Tuint32_t(0xff)) { 9985 goto __60 9986 } 9987 goto __27 9988 __60: 9989 ; // Not a hex digit 9990 cc = cc<<4 | xc 9991 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 3))])) == Tuint32_t(0xff)) { 9992 goto __61 9993 } 9994 goto __27 9995 __61: 9996 ; // Not a hex digit 9997 c = cc<<4 | xc 9998 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(4) 9999 __52: 10000 ; 10001 10002 if !(utf != 0) { 10003 goto __62 10004 } 10005 10006 if !(c > 0x10ffff) { 10007 goto __64 10008 } 10009 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10010 goto __65 10011 __64: 10012 if !(c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10013 goto __66 10014 } 10015 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10016 __66: 10017 ; 10018 __65: 10019 ; 10020 goto __63 10021 __62: 10022 if !(c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10023 goto __67 10024 } 10025 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10026 __67: 10027 ; 10028 __63: 10029 ; 10030 __49: 10031 ; 10032 goto __27 10033 10034 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 10035 // in which case it is an upper case letter. 10036 10037 __32: 10038 if !!(alt_bsux != 0) { 10039 goto __68 10040 } 10041 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 10042 __68: 10043 ; 10044 goto __27 10045 10046 // In a character class, \g is just a literal "g". Outside a character 10047 // class, \g must be followed by one of a number of specific things: 10048 // 10049 // (1) A number, either plain or braced. If positive, it is an absolute 10050 // backreference. If negative, it is a relative backreference. This is a Perl 10051 // 5.10 feature. 10052 // 10053 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 10054 // is part of Perl's movement towards a unified syntax for back references. As 10055 // this is synonymous with \k{name}, we fudge it up by pretending it really 10056 // was \k{name}. 10057 // 10058 // (3) For Oniguruma compatibility we also support \g followed by a name or a 10059 // number either in angle brackets or in single quotes. However, these are 10060 // (possibly recursive) subroutine calls, _not_ backreferences. We return 10061 // the ESC_g code. 10062 // 10063 // Summary: Return a negative number for a numerical back reference, ESC_k for 10064 // a named back reference, and ESC_g for a named or numbered subroutine call. 10065 // 10066 10067 __33: 10068 if !(isclass != 0) { 10069 goto __69 10070 } 10071 goto __27 10072 __69: 10073 ; 10074 10075 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend) { 10076 goto __70 10077 } 10078 10079 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10080 goto __27 10081 __70: 10082 ; 10083 10084 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\074' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\047') { 10085 goto __71 10086 } 10087 10088 escape = ESC_g 10089 goto __27 10090 __71: 10091 ; 10092 10093 // If there is a brace delimiter, try to read a numerical reference. If 10094 // there isn't one, assume we have a name and treat it as \k. 10095 10096 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\173') { 10097 goto __72 10098 } 10099 10100 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* p1 */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + uintptr(1) 10101 if !!(read_number(tls, bp+4, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+8, 10102 errorcodeptr) != 0) { 10103 goto __74 10104 } 10105 10106 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10107 goto __75 10108 } 10109 escape = ESC_k 10110 __75: 10111 ; // No number found 10112 goto __27 10113 __74: 10114 ; 10115 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\175') { 10116 goto __76 10117 } 10118 10119 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10120 goto __27 10121 __76: 10122 ; 10123 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + uintptr(1) 10124 goto __73 10125 __72: 10126 10127 if !!(read_number(tls, bp+12, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+8, 10128 errorcodeptr) != 0) { 10129 goto __77 10130 } 10131 10132 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10133 goto __78 10134 } 10135 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10136 __78: 10137 ; // No number found 10138 goto __27 10139 __77: 10140 ; 10141 __73: 10142 ; 10143 10144 if !(*(*int32)(unsafe.Pointer(bp + 8)) <= 0) { 10145 goto __79 10146 } 10147 10148 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 10149 goto __27 10150 __79: 10151 ; 10152 10153 escape = -*(*int32)(unsafe.Pointer(bp + 8 /* s */)) 10154 goto __27 10155 10156 // The handling of escape sequences consisting of a string of digits 10157 // starting with one that is not zero is not straightforward. Perl has changed 10158 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 10159 // recommended to avoid the ambiguities in the old syntax. 10160 // 10161 // Outside a character class, the digits are read as a decimal number. If the 10162 // number is less than 10, or if there are that many previous extracting left 10163 // brackets, it is a back reference. Otherwise, up to three octal digits are 10164 // read to form an escaped character code. Thus \123 is likely to be octal 123 10165 // (cf \0123, which is octal 012 followed by the literal 3). 10166 // 10167 // Inside a character class, \ followed by a digit is always either a literal 10168 // 8 or 9 or an octal number. 10169 10170 __34: 10171 __35: 10172 __36: 10173 __37: 10174 __38: 10175 __39: 10176 __40: 10177 __41: 10178 __42: 10179 10180 if !!(isclass != 0) { 10181 goto __80 10182 } 10183 10184 oldptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) 10185 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- // Back to the digit 10186 10187 // As we know we are at a digit, the only possible error from 10188 // read_number() is a number that is too large to be a group number. In this 10189 // case we fall through handle this as not a group reference. If we have 10190 // read a small enough number, check for a back reference. 10191 // 10192 // \1 to \9 are always back references. \8x and \9x are too; \1x to \7x 10193 // are octal escapes if there are not that many previous captures. 10194 10195 if !(read_number(tls, bp+12, ptrend, -1, uint32(0x7fffffff/10-1), uint32(0), bp+8, errorcodeptr) != 0 && (*(*int32)(unsafe.Pointer(bp + 8)) < 10 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(oldptr + libc.UintptrFromInt32(-1)))) >= '\070' || *(*int32)(unsafe.Pointer(bp + 8)) <= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount))) { 10196 goto __81 10197 } 10198 10199 if !(*(*int32)(unsafe.Pointer(bp + 8)) > int32(DMAX_GROUP_NUMBER)) { 10200 goto __82 10201 } 10202 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 10203 goto __83 10204 __82: 10205 escape = -*(*int32)(unsafe.Pointer(bp + 8 /* s */)) 10206 __83: 10207 ; // Indicates a back reference 10208 goto __27 10209 __81: 10210 ; 10211 10212 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) = oldptr // Put the pointer back and fall through 10213 __80: 10214 ; 10215 10216 // Handle a digit following \ when the number is not a back reference, or 10217 // we are within a character class. If the first digit is 8 or 9, Perl used to 10218 // generate a binary zero and then treat the digit as a following literal. At 10219 // least by Perl 5.18 this changed so as not to insert the binary zero. 10220 10221 if !(c >= Tuint32_t('\070')) { 10222 goto __84 10223 } 10224 goto __27 10225 __84: 10226 ; 10227 10228 // Fall through 10229 10230 // \0 always starts an octal number, but we may drop through to here with a 10231 // larger first octal digit. The original code used just to take the least 10232 // significant 8 bits of octal numbers (I think this is what early Perls used 10233 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 10234 // but no more than 3 octal digits. 10235 10236 __43: 10237 c = c - Tuint32_t('\060') 10238 __85: 10239 if !(libc.PostIncInt32(&i, 1) < 2 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) <= '\067') { 10240 goto __86 10241 } 10242 c = c*Tuint32_t(8) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1)))) - Tuint32_t('\060') 10243 goto __85 10244 __86: 10245 ; 10246 if !(!(utf != 0) && c > Tuint32_t(0xff)) { 10247 goto __87 10248 } 10249 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR51 10250 __87: 10251 ; 10252 goto __27 10253 10254 // \o is a relatively new Perl feature, supporting a more general way of 10255 // specifying character codes in octal. The only supported form is \o{ddd}. 10256 10257 __44: 10258 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1)))) != '\173') { 10259 goto __88 10260 } 10261 10262 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- 10263 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR55 10264 goto __89 10265 __88: 10266 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\175') { 10267 goto __90 10268 } 10269 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10270 goto __91 10271 __90: 10272 10273 c = Tuint32_t(0) 10274 overflow = DFALSE 10275 __92: 10276 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) <= '\067') { 10277 goto __93 10278 } 10279 10280 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)), 1)))) 10281 if !(c == Tuint32_t(0) && cc == Tuint32_t('\060')) { 10282 goto __94 10283 } 10284 goto __92 10285 __94: 10286 ; // Leading zeroes 10287 c = c<<3 + (cc - Tuint32_t('\060')) 10288 if !(c > func() uint32 { 10289 if utf != 0 { 10290 return 0x10ffff 10291 } 10292 return 0xff 10293 }()) { 10294 goto __95 10295 } 10296 overflow = DTRUE 10297 goto __93 10298 __95: 10299 ; 10300 goto __92 10301 __93: 10302 ; 10303 if !(overflow != 0) { 10304 goto __96 10305 } 10306 10307 __98: 10308 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) <= '\067') { 10309 goto __99 10310 } 10311 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10312 goto __98 10313 __99: 10314 ; 10315 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10316 goto __97 10317 __96: 10318 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1)))) == '\175') { 10319 goto __100 10320 } 10321 10322 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10323 goto __102 10324 } 10325 10326 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- 10327 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10328 __102: 10329 ; 10330 goto __101 10331 __100: 10332 10333 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- 10334 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR64 10335 __101: 10336 ; 10337 __97: 10338 ; 10339 __91: 10340 ; 10341 __89: 10342 ; 10343 goto __27 10344 10345 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 10346 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 10347 10348 __45: 10349 if !(alt_bsux != 0) { 10350 goto __103 10351 } 10352 10353 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))/1 < 2) { 10354 goto __105 10355 } 10356 goto __27 10357 __105: 10358 ; // Less than 2 characters 10359 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))])) == Tuint32_t(0xff)) { 10360 goto __106 10361 } 10362 goto __27 10363 __106: 10364 ; // Not a hex digit 10365 if !(libc.AssignUint32(&xc1, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) + 1))])) == Tuint32_t(0xff)) { 10366 goto __107 10367 } 10368 goto __27 10369 __107: 10370 ; // Not a hex digit 10371 c = cc<<4 | xc1 10372 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) += uintptr(2) 10373 goto __104 10374 __103: 10375 10376 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\173') { 10377 goto __108 10378 } 10379 10380 COME_FROM_NU: 10381 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))) == '\175') { 10382 goto __110 10383 } 10384 10385 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10386 goto __27 10387 __110: 10388 ; 10389 c = Tuint32_t(0) 10390 overflow = DFALSE 10391 10392 __111: 10393 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))])) != Tuint32_t(0xff)) { 10394 goto __112 10395 } 10396 10397 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10398 if !(c == Tuint32_t(0) && cc == Tuint32_t(0)) { 10399 goto __113 10400 } 10401 goto __111 10402 __113: 10403 ; // Leading zeroes 10404 c = c<<4 | cc 10405 if !(utf != 0 && c > 0x10ffff || !(utf != 0) && c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10406 goto __114 10407 } 10408 10409 overflow = DTRUE 10410 goto __112 10411 __114: 10412 ; 10413 goto __111 10414 __112: 10415 ; 10416 10417 if !(overflow != 0) { 10418 goto __115 10419 } 10420 10421 __117: 10422 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))]) != 0xff) { 10423 goto __118 10424 } 10425 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10426 goto __117 10427 __118: 10428 ; 10429 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10430 goto __116 10431 __115: 10432 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)), 1)))) == '\175') { 10433 goto __119 10434 } 10435 10436 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10437 goto __121 10438 } 10439 10440 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- 10441 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10442 __121: 10443 ; 10444 goto __120 10445 __119: 10446 10447 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))-- 10448 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR67 10449 __120: 10450 ; 10451 __116: 10452 ; 10453 goto __109 10454 __108: 10455 10456 c = Tuint32_t(0) 10457 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))])) == Tuint32_t(0xff)) { 10458 goto __122 10459 } 10460 goto __27 10461 __122: 10462 ; // Not a hex digit 10463 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10464 c = cc 10465 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12))))])) == Tuint32_t(0xff)) { 10466 goto __123 10467 } 10468 goto __27 10469 __123: 10470 ; // Not a hex digit 10471 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10472 c = c<<4 | cc 10473 __109: 10474 ; // End of \xdd handling 10475 __104: 10476 ; // End of Perl-style \x handling 10477 goto __27 10478 10479 // The handling of \c is different in ASCII and EBCDIC environments. In an 10480 // ASCII (or Unicode) environment, an error is given if the character 10481 // following \c is not a printable ASCII character. Otherwise, the following 10482 // character is upper-cased if it is a letter, and after that the 0x40 bit is 10483 // flipped. The result is the value of the escape. 10484 // 10485 // In an EBCDIC environment the handling of \c is compatible with the 10486 // specification in the perlebcdic document. The following character must be 10487 // a letter or one of small number of special characters. These provide a 10488 // means of defining the character values 0-31. 10489 // 10490 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 10491 // the EBCDIC value of 'c' explicitly. 10492 10493 __46: 10494 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) >= ptrend) { 10495 goto __124 10496 } 10497 10498 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR2 10499 goto __27 10500 __124: 10501 ; 10502 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))))) 10503 if !(c >= Tuint32_t('\141') && c <= Tuint32_t('\172')) { 10504 goto __125 10505 } 10506 c = c - Tuint32_t(32) 10507 __125: 10508 ; 10509 10510 // Handle \c in an ASCII/Unicode environment. 10511 10512 if !(c < Tuint32_t(32) || c > Tuint32_t(126)) { 10513 goto __126 10514 } /* Excludes all non-printable ASCII */ 10515 10516 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR68 10517 goto __27 10518 __126: 10519 ; 10520 c = c ^ Tuint32_t(0x40) 10521 10522 // Handle \c in an EBCDIC environment. The special case \c? is converted to 10523 // 255 (0xff) or 95 (0x5f) if other characters suggest we are using the 10524 // POSIX-BC encoding. (This is the way Perl indicates that it handles \c?.) 10525 // The other valid sequences correspond to a list of specific characters. 10526 10527 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */))++ 10528 goto __27 10529 10530 // Any other alphanumeric following \ is an error. Perl gives an error only 10531 // if in warning mode, but PCRE doesn't have a warning mode. 10532 10533 __47: 10534 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 10535 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12)) - uintptr(1) // Point to the character at fault 10536 return 0 10537 __27: 10538 ; 10539 __14: 10540 ; 10541 __12: 10542 ; 10543 10544 // Set the pointer to the next character before returning. 10545 10546 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 12 /* ptr */)) 10547 *(*Tuint32_t)(unsafe.Pointer(chptr)) = c 10548 return escape 10549 } 10550 10551 // ************************************************ 10552 // 10553 // Handle \P and \p * 10554 // 10555 10556 // This function is called after \P or \p has been encountered, provided that 10557 // PCRE2 is compiled with support for UTF and Unicode properties. On entry, the 10558 // contents of ptrptr are pointing after the P or p. On exit, it is left pointing 10559 // after the final code unit of the escape sequence. 10560 // 10561 // Arguments: 10562 // ptrptr the pattern position pointer 10563 // negptr a boolean that is set TRUE for negation else FALSE 10564 // ptypeptr an unsigned int that is set to the type value 10565 // pdataptr an unsigned int that is set to the detailed property value 10566 // errorcodeptr the error code variable 10567 // cb the compile data 10568 // 10569 // Returns: TRUE if the type value was found, or FALSE for an invalid type 10570 10571 func get_ucp(tls *libc.TLS, ptrptr uintptr, negptr uintptr, ptypeptr uintptr, pdataptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:2087:1: */ 10572 bp := tls.Alloc(58) 10573 defer tls.Free(58) 10574 10575 var c TPCRE2_UCHAR8 10576 var i Tsize_t 10577 var bot Tsize_t 10578 var top Tsize_t 10579 var ptr TPCRE2_SPTR8 10580 // var name [50]TPCRE2_UCHAR8 at bp, 50 10581 10582 var vptr uintptr 10583 var ptscript Tuint16_t 10584 var offset int32 10585 // var sname [8]TPCRE2_UCHAR8 at bp+50, 8 10586 10587 var r int32 10588 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10589 vptr = uintptr(0) 10590 ptscript = Tuint16_t(DPT_NOTSCRIPT) 10591 10592 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10593 goto __1 10594 } 10595 goto ERROR_RETURN 10596 __1: 10597 ; 10598 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10599 *(*TBOOL)(unsafe.Pointer(negptr)) = DFALSE 10600 10601 // \P or \p can be followed by a name in {}, optionally preceded by ^ for 10602 // negation. 10603 10604 if !(int32(c) == '\173') { 10605 goto __2 10606 } 10607 10608 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10609 goto __4 10610 } 10611 goto ERROR_RETURN 10612 __4: 10613 ; 10614 10615 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\136') { 10616 goto __5 10617 } 10618 10619 *(*TBOOL)(unsafe.Pointer(negptr)) = DTRUE 10620 ptr++ 10621 __5: 10622 ; 10623 10624 i = Tsize_t(0) 10625 __6: 10626 if !(i < Tsize_t(int32(uint32(unsafe.Sizeof([50]TPCRE2_UCHAR8{}))/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0))))-1)) { 10627 goto __8 10628 } 10629 10630 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10631 goto __9 10632 } 10633 goto ERROR_RETURN 10634 __9: 10635 ; 10636 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10637 __10: 10638 if !(int32(c) == '_' || int32(c) == '-' || int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISspace) != 0) { 10639 goto __11 10640 } 10641 10642 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10643 goto __12 10644 } 10645 goto ERROR_RETURN 10646 __12: 10647 ; 10648 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10649 goto __10 10650 __11: 10651 ; 10652 if !(int32(c) == 0) { 10653 goto __13 10654 } 10655 goto ERROR_RETURN 10656 __13: 10657 ; 10658 if !(int32(c) == '\175') { 10659 goto __14 10660 } 10661 goto __8 10662 __14: 10663 ; 10664 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10665 if !((int32(c) == ':' || int32(c) == '=') && vptr == uintptr(0)) { 10666 goto __15 10667 } 10668 vptr = bp + uintptr(i) 10669 __15: 10670 ; 10671 goto __7 10672 __7: 10673 i++ 10674 goto __6 10675 goto __8 10676 __8: 10677 ; 10678 10679 if !(int32(c) != '\175') { 10680 goto __16 10681 } 10682 goto ERROR_RETURN 10683 __16: 10684 ; 10685 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(0) 10686 goto __3 10687 __2: 10688 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(c))))&Dctype_letter != 0) { 10689 goto __17 10690 } 10691 10692 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10693 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 1)) = TPCRE2_UCHAR8(0) 10694 goto __18 10695 __17: 10696 goto ERROR_RETURN 10697 __18: 10698 ; 10699 __3: 10700 ; 10701 10702 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10703 10704 // If the property contains ':' or '=' we have class name and value separately 10705 // specified. The following are supported: 10706 // 10707 // . Bidi_Class (synonym bc), for which the property names are "bidi<name>". 10708 // . Script (synonym sc) for which the property name is the script name 10709 // . Script_Extensions (synonym scx), ditto 10710 // 10711 // As this is a small number, we currently just check the names directly. If this 10712 // grows, a sorted table and a switch will be neater. 10713 // 10714 // For both the script properties, set a PT_xxx value so that (1) they can be 10715 // distinguished and (2) invalid script names that happen to be the name of 10716 // another property can be diagnosed. 10717 10718 if !(vptr != uintptr(0)) { 10719 goto __19 10720 } 10721 10722 offset = 0 10723 10724 *(*TPCRE2_UCHAR8)(unsafe.Pointer(vptr)) = TPCRE2_UCHAR8(0) // Terminate property name 10725 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+553) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+563) == 0) { 10726 goto __20 10727 } 10728 10729 offset = 4 10730 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50)) = TPCRE2_UCHAR8('\142') 10731 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 1)) = TPCRE2_UCHAR8('\151') // There is no strcpy_c8 function 10732 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 2)) = TPCRE2_UCHAR8('\144') 10733 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 3)) = TPCRE2_UCHAR8('\151') 10734 goto __21 10735 __20: 10736 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+566) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+573) == 0) { 10737 goto __22 10738 } 10739 ptscript = Tuint16_t(DPT_SC) 10740 goto __23 10741 __22: 10742 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+576) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+593) == 0) { 10743 goto __24 10744 } 10745 ptscript = Tuint16_t(DPT_SCX) 10746 goto __25 10747 __24: 10748 10749 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 10750 return DFALSE 10751 __25: 10752 ; 10753 __23: 10754 ; 10755 __21: 10756 ; 10757 10758 // Adjust the string in name[] as needed 10759 10760 libc.Xmemmove(tls, bp+uintptr(offset), vptr+uintptr(1), uint32((int32(bp+uintptr(i))-int32(vptr))/1)*uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10761 if !(offset != 0) { 10762 goto __26 10763 } 10764 libc.Xmemmove(tls, bp, bp+50, uint32(offset)*uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10765 __26: 10766 ; 10767 __19: 10768 ; 10769 10770 // Search for a recognized property using binary chop. 10771 10772 bot = Tsize_t(0) 10773 top = X_pcre2_utt_size_8 10774 10775 __27: 10776 if !(bot < top) { 10777 goto __28 10778 } 10779 10780 i = (bot + top) >> 1 10781 r = X_pcre2_strcmp_c8_8(tls, bp, uintptr(unsafe.Pointer(&X_pcre2_utt_names_8))+uintptr(X_pcre2_utt_8[i].Fname_offset)) 10782 10783 // When a matching property is found, some extra checking is needed when the 10784 // \p{xx:yy} syntax is used and xx is either sc or scx. 10785 10786 if !(r == 0) { 10787 goto __29 10788 } 10789 10790 *(*Tuint16_t)(unsafe.Pointer(pdataptr)) = X_pcre2_utt_8[i].Fvalue 10791 if !(vptr == uintptr(0) || int32(ptscript) == DPT_NOTSCRIPT) { 10792 goto __30 10793 } 10794 10795 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = X_pcre2_utt_8[i].Ftype 10796 return DTRUE 10797 __30: 10798 ; 10799 10800 switch int32(X_pcre2_utt_8[i].Ftype) { 10801 case DPT_SC: 10802 goto __32 10803 10804 case DPT_SCX: 10805 goto __33 10806 } 10807 goto __31 10808 10809 __32: 10810 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = Tuint16_t(DPT_SC) 10811 return DTRUE 10812 10813 __33: 10814 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = ptscript 10815 return DTRUE 10816 __31: 10817 ; 10818 10819 goto __28 // Non-script found 10820 __29: 10821 ; 10822 10823 if !(r > 0) { 10824 goto __34 10825 } 10826 bot = i + Tsize_t(1) 10827 goto __35 10828 __34: 10829 top = i 10830 __35: 10831 ; 10832 goto __27 10833 __28: 10834 ; 10835 10836 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 // Unrecognized property 10837 return DFALSE 10838 10839 ERROR_RETURN: // Malformed \P or \p 10840 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR46 10841 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10842 return DFALSE 10843 } 10844 10845 // ************************************************ 10846 // 10847 // Check for POSIX class syntax * 10848 // 10849 10850 // This function is called when the sequence "[:" or "[." or "[=" is 10851 // encountered in a character class. It checks whether this is followed by a 10852 // sequence of characters terminated by a matching ":]" or ".]" or "=]". If we 10853 // reach an unescaped ']' without the special preceding character, return FALSE. 10854 // 10855 // Originally, this function only recognized a sequence of letters between the 10856 // terminators, but it seems that Perl recognizes any sequence of characters, 10857 // though of course unknown POSIX names are subsequently rejected. Perl gives an 10858 // "Unknown POSIX class" error for [:f\oo:] for example, where previously PCRE 10859 // didn't consider this to be a POSIX class. Likewise for [:1234:]. 10860 // 10861 // The problem in trying to be exactly like Perl is in the handling of escapes. We 10862 // have to be sure that [abc[:x\]pqr] is *not* treated as containing a POSIX 10863 // class, but [abc[:x\]pqr:]] is (so that an error can be generated). The code 10864 // below handles the special cases \\ and \], but does not try to do any other 10865 // escape processing. This makes it different from Perl for cases such as 10866 // [:l\ower:] where Perl recognizes it as the POSIX class "lower" but PCRE does 10867 // not recognize "l\ower". This is a lesser evil than not diagnosing bad classes 10868 // when Perl does, I think. 10869 // 10870 // A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. 10871 // It seems that the appearance of a nested POSIX class supersedes an apparent 10872 // external class. For example, [:a[:digit:]b:] matches "a", "b", ":", or 10873 // a digit. This is handled by returning FALSE if the start of a new group with 10874 // the same terminator is encountered, since the next closing sequence must close 10875 // the nested group, not the outer one. 10876 // 10877 // In Perl, unescaped square brackets may also appear as part of class names. For 10878 // example, [:a[:abc]b:] gives unknown POSIX class "[:abc]b:]". However, for 10879 // [:a[:abc]b][b:] it gives unknown POSIX class "[:abc]b][b:]", which does not 10880 // seem right at all. PCRE does not allow closing square brackets in POSIX class 10881 // names. 10882 // 10883 // Arguments: 10884 // ptr pointer to the character after the initial [ (colon, dot, equals) 10885 // ptrend pointer to the end of the pattern 10886 // endptr where to return a pointer to the terminating ':', '.', or '=' 10887 // 10888 // Returns: TRUE or FALSE 10889 10890 func check_posix_syntax(tls *libc.TLS, ptr TPCRE2_SPTR8, ptrend TPCRE2_SPTR8, endptr uintptr) TBOOL { /* pcre2_compile.c:2293:1: */ 10891 var terminator TPCRE2_UCHAR8 // Don't combine these lines; the Solaris cc 10892 terminator = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) // compiler warns about "non-constant" initializer. 10893 10894 for ; (int32(ptrend)-int32(ptr))/1 >= 2; ptr++ { 10895 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\134' && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\134') { 10896 ptr++ 10897 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\133' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == int32(terminator) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\135' { 10898 return DFALSE 10899 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(terminator) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' { 10900 *(*TPCRE2_SPTR8)(unsafe.Pointer(endptr)) = ptr 10901 return DTRUE 10902 } 10903 } 10904 10905 return DFALSE 10906 } 10907 10908 // ************************************************ 10909 // 10910 // Check POSIX class name * 10911 // 10912 10913 // This function is called to check the name given in a POSIX-style class entry 10914 // such as [:alnum:]. 10915 // 10916 // Arguments: 10917 // ptr points to the first letter 10918 // len the length of the name 10919 // 10920 // Returns: a value representing the name, or -1 if unknown 10921 10922 func check_posix_name(tls *libc.TLS, ptr TPCRE2_SPTR8, len int32) int32 { /* pcre2_compile.c:2334:1: */ 10923 var pn uintptr = uintptr(unsafe.Pointer(&posix_names)) 10924 var yield int32 = 0 10925 for int32(posix_name_lengths[yield]) != 0 { 10926 if len == int32(posix_name_lengths[yield]) && X_pcre2_strncmp_c8_8(tls, ptr, pn, uint32(uint32(len))) == 0 { 10927 return yield 10928 } 10929 pn += uintptr(int32(posix_name_lengths[yield]) + 1) 10930 yield++ 10931 } 10932 return -1 10933 } 10934 10935 // ************************************************ 10936 // 10937 // Read a subpattern or VERB name * 10938 // 10939 10940 // This function is called from parse_regex() below whenever it needs to read 10941 // the name of a subpattern or a (*VERB) or an (*alpha_assertion). The initial 10942 // pointer must be to the character before the name. If that character is '*' we 10943 // are reading a verb or alpha assertion name. The pointer is updated to point 10944 // after the name, for a VERB or alpha assertion name, or after tha name's 10945 // terminator for a subpattern name. Returning both the offset and the name 10946 // pointer is redundant information, but some callers use one and some the other, 10947 // so it is simplest just to return both. 10948 // 10949 // Arguments: 10950 // ptrptr points to the character pointer variable 10951 // ptrend points to the end of the input string 10952 // utf true if the input is UTF-encoded 10953 // terminator the terminator of a subpattern name must be this 10954 // offsetptr where to put the offset from the start of the pattern 10955 // nameptr where to put a pointer to the name in the input 10956 // namelenptr where to put the length of the name 10957 // errcodeptr where to put an error code 10958 // cb pointer to the compile data block 10959 // 10960 // Returns: TRUE if a name was read 10961 // FALSE otherwise, with error code set 10962 10963 func read_name(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, utf TBOOL, terminator Tuint32_t, offsetptr uintptr, nameptr uintptr, namelenptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:2379:1: */ 10964 var ptr TPCRE2_SPTR8 10965 var is_group TBOOL 10966 var c Tuint32_t 10967 var type1 Tuint32_t 10968 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10969 is_group = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != '\052') 10970 10971 if !(libc.PreIncUintptr(&ptr, 1) >= ptrend) { 10972 goto __1 10973 } /* No characters in name */ 10974 10975 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 10976 if is_group != 0 { 10977 return ERR62 10978 } 10979 return ERR60 10980 }() // Verb not recognized or malformed 10981 goto FAILED 10982 __1: 10983 ; 10984 10985 *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)) = ptr 10986 *(*Tsize_t)(unsafe.Pointer(offsetptr)) = Tsize_t((int32(ptr) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 10987 10988 // In UTF mode, a group name may contain letters and decimal digits as defined 10989 // by Unicode properties, and underscores, but must not start with a digit. 10990 10991 if !(utf != 0 && is_group != 0) { 10992 goto __2 10993 } 10994 10995 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 10996 if !(c >= 0xc0) { 10997 goto __4 10998 } 10999 if !(c&0x20 == Tuint32_t(0)) { 11000 goto __5 11001 } 11002 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11003 goto __6 11004 __5: 11005 if !(c&0x10 == Tuint32_t(0)) { 11006 goto __7 11007 } 11008 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11009 goto __8 11010 __7: 11011 if !(c&0x08 == Tuint32_t(0)) { 11012 goto __9 11013 } 11014 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 11015 goto __10 11016 __9: 11017 if !(c&0x04 == Tuint32_t(0)) { 11018 goto __11 11019 } 11020 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 11021 goto __12 11022 __11: 11023 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 11024 __12: 11025 ; 11026 __10: 11027 ; 11028 __8: 11029 ; 11030 __6: 11031 ; 11032 __4: 11033 ; 11034 11035 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype) 11036 11037 if !(type1 == ucp_Nd) { 11038 goto __13 11039 } 11040 11041 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11042 goto FAILED 11043 __13: 11044 ; 11045 11046 __14: 11047 11048 if !(type1 != ucp_Nd && X_pcre2_ucp_gentype_8[type1] != ucp_L && c != Tuint32_t('\137')) { 11049 goto __17 11050 } 11051 goto __16 11052 __17: 11053 ; 11054 ptr++ 11055 __18: 11056 if !(ptr < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80) { 11057 goto __19 11058 } 11059 ptr++ 11060 goto __18 11061 __19: 11062 ; 11063 if !(ptr >= ptrend) { 11064 goto __20 11065 } 11066 goto __16 11067 __20: 11068 ; 11069 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 11070 if !(c >= 0xc0) { 11071 goto __21 11072 } 11073 if !(c&0x20 == Tuint32_t(0)) { 11074 goto __22 11075 } 11076 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11077 goto __23 11078 __22: 11079 if !(c&0x10 == Tuint32_t(0)) { 11080 goto __24 11081 } 11082 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11083 goto __25 11084 __24: 11085 if !(c&0x08 == Tuint32_t(0)) { 11086 goto __26 11087 } 11088 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 11089 goto __27 11090 __26: 11091 if !(c&0x04 == Tuint32_t(0)) { 11092 goto __28 11093 } 11094 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 11095 goto __29 11096 __28: 11097 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 11098 __29: 11099 ; 11100 __27: 11101 ; 11102 __25: 11103 ; 11104 __23: 11105 ; 11106 __21: 11107 ; 11108 11109 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype) 11110 goto __15 11111 __15: 11112 goto __14 11113 goto __16 11114 __16: 11115 ; 11116 goto __3 11117 __2: 11118 11119 /* Handle non-group names and group names in non-UTF modes. A group name must 11120 not start with a digit. If either of the others start with a digit it just 11121 won't be recognized. */ 11122 11123 if !(is_group != 0 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 11124 goto __30 11125 } 11126 11127 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11128 goto FAILED 11129 __30: 11130 ; 11131 11132 __31: 11133 if !(ptr < ptrend && 1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))))))&Dctype_word != 0) { 11134 goto __32 11135 } 11136 11137 ptr++ 11138 goto __31 11139 __32: 11140 ; 11141 __3: 11142 ; 11143 11144 // Check name length 11145 11146 if !(ptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))+uintptr(DMAX_NAME_SIZE)) { 11147 goto __33 11148 } 11149 11150 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR48 11151 goto FAILED 11152 __33: 11153 ; 11154 *(*Tuint32_t)(unsafe.Pointer(namelenptr)) = Tuint32_t((int32(ptr) - int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)))) / 1) 11155 11156 // Subpattern names must not be empty, and their terminator is checked here. 11157 // (What follows a verb or alpha assertion name is checked separately.) 11158 11159 if !(is_group != 0) { 11160 goto __34 11161 } 11162 11163 if !(ptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))) { 11164 goto __35 11165 } 11166 11167 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR62 // Subpattern name expected 11168 goto FAILED 11169 __35: 11170 ; 11171 if !(ptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != int32(TPCRE2_UCHAR8(terminator))) { 11172 goto __36 11173 } 11174 11175 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR42 11176 goto FAILED 11177 __36: 11178 ; 11179 ptr++ 11180 __34: 11181 ; 11182 11183 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11184 return DTRUE 11185 11186 FAILED: 11187 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11188 return DFALSE 11189 } 11190 11191 // ************************************************ 11192 // 11193 // Manage callouts at start of cycle * 11194 // 11195 11196 // At the start of a new item in parse_regex() we are able to record the 11197 // details of the previous item in a prior callout, and also to set up an 11198 // automatic callout if enabled. Avoid having two adjacent automatic callouts, 11199 // which would otherwise happen for items such as \Q that contribute nothing to 11200 // the parsed pattern. 11201 // 11202 // Arguments: 11203 // ptr current pattern pointer 11204 // pcalloutptr points to a pointer to previous callout, or NULL 11205 // auto_callout TRUE if auto_callouts are enabled 11206 // parsed_pattern the parsed pattern pointer 11207 // cb compile block 11208 // 11209 // Returns: possibly updated parsed_pattern pointer. 11210 11211 func manage_callouts(tls *libc.TLS, ptr TPCRE2_SPTR8, pcalloutptr uintptr, auto_callout TBOOL, parsed_pattern uintptr, cb uintptr) uintptr { /* pcre2_compile.c:2503:17: */ 11212 var previous_callout uintptr = *(*uintptr)(unsafe.Pointer(pcalloutptr)) 11213 11214 if previous_callout != uintptr(0) { 11215 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(Tsize_t((int32(ptr)-int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1) - Tsize_t(*(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)))) 11216 } 11217 11218 if !(auto_callout != 0) { 11219 previous_callout = uintptr(0) 11220 } else { 11221 if previous_callout == uintptr(0) || previous_callout != parsed_pattern-uintptr(4)*4 || *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) != Tuint32_t(255) { 11222 previous_callout = parsed_pattern // Set up new automatic callout 11223 parsed_pattern += 4 * uintptr(4) 11224 *(*Tuint32_t)(unsafe.Pointer(previous_callout)) = DMETA_CALLOUT_NUMBER 11225 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(0) 11226 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) = Tuint32_t(255) 11227 } 11228 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)) = Tuint32_t((int32(ptr) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 11229 } 11230 11231 *(*uintptr)(unsafe.Pointer(pcalloutptr)) = previous_callout 11232 return parsed_pattern 11233 } 11234 11235 // ************************************************ 11236 // 11237 // Parse regex and identify named groups * 11238 // 11239 11240 // This function is called first of all. It scans the pattern and does two 11241 // things: (1) It identifies capturing groups and makes a table of named capturing 11242 // groups so that information about them is fully available to both the compiling 11243 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11244 // escapes processed into the parsed_pattern vector. 11245 // 11246 // Arguments: 11247 // ptr points to the start of the pattern 11248 // options compiling dynamic options (may change during the scan) 11249 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11250 // cb pointer to the compile data block 11251 // 11252 // Returns: zero on success or a non-zero error code, with the 11253 // error offset placed in the cb field 11254 11255 // A structure and some flags for dealing with nested groups. 11256 11257 type Snest_save = struct { 11258 Fnest_depth Tuint16_t 11259 Freset_group Tuint16_t 11260 Fmax_group Tuint16_t 11261 Fflags Tuint16_t 11262 Foptions Tuint32_t 11263 } /* pcre2_compile.c:2555:9 */ 11264 11265 // ************************************************ 11266 // 11267 // Parse regex and identify named groups * 11268 // 11269 11270 // This function is called first of all. It scans the pattern and does two 11271 // things: (1) It identifies capturing groups and makes a table of named capturing 11272 // groups so that information about them is fully available to both the compiling 11273 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11274 // escapes processed into the parsed_pattern vector. 11275 // 11276 // Arguments: 11277 // ptr points to the start of the pattern 11278 // options compiling dynamic options (may change during the scan) 11279 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11280 // cb pointer to the compile data block 11281 // 11282 // Returns: zero on success or a non-zero error code, with the 11283 // error offset placed in the cb field 11284 11285 // A structure and some flags for dealing with nested groups. 11286 11287 type Tnest_save = Snest_save /* pcre2_compile.c:2561:3 */ 11288 11289 // Only in 32-bit mode can there be literals > META_END. A macro encapsulates 11290 // the storing of literal values in the main parsed pattern, where they can always 11291 // be quantified. 11292 11293 // Here's the actual function. 11294 11295 func parse_regex(tls *libc.TLS, ptr TPCRE2_SPTR8, options Tuint32_t, has_lookbehind uintptr, cb uintptr) int32 { /* pcre2_compile.c:2598:12: */ 11296 bp := tls.Alloc(76) 11297 defer tls.Free(76) 11298 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) = ptr 11299 11300 // var c Tuint32_t at bp+8, 4 11301 11302 var delimiter Tuint32_t 11303 // var namelen Tuint32_t at bp+44, 4 11304 11305 var class_range_state Tuint32_t 11306 var verblengthptr uintptr // Value avoids compiler warning 11307 var verbstartptr uintptr 11308 // var previous_callout uintptr at bp, 4 11309 11310 var parsed_pattern uintptr 11311 var parsed_pattern_end uintptr 11312 var meta_quantifier Tuint32_t 11313 var add_after_mark Tuint32_t 11314 var extra_options Tuint32_t 11315 var nest_depth Tuint16_t 11316 var after_manual_callout int32 11317 var expect_cond_assert int32 11318 // var errorcode int32 at bp+12, 4 11319 11320 var escape int32 11321 // var i int32 at bp+32, 4 11322 11323 var inescq TBOOL 11324 var inverbname TBOOL 11325 var utf TBOOL 11326 var auto_callout TBOOL 11327 var isdupname TBOOL 11328 var negate_class TBOOL 11329 var okquantifier TBOOL 11330 var thisptr TPCRE2_SPTR8 11331 // var name TPCRE2_SPTR8 at bp+40, 4 11332 11333 var ptrend TPCRE2_SPTR8 11334 var verbnamestart TPCRE2_SPTR8 // Value avoids compiler warning 11335 var ng uintptr 11336 var top_nest uintptr 11337 var end_nests uintptr 11338 var verbnamelength Tsize_t 11339 var ok TBOOL 11340 // var negated TBOOL at bp+20, 4 11341 11342 // var ptype Tuint16_t at bp+24, 2 11343 11344 // var pdata Tuint16_t at bp+26, 2 11345 11346 // var p TPCRE2_SPTR8 at bp+28, 4 11347 11348 var p1 uintptr 11349 var ptype1 int32 11350 var pvalue int32 11351 var posix_negate TBOOL 11352 var posix_class int32 11353 // var negated1 TBOOL at bp+56, 4 11354 11355 // var ptype2 Tuint16_t at bp+60, 2 11356 11357 // var pdata1 Tuint16_t at bp+62, 2 11358 11359 var char_is_literal TBOOL 11360 var meta Tuint32_t 11361 var vn uintptr 11362 var hyphenok TBOOL 11363 var oldoptions Tuint32_t 11364 var calloutlength Tsize_t 11365 var startptr TPCRE2_SPTR8 11366 var n int32 11367 var ge Tuint32_t 11368 // var major int32 at bp+72, 4 11369 11370 var minor int32 11371 var was_r_ampersand TBOOL 11372 var newsize Tuint32_t 11373 var newspace uintptr 11374 var prev_expect_cond_assert int32 11375 // var min_repeat Tuint32_t at bp+48, 4 11376 11377 // var max_repeat Tuint32_t at bp+52, 4 11378 11379 // var set Tuint32_t at bp+64, 4 11380 11381 // var unset Tuint32_t at bp+68, 4 11382 11383 var optset uintptr 11384 var terminator Tuint32_t 11385 var prev_meta_quantifier Tuint32_t 11386 var prev_okquantifier TBOOL 11387 // var tempptr TPCRE2_SPTR8 at bp+16, 4 11388 11389 // var offset Tsize_t at bp+36, 4 11390 verblengthptr = uintptr(0) 11391 verbstartptr = uintptr(0) 11392 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = uintptr(0) 11393 parsed_pattern = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 11394 parsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern_end 11395 meta_quantifier = Tuint32_t(0) 11396 add_after_mark = Tuint32_t(0) 11397 extra_options = (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options 11398 nest_depth = Tuint16_t(0) 11399 after_manual_callout = 0 11400 expect_cond_assert = 0 11401 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = 0 11402 inescq = DFALSE 11403 inverbname = DFALSE 11404 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 11405 auto_callout = libc.Bool32(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) 11406 okquantifier = DFALSE 11407 ptrend = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern 11408 verbnamestart = uintptr(0) 11409 11410 // Insert leading items for word and line matching (features provided for the 11411 // benefit of pcre2grep). 11412 11413 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 11414 goto __1 11415 } 11416 11417 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 11418 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11419 goto __2 11420 __1: 11421 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 11422 goto __3 11423 } 11424 11425 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 11426 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11427 __3: 11428 ; 11429 __2: 11430 ; 11431 11432 // If the pattern is actually a literal string, process it separately to avoid 11433 // cluttering up the main loop. 11434 11435 if !(options&DPCRE2_LITERAL != Tuint32_t(0)) { 11436 goto __4 11437 } 11438 11439 __5: 11440 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend) { 11441 goto __6 11442 } 11443 11444 if !(parsed_pattern >= parsed_pattern_end) { 11445 goto __7 11446 } 11447 11448 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11449 goto FAILED 11450 __7: 11451 ; 11452 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 11453 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 11454 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 11455 goto __8 11456 } 11457 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 11458 goto __9 11459 } 11460 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 11461 goto __10 11462 __9: 11463 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 11464 goto __11 11465 } 11466 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 11467 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 11468 goto __12 11469 __11: 11470 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 11471 goto __13 11472 } 11473 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 11474 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 11475 goto __14 11476 __13: 11477 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 11478 goto __15 11479 } 11480 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 11481 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 11482 goto __16 11483 __15: 11484 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 11485 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 11486 __16: 11487 ; 11488 __14: 11489 ; 11490 __12: 11491 ; 11492 __10: 11493 ; 11494 __8: 11495 ; 11496 11497 if !(auto_callout != 0) { 11498 goto __17 11499 } 11500 parsed_pattern = manage_callouts(tls, thisptr, bp, 11501 auto_callout, parsed_pattern, cb) 11502 __17: 11503 ; 11504 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 11505 okquantifier = DTRUE 11506 11507 goto __5 11508 __6: 11509 ; 11510 goto PARSED_END 11511 __4: 11512 ; 11513 11514 // Process a real regex which may contain meta-characters. 11515 11516 top_nest = uintptr(0) 11517 end_nests = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) 11518 11519 // The size of the nest_save structure might not be a factor of the size of the 11520 // workspace. Therefore we must round down end_nests so as to correctly avoid 11521 // creating a nest_save that spans the end of the workspace. 11522 11523 end_nests = end_nests - uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size*Tsize_t(unsafe.Sizeof(TPCRE2_UCHAR8(0)))%Tsize_t(unsafe.Sizeof(Tnest_save{}))) 11524 11525 // PCRE2_EXTENDED_MORE implies PCRE2_EXTENDED 11526 11527 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0)) { 11528 goto __18 11529 } 11530 options = options | DPCRE2_EXTENDED 11531 __18: 11532 ; 11533 11534 // Now scan the pattern 11535 11536 __19: 11537 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend) { 11538 goto __20 11539 } 11540 11541 if !(parsed_pattern >= parsed_pattern_end) { 11542 goto __21 11543 } 11544 11545 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11546 goto FAILED 11547 __21: 11548 ; 11549 11550 if !(Tuint32_t(nest_depth) > (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fparens_nest_limit) { 11551 goto __22 11552 } 11553 11554 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR19 11555 goto FAILED // Parentheses too deeply nested 11556 __22: 11557 ; 11558 11559 // Get next input character, save its position for callout handling. 11560 11561 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 11562 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 11563 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 11564 goto __23 11565 } 11566 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 11567 goto __24 11568 } 11569 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 11570 goto __25 11571 __24: 11572 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 11573 goto __26 11574 } 11575 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 11576 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 11577 goto __27 11578 __26: 11579 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 11580 goto __28 11581 } 11582 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 11583 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 11584 goto __29 11585 __28: 11586 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 11587 goto __30 11588 } 11589 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 11590 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 11591 goto __31 11592 __30: 11593 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 11594 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 11595 __31: 11596 ; 11597 __29: 11598 ; 11599 __27: 11600 ; 11601 __25: 11602 ; 11603 __23: 11604 ; 11605 11606 // Copy quoted literals until \E, allowing for the possibility of automatic 11607 // callouts, except when processing a (*VERB) "name". 11608 11609 if !(inescq != 0) { 11610 goto __32 11611 } 11612 11613 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\105') { 11614 goto __33 11615 } 11616 11617 inescq = DFALSE 11618 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ // Skip E 11619 goto __34 11620 __33: 11621 11622 if !(expect_cond_assert > 0) { 11623 goto __35 11624 } /* A literal is not allowed if we are */ 11625 // expecting a conditional assertion, 11626 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // but an empty \Q\E sequence is OK. 11627 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR28 11628 goto FAILED 11629 __35: 11630 ; 11631 if !(inverbname != 0) { 11632 goto __36 11633 } 11634 // Don't use PARSED_LITERAL() because it 11635 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 11636 goto __37 11637 __36: 11638 11639 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11640 goto __38 11641 } 11642 parsed_pattern = manage_callouts(tls, thisptr, bp, 11643 auto_callout, parsed_pattern, cb) 11644 __38: 11645 ; 11646 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 11647 okquantifier = DTRUE 11648 11649 __37: 11650 ; 11651 meta_quantifier = Tuint32_t(0) 11652 __34: 11653 ; 11654 goto __19 // Next character 11655 __32: 11656 ; 11657 11658 // If we are processing the "name" part of a (*VERB:NAME) item, all 11659 // characters up to the closing parenthesis are literals except when 11660 // PCRE2_ALT_VERBNAMES is set. That causes backslash interpretation, but only \Q 11661 // and \E and escaped characters are allowed (no character types such as \d). If 11662 // PCRE2_EXTENDED is also set, we must ignore white space and # comments. Do 11663 // this by not entering the special (*VERB:NAME) processing - they are then 11664 // picked up below. Note that c is a character, not a code unit, so we must not 11665 // use MAX_255 to test its size because MAX_255 tests code units and is assumed 11666 // TRUE in 8-bit mode. 11667 11668 if !(inverbname != 0 && (options&(DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES) != DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES || *(*Tuint32_t)(unsafe.Pointer(bp + 8)) > Tuint32_t(255) && *(*Tuint32_t)(unsafe.Pointer(bp + 8))|Tuint32_t(1) != Tuint32_t(0x200f) && *(*Tuint32_t)(unsafe.Pointer(bp + 8))|Tuint32_t(1) != Tuint32_t(0x2029) || *(*Tuint32_t)(unsafe.Pointer(bp + 8)) < Tuint32_t(256) && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\043') && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 8))))))&Dctype_space == 0 && 11669 11670 *(*Tuint32_t)(unsafe.Pointer(bp + 8)) != libc.Uint32FromUint8(libc.Uint8FromInt32(133)))) { 11671 goto __39 11672 } 11673 11674 switch *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) { 11675 default: 11676 goto __41 11677 11678 case Tuint32_t('\051'): 11679 goto __42 11680 11681 case Tuint32_t('\134'): 11682 goto __43 11683 } 11684 goto __40 11685 11686 __41: // Don't use PARSED_LITERAL() because it 11687 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 11688 goto __40 11689 11690 __42: 11691 inverbname = DFALSE 11692 // This is the length in characters 11693 verbnamelength = Tsize_t((int32(parsed_pattern)-int32(verblengthptr))/4 - 1) 11694 // But the limit on the length is in code units 11695 if !((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))-int32(verbnamestart))/1-1 > int32(int32(uint32(1)<<8-uint32(1)))) { 11696 goto __44 11697 } 11698 11699 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- 11700 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR76 11701 goto FAILED 11702 __44: 11703 ; 11704 *(*Tuint32_t)(unsafe.Pointer(verblengthptr)) = Tuint32_t(verbnamelength) 11705 11706 // If this name was on a verb such as (*ACCEPT) which does not continue, 11707 // a (*MARK) was generated for the name. We now add the original verb as the 11708 // next item. 11709 11710 if !(add_after_mark != Tuint32_t(0)) { 11711 goto __45 11712 } 11713 11714 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = add_after_mark 11715 add_after_mark = Tuint32_t(0) 11716 __45: 11717 ; 11718 goto __40 11719 11720 __43: 11721 if !(options&DPCRE2_ALT_VERBNAMES != Tuint32_t(0)) { 11722 goto __46 11723 } 11724 11725 escape = X_pcre2_check_escape_8(tls, bp+4, ptrend, bp+8, bp+12, options, 11726 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 11727 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 11728 goto __48 11729 } 11730 goto FAILED 11731 __48: 11732 ; 11733 goto __47 11734 __46: 11735 escape = 0 11736 __47: 11737 ; // Treat all as literal 11738 11739 switch escape { 11740 case 0: 11741 goto __50 11742 11743 case ESC_Q: 11744 goto __51 11745 11746 case ESC_E: 11747 goto __52 11748 11749 default: 11750 goto __53 11751 } 11752 goto __49 11753 11754 __50: // Don't use PARSED_LITERAL() because it 11755 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 11756 goto __49 11757 11758 __51: 11759 inescq = DTRUE 11760 goto __49 11761 11762 __52: // Ignore 11763 goto __49 11764 11765 __53: 11766 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR40 // Invalid in verb name 11767 goto FAILED 11768 __49: 11769 ; 11770 __40: 11771 ; 11772 goto __19 // Next character in pattern 11773 __39: 11774 ; 11775 11776 // Not a verb name character. At this point we must process everything that 11777 // must not change the quantification state. This is mainly comments, but we 11778 // handle \Q and \E here as well, so that an item such as A\Q\E+ is treated as 11779 // A+, as in Perl. An isolated \E is ignored. 11780 11781 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend) { 11782 goto __54 11783 } 11784 11785 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\121' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\105') { 11786 goto __55 11787 } 11788 11789 inescq = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\121') 11790 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 11791 goto __19 11792 __55: 11793 ; 11794 __54: 11795 ; 11796 11797 // Skip over whitespace and # comments in extended mode. Note that c is a 11798 // character, not a code unit, so we must not use MAX_255 to test its size 11799 // because MAX_255 tests code units and is assumed TRUE in 8-bit mode. The 11800 // whitespace characters are those designated as "Pattern White Space" by 11801 // Unicode, which are the isspace() characters plus CHAR_NEL (newline), which is 11802 // U+0085 in Unicode, plus U+200E, U+200F, U+2028, and U+2029. These are a 11803 // subset of space characters that match \h and \v. 11804 11805 if !(options&DPCRE2_EXTENDED != Tuint32_t(0)) { 11806 goto __56 11807 } 11808 11809 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 8))))))&Dctype_space != 0) { 11810 goto __57 11811 } 11812 goto __19 11813 __57: 11814 ; 11815 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == libc.Uint32FromUint8(libc.Uint8FromInt32(133)) || *(*Tuint32_t)(unsafe.Pointer(bp + 8))|Tuint32_t(1) == Tuint32_t(0x200f) || *(*Tuint32_t)(unsafe.Pointer(bp + 8))|Tuint32_t(1) == Tuint32_t(0x2029)) { 11816 goto __58 11817 } 11818 goto __19 11819 __58: 11820 ; 11821 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\043')) { 11822 goto __59 11823 } 11824 11825 __60: 11826 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend) { 11827 goto __61 11828 } 11829 11830 if !(func() int32 { 11831 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 11832 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern && X_pcre2_is_newline_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern, cb+148, utf) != 0) 11833 } 11834 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) <= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern-uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 160))) && ((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 160 + 1))))) 11835 }() != 0) { 11836 goto __62 11837 } /* For non-fixed-length newline cases, */ 11838 // IS_NEWLINE sets cb->nllen. 11839 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += TPCRE2_SPTR8((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen) 11840 goto __61 11841 __62: 11842 ; 11843 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 11844 if !(utf != 0) { 11845 goto __63 11846 } 11847 __64: 11848 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0xc0 == 0x80) { 11849 goto __65 11850 } 11851 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 11852 goto __64 11853 __65: 11854 ; 11855 __63: 11856 ; 11857 goto __60 11858 __61: 11859 ; 11860 goto __19 // Next character in pattern 11861 __59: 11862 ; 11863 __56: 11864 ; 11865 11866 // Skip over bracketed comments 11867 11868 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\050') && (int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 2 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\077' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) == '\043') { 11869 goto __66 11870 } 11871 11872 __67: 11873 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 11874 goto __68 11875 } 11876 goto __67 11877 __68: 11878 ; 11879 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 11880 goto __69 11881 } 11882 11883 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR18 // A special error for missing ) in a comment 11884 goto FAILED // to make it easier to debug. 11885 __69: 11886 ; 11887 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 11888 goto __19 // Next character in pattern 11889 __66: 11890 ; 11891 11892 // If the next item is not a quantifier, fill in length of any previous 11893 // callout and create an auto callout if required. 11894 11895 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\052') && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\053') && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\077') && (*(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\173') || func() bool { 11896 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) 11897 return !(read_repeat_counts(tls, bp+16, ptrend, uintptr(0), uintptr(0), bp+12) != 0) 11898 }())) { 11899 goto __70 11900 } 11901 11902 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11903 goto __71 11904 } 11905 parsed_pattern = manage_callouts(tls, thisptr, bp, auto_callout, 11906 parsed_pattern, cb) 11907 __71: 11908 ; 11909 __70: 11910 ; 11911 11912 // If expect_cond_assert is 2, we have just passed (?( and are expecting an 11913 // assertion, possibly preceded by a callout. If the value is 1, we have just 11914 // had the callout and expect an assertion. There must be at least 3 more 11915 // characters in all cases. When expect_cond_assert is 2, we know that the 11916 // current character is an opening parenthesis, as otherwise we wouldn't be 11917 // here. However, when it is 1, we need to check, and it's easiest just to check 11918 // always. Note that expect_cond_assert may be negative, since all callouts just 11919 // decrement it. 11920 11921 if !(expect_cond_assert > 0) { 11922 goto __72 11923 } 11924 11925 ok = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\050') && (int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 3 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\052')) 11926 if !(ok != 0) { 11927 goto __73 11928 } 11929 11930 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\052') { 11931 goto __74 11932 } /* New alpha assertion format, possibly */ 11933 11934 ok = libc.Bool32(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))))))&Dctype_lcletter != 0) 11935 goto __75 11936 __74: 11937 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) + 1))) { 11938 case '\103': 11939 goto __77 11940 11941 case '\075': 11942 goto __78 11943 case '\041': 11944 goto __79 11945 11946 case '\074': 11947 goto __80 11948 11949 default: 11950 goto __81 11951 } 11952 goto __76 /* Traditional symbolic format */ 11953 11954 __77: 11955 ok = libc.Bool32(expect_cond_assert == 2) 11956 goto __76 11957 11958 __78: 11959 __79: 11960 goto __76 11961 11962 __80: 11963 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2))) == '\075' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2))) == '\041') 11964 goto __76 11965 11966 __81: 11967 ok = DFALSE 11968 __76: 11969 ; 11970 __75: 11971 ; 11972 __73: 11973 ; 11974 11975 if !!(ok != 0) { 11976 goto __82 11977 } 11978 11979 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Adjust error offset 11980 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR28 11981 goto FAILED 11982 __82: 11983 ; 11984 __72: 11985 ; 11986 11987 // Remember whether we are expecting a conditional assertion, and set the 11988 // default for this item. 11989 11990 prev_expect_cond_assert = expect_cond_assert 11991 expect_cond_assert = 0 11992 11993 // Remember quantification status for the previous significant item, then set 11994 // default for this item. 11995 11996 prev_okquantifier = okquantifier 11997 prev_meta_quantifier = meta_quantifier 11998 okquantifier = DFALSE 11999 meta_quantifier = Tuint32_t(0) 12000 12001 // If the previous significant item was a quantifier, adjust the parsed code 12002 // if there is a following modifier. The base meta value is always followed by 12003 // the PLUS and QUERY values, in that order. We do this here rather than after 12004 // reading a quantifier so that intervening comments and /x whitespace can be 12005 // ignored without having to replicate code. 12006 12007 if !(prev_meta_quantifier != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\077') || *(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\053'))) { 12008 goto __83 12009 } 12010 12011 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + uintptr(func() int32 { 12012 if prev_meta_quantifier == DMETA_MINMAX { 12013 return -3 12014 } 12015 return -1 12016 }())*4)) = prev_meta_quantifier + func() uint32 { 12017 if *(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\077') { 12018 return 0x00020000 12019 } 12020 return 0x00010000 12021 }() 12022 goto __19 // Next character in pattern 12023 __83: 12024 ; 12025 12026 // Process the next item in the main part of a pattern. 12027 12028 switch *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) { 12029 default: 12030 goto __85 12031 12032 // ---- Escape sequence ---- 12033 12034 case Tuint32_t('\134'): 12035 goto __86 // End escape sequence processing 12036 12037 // ---- Single-character special items ---- 12038 12039 case Tuint32_t('\136'): 12040 goto __87 12041 12042 case Tuint32_t('\044'): 12043 goto __88 12044 12045 case Tuint32_t('\056'): 12046 goto __89 12047 12048 // ---- Single-character quantifiers ---- 12049 12050 case Tuint32_t('\052'): 12051 goto __90 12052 12053 case Tuint32_t('\053'): 12054 goto __91 12055 12056 case Tuint32_t('\077'): 12057 goto __92 12058 12059 // ---- Potential {n,m} quantifier ---- 12060 12061 case Tuint32_t('\173'): 12062 goto __93 12063 12064 // ---- Character class ---- 12065 12066 case Tuint32_t('\133'): 12067 goto __94 // End of character class 12068 12069 // ---- Opening parenthesis ---- 12070 12071 case Tuint32_t('\050'): 12072 goto __95 // End of ( handling 12073 12074 // ---- Branch terminators ---- 12075 12076 // Alternation: reset the capture count if we are in a (?| group. 12077 12078 case Tuint32_t('\174'): 12079 goto __96 12080 12081 // End of group; reset the capture count to the maximum if we are in a (?| 12082 // group and/or reset the options that are tracked during parsing. Disallow 12083 // quantifier for a condition that is an assertion. 12084 12085 case Tuint32_t('\051'): 12086 goto __97 12087 } 12088 goto __84 12089 12090 __85: // Non-special character 12091 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 12092 okquantifier = DTRUE 12093 12094 goto __84 12095 12096 // ---- Escape sequence ---- 12097 12098 __86: 12099 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 12100 escape = X_pcre2_check_escape_8(tls, bp+4, ptrend, bp+8, bp+12, options, 12101 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 12102 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 12103 goto __98 12104 } 12105 12106 ESCAPE_FAILED: 12107 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 12108 goto __99 12109 } 12110 goto FAILED 12111 __99: 12112 ; 12113 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16 /* tempptr */)) 12114 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 12115 goto __100 12116 } 12117 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t('\134') 12118 goto __101 12119 __100: 12120 12121 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 12122 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 12123 goto __102 12124 } 12125 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 12126 goto __103 12127 } 12128 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 12129 goto __104 12130 __103: 12131 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 12132 goto __105 12133 } 12134 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 12135 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 12136 goto __106 12137 __105: 12138 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 12139 goto __107 12140 } 12141 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 12142 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 12143 goto __108 12144 __107: 12145 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 12146 goto __109 12147 } 12148 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 12149 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 12150 goto __110 12151 __109: 12152 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 12153 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 12154 __110: 12155 ; 12156 __108: 12157 ; 12158 __106: 12159 ; 12160 __104: 12161 ; 12162 __102: 12163 ; 12164 12165 // Get character value, increment pointer 12166 __101: 12167 ; 12168 escape = 0 // Treat as literal character 12169 __98: 12170 ; 12171 12172 // The escape was a data escape or literal character. 12173 12174 if !(escape == 0) { 12175 goto __111 12176 } 12177 12178 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 12179 okquantifier = DTRUE 12180 12181 goto __112 12182 __111: 12183 if !(escape < 0) { 12184 goto __113 12185 } 12186 12187 *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))-int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - 1) 12188 escape = -escape 12189 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF | Tuint32_t(escape) 12190 if !(escape < 10) { 12191 goto __115 12192 } 12193 12194 if !(*(*Tsize_t)(unsafe.Pointer(cb + 44 + uintptr(escape)*4)) == libc.CplUint32(Tsize_t(0))) { 12195 goto __117 12196 } 12197 *(*Tsize_t)(unsafe.Pointer(cb + 44 + uintptr(escape)*4)) = *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) 12198 __117: 12199 ; 12200 goto __116 12201 __115: 12202 12203 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 12204 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 12205 12206 __116: 12207 ; 12208 okquantifier = DTRUE 12209 goto __114 12210 __113: 12211 switch escape { 12212 case ESC_C: 12213 goto __119 12214 12215 case ESC_X: 12216 goto __120 12217 case ESC_H: 12218 goto __121 12219 case ESC_h: 12220 goto __122 12221 case ESC_N: 12222 goto __123 12223 case ESC_R: 12224 goto __124 12225 case ESC_V: 12226 goto __125 12227 case ESC_v: 12228 goto __126 12229 12230 default: 12231 goto __127 12232 12233 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12234 // without Unicode support because it is checked when pcre2_compile() is 12235 // called. 12236 12237 case ESC_d: 12238 goto __128 12239 case ESC_D: 12240 goto __129 12241 case ESC_s: 12242 goto __130 12243 case ESC_S: 12244 goto __131 12245 case ESC_w: 12246 goto __132 12247 case ESC_W: 12248 goto __133 12249 12250 // Unicode property matching 12251 12252 case ESC_P: 12253 goto __134 12254 case ESC_p: 12255 goto __135 // End \P and \p 12256 12257 // When \g is used with quotes or angle brackets as delimiters, it is a 12258 // numerical or named subroutine call, and control comes here. When used 12259 // with brace delimiters it is a numberical back reference and does not come 12260 // here because check_escape() returns it directly as a reference. \k is 12261 // always a named back reference. 12262 12263 case ESC_g: 12264 goto __136 12265 case ESC_k: 12266 goto __137 12267 } 12268 goto __118 12269 12270 __119: 12271 if !(options&DPCRE2_NEVER_BACKSLASH_C != Tuint32_t(0)) { 12272 goto __138 12273 } 12274 12275 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR83 12276 goto ESCAPE_FAILED 12277 __138: 12278 ; 12279 okquantifier = DTRUE 12280 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12281 goto __118 12282 12283 __120: 12284 __121: 12285 __122: 12286 __123: 12287 __124: 12288 __125: 12289 __126: 12290 okquantifier = DTRUE 12291 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12292 goto __118 12293 12294 __127: // \A, \B, \b, \G, \K, \Z, \z cannot be quantified. 12295 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12296 goto __118 12297 12298 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12299 // without Unicode support because it is checked when pcre2_compile() is 12300 // called. 12301 12302 __128: 12303 __129: 12304 __130: 12305 __131: 12306 __132: 12307 __133: 12308 okquantifier = DTRUE 12309 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12310 goto __139 12311 } 12312 12313 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12314 goto __140 12315 __139: 12316 12317 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12318 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 12319 return ESC_p 12320 } 12321 return ESC_P 12322 }() 12323 switch escape { 12324 case ESC_d: 12325 goto __142 12326 case ESC_D: 12327 goto __143 12328 12329 case ESC_s: 12330 goto __144 12331 case ESC_S: 12332 goto __145 12333 12334 case ESC_w: 12335 goto __146 12336 case ESC_W: 12337 goto __147 12338 } 12339 goto __141 12340 12341 __142: 12342 __143: 12343 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 12344 goto __141 12345 12346 __144: 12347 __145: 12348 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 12349 goto __141 12350 12351 __146: 12352 __147: 12353 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12354 goto __141 12355 __141: 12356 ; 12357 __140: 12358 ; 12359 goto __118 12360 12361 // Unicode property matching 12362 12363 __134: 12364 __135: 12365 12366 *(*Tuint16_t)(unsafe.Pointer(bp + 24 /* ptype */)) = Tuint16_t(0) 12367 *(*Tuint16_t)(unsafe.Pointer(bp + 26 /* pdata */)) = Tuint16_t(0) 12368 if !!(get_ucp(tls, bp+4, bp+20, bp+24, bp+26, bp+12, cb) != 0) { 12369 goto __148 12370 } 12371 goto ESCAPE_FAILED 12372 __148: 12373 ; 12374 if !(*(*TBOOL)(unsafe.Pointer(bp + 20)) != 0) { 12375 goto __149 12376 } 12377 if escape == ESC_P { 12378 escape = ESC_p 12379 } else { 12380 escape = ESC_P 12381 } 12382 __149: 12383 ; 12384 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12385 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 24)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 26)))) 12386 okquantifier = DTRUE 12387 12388 goto __118 // End \P and \p 12389 12390 // When \g is used with quotes or angle brackets as delimiters, it is a 12391 // numerical or named subroutine call, and control comes here. When used 12392 // with brace delimiters it is a numberical back reference and does not come 12393 // here because check_escape() returns it directly as a reference. \k is 12394 // always a named back reference. 12395 12396 __136: 12397 __137: 12398 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\173' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\074' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\047') { 12399 goto __150 12400 } 12401 12402 if escape == ESC_g { 12403 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR57 12404 } else { 12405 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR69 12406 } 12407 goto ESCAPE_FAILED 12408 __150: 12409 ; 12410 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\074' { 12411 terminator = uint32('\076') 12412 } else { 12413 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\047' { 12414 terminator = uint32('\047') 12415 } else { 12416 terminator = uint32('\175') 12417 } 12418 } 12419 12420 // For a non-braced \g, check for a numerical recursion. 12421 12422 if !(escape == ESC_g && terminator != Tuint32_t('\175')) { 12423 goto __151 12424 } 12425 12426 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 28 /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + uintptr(1) 12427 12428 if !(read_number(tls, bp+28, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+32, 12429 bp+12) != 0) { 12430 goto __152 12431 } 12432 12433 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 28)) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 28))))) != terminator) { 12434 goto __153 12435 } 12436 12437 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR57 12438 goto ESCAPE_FAILED 12439 __153: 12440 ; 12441 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 28 /* p */)) 12442 goto SET_RECURSION 12443 __152: 12444 ; 12445 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 12446 goto __154 12447 } 12448 goto ESCAPE_FAILED 12449 __154: 12450 ; 12451 __151: 12452 ; 12453 12454 // Not a numerical recursion 12455 12456 if !!(read_name(tls, bp+4, ptrend, utf, terminator, bp+36, bp+40, bp+44, 12457 bp+12, cb) != 0) { 12458 goto __155 12459 } 12460 goto ESCAPE_FAILED 12461 __155: 12462 ; 12463 12464 // \k and \g when used with braces are back references, whereas \g used 12465 // with quotes or angle brackets is a recursion 12466 12467 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12468 if escape == ESC_k || terminator == Tuint32_t('\175') { 12469 return DMETA_BACKREF_BYNAME 12470 } 12471 return DMETA_RECURSE_BYNAME 12472 }() 12473 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* namelen */)) 12474 12475 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 12476 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 12477 12478 okquantifier = DTRUE 12479 goto __118 // End special escape processing 12480 __118: 12481 ; 12482 __114: 12483 ; 12484 __112: 12485 ; 12486 goto __84 // End escape sequence processing 12487 12488 // ---- Single-character special items ---- 12489 12490 __87: 12491 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 12492 goto __84 12493 12494 __88: 12495 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 12496 goto __84 12497 12498 __89: 12499 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOT 12500 okquantifier = DTRUE 12501 goto __84 12502 12503 // ---- Single-character quantifiers ---- 12504 12505 __90: 12506 meta_quantifier = DMETA_ASTERISK 12507 goto CHECK_QUANTIFIER 12508 12509 __91: 12510 meta_quantifier = DMETA_PLUS 12511 goto CHECK_QUANTIFIER 12512 12513 __92: 12514 meta_quantifier = DMETA_QUERY 12515 goto CHECK_QUANTIFIER 12516 12517 // ---- Potential {n,m} quantifier ---- 12518 12519 __93: 12520 if !!(read_repeat_counts(tls, bp+4, ptrend, bp+48, bp+52, 12521 bp+12) != 0) { 12522 goto __156 12523 } 12524 12525 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 12526 goto __157 12527 } 12528 goto FAILED 12529 __157: 12530 ; // Error in quantifier. 12531 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 12532 okquantifier = DTRUE 12533 // Not a quantifier 12534 goto __84 // No more quantifier processing 12535 __156: 12536 ; 12537 meta_quantifier = DMETA_MINMAX 12538 // Fall through 12539 12540 // ---- Quantifier post-processing ---- 12541 12542 // Check that a quantifier is allowed after the previous item. 12543 12544 CHECK_QUANTIFIER: 12545 if !!(prev_okquantifier != 0) { 12546 goto __158 12547 } 12548 12549 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR9 12550 goto FAILED_BACK 12551 __158: 12552 ; 12553 12554 // Most (*VERB)s are not allowed to be quantified, but an ungreedy 12555 // quantifier can be useful for (*ACCEPT) - meaning "succeed on backtrack", a 12556 // sort of negated (*COMMIT). We therefore allow (*ACCEPT) to be quantified by 12557 // wrapping it in non-capturing brackets, but we have to allow for a preceding 12558 // (*MARK) for when (*ACCEPT) has an argument. 12559 12560 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_ACCEPT) { 12561 goto __159 12562 } 12563 12564 p1 = parsed_pattern - uintptr(1)*4 12565 __160: 12566 if !(p1 >= verbstartptr) { 12567 goto __162 12568 } 12569 *(*Tuint32_t)(unsafe.Pointer(p1 + 1*4)) = *(*Tuint32_t)(unsafe.Pointer(p1)) 12570 goto __161 12571 __161: 12572 p1 -= 4 12573 goto __160 12574 goto __162 12575 __162: 12576 ; 12577 *(*Tuint32_t)(unsafe.Pointer(verbstartptr)) = DMETA_NOCAPTURE 12578 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + 1*4)) = DMETA_KET 12579 parsed_pattern += 4 * uintptr(2) 12580 __159: 12581 ; 12582 12583 // Now we can put the quantifier into the parsed pattern vector. At this 12584 // stage, we have only the basic quantifier. The check for a following + or ? 12585 // modifier happens at the top of the loop, after any intervening comments 12586 // have been removed. 12587 12588 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta_quantifier 12589 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\173')) { 12590 goto __163 12591 } 12592 12593 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* min_repeat */)) 12594 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 52 /* max_repeat */)) 12595 __163: 12596 ; 12597 goto __84 12598 12599 // ---- Character class ---- 12600 12601 __94: 12602 okquantifier = DTRUE 12603 12604 // In another (POSIX) regex library, the ugly syntax [[:<:]] and [[:>:]] is 12605 // used for "start of word" and "end of word". As these are otherwise illegal 12606 // sequences, we don't break anything by recognizing them. They are replaced 12607 // by \b(?=\w) and \b(?<=\w) respectively. Sequences like [a[:<:]] are 12608 // erroneous and are handled by the normal code below. 12609 12610 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 6 && (X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ts+597, uint32(6)) == 0 || X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ts+604, uint32(6)) == 0)) { 12611 goto __164 12612 } 12613 12614 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 12615 12616 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2))) == '\074') { 12617 goto __165 12618 } 12619 12620 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 12621 goto __166 12622 __165: 12623 12624 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKBEHIND 12625 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 12626 12627 /* The offset is used only for the "non-fixed length" error; this won't 12628 occur here, so just store zero. */ 12629 12630 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tsize_t(Tsize_t(0)) >> 32 12631 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tsize_t(0) & 0xffffffff 12632 12633 __166: 12634 ; 12635 12636 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12637 goto __167 12638 } 12639 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_w 12640 goto __168 12641 __167: 12642 12643 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_p 12644 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12645 __168: 12646 ; 12647 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 12648 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(6) 12649 goto __84 12650 __164: 12651 ; 12652 12653 // PCRE supports POSIX class stuff inside a class. Perl gives an error if 12654 // they are encountered at the top level, so we'll do that too. 12655 12656 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ptrend, bp+16) != 0) { 12657 goto __169 12658 } 12659 12660 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) == '\072' { 12661 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR12 12662 } else { 12663 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR13 12664 } 12665 goto FAILED 12666 __169: 12667 ; 12668 12669 // Process a regular character class. If the first character is '^', set 12670 // the negation flag. If the first few characters (either before or after ^) 12671 // are \Q\E or \E or space or tab in extended-more mode, we skip them too. 12672 // This makes for compatibility with Perl. 12673 12674 negate_class = DFALSE 12675 __170: 12676 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend) { 12677 goto __171 12678 } 12679 12680 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 12681 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 12682 goto __172 12683 } 12684 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 12685 goto __173 12686 } 12687 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 12688 goto __174 12689 __173: 12690 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 12691 goto __175 12692 } 12693 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 12694 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 12695 goto __176 12696 __175: 12697 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 12698 goto __177 12699 } 12700 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 12701 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 12702 goto __178 12703 __177: 12704 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 12705 goto __179 12706 } 12707 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 12708 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 12709 goto __180 12710 __179: 12711 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 12712 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 12713 __180: 12714 ; 12715 __178: 12716 ; 12717 __176: 12718 ; 12719 __174: 12720 ; 12721 __172: 12722 ; 12723 12724 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\134')) { 12725 goto __181 12726 } 12727 12728 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\105') { 12729 goto __183 12730 } 12731 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 12732 goto __184 12733 __183: 12734 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 3 && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ts+611, uint32(3)) == 0) { 12735 goto __185 12736 } 12737 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 12738 goto __186 12739 __185: 12740 goto __171 12741 __186: 12742 ; 12743 __184: 12744 ; 12745 goto __182 12746 __181: 12747 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\011'))) { 12748 goto __187 12749 } // Note: just these two 12750 goto __170 12751 goto __188 12752 __187: 12753 if !(!(negate_class != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\136')) { 12754 goto __189 12755 } 12756 negate_class = DTRUE 12757 goto __190 12758 __189: 12759 goto __171 12760 __190: 12761 ; 12762 __188: 12763 ; 12764 __182: 12765 ; 12766 goto __170 12767 __171: 12768 ; 12769 12770 // Now the real contents of the class; c has the first "real" character. 12771 // Empty classes are permitted only if the option is set. 12772 12773 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\135') && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_ALLOW_EMPTY_CLASS != Tuint32_t(0)) { 12774 goto __191 12775 } 12776 12777 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12778 if negate_class != 0 { 12779 return DMETA_CLASS_EMPTY_NOT 12780 } 12781 return DMETA_CLASS_EMPTY 12782 }() 12783 goto __84 // End of class processing 12784 __191: 12785 ; 12786 12787 // Process a non-empty class. 12788 12789 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12790 if negate_class != 0 { 12791 return DMETA_CLASS_NOT 12792 } 12793 return DMETA_CLASS 12794 }() 12795 class_range_state = RANGE_NO 12796 12797 // In an EBCDIC environment, Perl treats alphabetic ranges specially 12798 // because there are holes in the encoding, and simply using the range A-Z 12799 // (for example) would include the characters in the holes. This applies only 12800 // to ranges where both values are literal; [\xC1-\xE9] is different to [A-Z] 12801 // in this respect. In order to accommodate this, we keep track of whether 12802 // character values are literal or not, and a state variable for handling 12803 // ranges. 12804 12805 // Loop for the contents of the class 12806 12807 __192: 12808 char_is_literal = DTRUE 12809 12810 // Inside \Q...\E everything is literal except \E 12811 12812 if !(inescq != 0) { 12813 goto __195 12814 } 12815 12816 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\105') { 12817 goto __196 12818 } 12819 12820 inescq = DFALSE // Reset literal state 12821 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ // Skip the 'E' 12822 goto CLASS_CONTINUE 12823 __196: 12824 ; 12825 goto CLASS_LITERAL 12826 __195: 12827 ; 12828 12829 // Skip over space and tab (only) in extended-more mode. 12830 12831 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\011'))) { 12832 goto __197 12833 } 12834 goto CLASS_CONTINUE 12835 __197: 12836 ; 12837 12838 // Handle POSIX class names. Perl allows a negation extension of the 12839 // form [:^name:]. A square bracket that doesn't match the syntax is 12840 // treated as a literal. We also recognize the POSIX constructions 12841 // [.ch.] and [=ch=] ("collating elements") and fault them, as Perl 12842 // 5.6 and 5.8 do. 12843 12844 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\133') && (int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 3 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ptrend, bp+16) != 0) { 12845 goto __198 12846 } 12847 12848 posix_negate = DFALSE 12849 12850 // Perl treats a hyphen before a POSIX class as a literal, not the 12851 // start of a range. However, it gives a warning in its warning mode. PCRE 12852 // does not have a warning mode, so we give an error, because this is 12853 // likely an error on the user's part. 12854 12855 if !(class_range_state == Tuint32_t(1)) { 12856 goto __200 12857 } 12858 12859 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR50 12860 goto FAILED 12861 __200: 12862 ; 12863 12864 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\072') { 12865 goto __201 12866 } 12867 12868 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR13 12869 goto FAILED_BACK 12870 __201: 12871 ; 12872 12873 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) == '\136') { 12874 goto __202 12875 } 12876 12877 posix_negate = DTRUE 12878 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 12879 __202: 12880 ; 12881 12882 posix_class = check_posix_name(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), int32((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16)))-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1)) 12883 if !(posix_class < 0) { 12884 goto __203 12885 } 12886 12887 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR30 12888 goto FAILED 12889 __203: 12890 ; 12891 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16)) + uintptr(2) 12892 12893 // Perl treats a hyphen after a POSIX class as a literal, not the 12894 // start of a range. However, it gives a warning in its warning mode 12895 // unless the hyphen is the last character in the class. PCRE does not 12896 // have a warning mode, so we give an error, because this is likely an 12897 // error on the user's part. 12898 12899 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) != '\135') { 12900 goto __204 12901 } 12902 12903 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR50 12904 goto FAILED 12905 __204: 12906 ; 12907 12908 // Set "a hyphen is not the start of a range" for the -] case, and also 12909 // in case the POSIX class is followed by \E or \Q\E (possibly repeated - 12910 // fuzzers do that kind of thing) and *then* a hyphen. This causes that 12911 // hyphen to be treated as a literal. I don't think it's worth setting up 12912 // special apparatus to do otherwise. 12913 12914 class_range_state = RANGE_NO 12915 12916 // When PCRE2_UCP is set, some of the POSIX classes are converted to 12917 // use Unicode properties \p or \P or, in one case, \h or \H. The 12918 // substitutes table has two values per class, containing the type and 12919 // value of a \p or \P item. The special cases are specified with a 12920 // negative type: a non-zero value causes \h or \H to be used, and a zero 12921 // value falls through to behave like a non-UCP POSIX class. 12922 12923 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 12924 goto __205 12925 } 12926 12927 ptype1 = posix_substitutes[2*posix_class] 12928 pvalue = posix_substitutes[2*posix_class+1] 12929 if !(ptype1 >= 0) { 12930 goto __206 12931 } 12932 12933 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12934 if posix_negate != 0 { 12935 return ESC_P 12936 } 12937 return ESC_p 12938 }() 12939 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(ptype1<<16 | pvalue) 12940 goto CLASS_CONTINUE 12941 __206: 12942 ; 12943 12944 if !(pvalue != 0) { 12945 goto __207 12946 } 12947 12948 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12949 if posix_negate != 0 { 12950 return ESC_H 12951 } 12952 return ESC_h 12953 }() 12954 goto CLASS_CONTINUE 12955 __207: 12956 ; 12957 12958 // Fall through 12959 __205: 12960 ; 12961 12962 // Non-UCP POSIX class 12963 12964 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12965 if posix_negate != 0 { 12966 return DMETA_POSIX_NEG 12967 } 12968 return DMETA_POSIX 12969 }() 12970 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(posix_class) 12971 goto __199 12972 __198: 12973 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\055') && class_range_state >= RANGE_OK_ESCAPED) { 12974 goto __208 12975 } 12976 12977 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12978 if class_range_state == RANGE_OK_LITERAL { 12979 return DMETA_RANGE_LITERAL 12980 } 12981 return DMETA_RANGE_ESCAPED 12982 }() 12983 class_range_state = Tuint32_t(1) /* RANGE_STARTED */ 12984 goto __209 12985 __208: 12986 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) != Tuint32_t('\134')) { 12987 goto __210 12988 } 12989 12990 CLASS_LITERAL: 12991 if !(class_range_state == Tuint32_t(1)) { 12992 goto __212 12993 } 12994 12995 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4))) { 12996 goto __214 12997 } // Optimize one-char range 12998 parsed_pattern -= 4 12999 goto __215 13000 __214: 13001 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4)) > *(*Tuint32_t)(unsafe.Pointer(bp + 8))) { 13002 goto __216 13003 } /* Check range is in order */ 13004 13005 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR8 13006 goto FAILED_BACK 13007 goto __217 13008 __216: 13009 13010 if !(!(char_is_literal != 0) && *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_RANGE_LITERAL) { 13011 goto __218 13012 } 13013 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = DMETA_RANGE_ESCAPED 13014 __218: 13015 ; 13016 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 13017 okquantifier = DTRUE 13018 13019 __217: 13020 ; 13021 __215: 13022 ; 13023 class_range_state = RANGE_NO 13024 goto __213 13025 __212: /* Potential start of range */ 13026 13027 if char_is_literal != 0 { 13028 class_range_state = RANGE_OK_LITERAL 13029 } else { 13030 class_range_state = RANGE_OK_ESCAPED 13031 } 13032 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) 13033 okquantifier = DTRUE 13034 13035 __213: 13036 ; 13037 goto __211 13038 __210: 13039 13040 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 13041 escape = X_pcre2_check_escape_8(tls, bp+4, ptrend, bp+8, bp+12, options, 13042 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DTRUE, cb) 13043 13044 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 13045 goto __219 13046 } 13047 13048 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 13049 goto __220 13050 } 13051 goto FAILED 13052 __220: 13053 ; 13054 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 16 /* tempptr */)) 13055 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 13056 goto __221 13057 } 13058 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t('\134') 13059 goto __222 13060 __221: 13061 13062 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 13063 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 13064 goto __223 13065 } 13066 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 13067 goto __224 13068 } 13069 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 13070 goto __225 13071 __224: 13072 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 13073 goto __226 13074 } 13075 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 13076 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 13077 goto __227 13078 __226: 13079 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 13080 goto __228 13081 } 13082 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 13083 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 13084 goto __229 13085 __228: 13086 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 13087 goto __230 13088 } 13089 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 13090 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 13091 goto __231 13092 __230: 13093 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 13094 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 13095 __231: 13096 ; 13097 __229: 13098 ; 13099 __227: 13100 ; 13101 __225: 13102 ; 13103 __223: 13104 ; 13105 13106 // Get character value, increment pointer 13107 __222: 13108 ; 13109 escape = 0 // Treat as literal character 13110 __219: 13111 ; 13112 13113 switch escape { 13114 case 0: 13115 goto __233 13116 13117 case ESC_b: 13118 goto __234 13119 13120 case ESC_Q: 13121 goto __235 13122 13123 case ESC_E: 13124 goto __236 13125 13126 case ESC_B: 13127 goto __237 // Always an error in a class 13128 case ESC_R: 13129 goto __238 13130 case ESC_X: 13131 goto __239 13132 } 13133 goto __232 13134 13135 __233: // Escaped character code point is in c 13136 char_is_literal = DFALSE 13137 goto CLASS_LITERAL 13138 13139 __234: 13140 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t('\010') // \b is backspace in a class 13141 char_is_literal = DFALSE 13142 goto CLASS_LITERAL 13143 13144 __235: 13145 inescq = DTRUE // Enter literal mode 13146 goto CLASS_CONTINUE 13147 13148 __236: // Ignore orphan \E 13149 goto CLASS_CONTINUE 13150 13151 __237: // Always an error in a class 13152 __238: 13153 __239: 13154 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR7 13155 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- 13156 goto FAILED 13157 __232: 13158 ; 13159 13160 // The second part of a range can be a single-character escape 13161 // sequence (detected above), but not any of the other escapes. Perl 13162 // treats a hyphen as a literal in such circumstances. However, in Perl's 13163 // warning mode, a warning is given, so PCRE now faults it, as it is 13164 // almost certainly a mistake on the user's part. 13165 13166 if !(class_range_state == Tuint32_t(1)) { 13167 goto __240 13168 } 13169 13170 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR50 13171 goto FAILED // Not CLASS_ESCAPE_FAILED; always an error 13172 __240: 13173 ; 13174 13175 // Of the remaining escapes, only those that define characters are 13176 // allowed in a class. None may start a range. 13177 13178 class_range_state = RANGE_NO 13179 switch escape { 13180 case ESC_N: 13181 goto __242 13182 13183 case ESC_H: 13184 goto __243 13185 case ESC_h: 13186 goto __244 13187 case ESC_V: 13188 goto __245 13189 case ESC_v: 13190 goto __246 13191 13192 // These escapes are converted to Unicode property tests when 13193 // PCRE2_UCP is set. 13194 13195 case ESC_d: 13196 goto __247 13197 case ESC_D: 13198 goto __248 13199 case ESC_s: 13200 goto __249 13201 case ESC_S: 13202 goto __250 13203 case ESC_w: 13204 goto __251 13205 case ESC_W: 13206 goto __252 13207 13208 // Explicit Unicode property matching 13209 13210 case ESC_P: 13211 goto __253 13212 case ESC_p: 13213 goto __254 // End \P and \p 13214 13215 default: 13216 goto __255 13217 } 13218 goto __241 13219 13220 __242: 13221 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR71 13222 goto FAILED 13223 13224 __243: 13225 __244: 13226 __245: 13227 __246: 13228 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13229 goto __241 13230 13231 // These escapes are converted to Unicode property tests when 13232 // PCRE2_UCP is set. 13233 13234 __247: 13235 __248: 13236 __249: 13237 __250: 13238 __251: 13239 __252: 13240 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 13241 goto __256 13242 } 13243 13244 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13245 goto __257 13246 __256: 13247 13248 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 13249 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 13250 return ESC_p 13251 } 13252 return ESC_P 13253 }() 13254 switch escape { 13255 case ESC_d: 13256 goto __259 13257 case ESC_D: 13258 goto __260 13259 13260 case ESC_s: 13261 goto __261 13262 case ESC_S: 13263 goto __262 13264 13265 case ESC_w: 13266 goto __263 13267 case ESC_W: 13268 goto __264 13269 } 13270 goto __258 13271 13272 __259: 13273 __260: 13274 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 13275 goto __258 13276 13277 __261: 13278 __262: 13279 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 13280 goto __258 13281 13282 __263: 13283 __264: 13284 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 13285 goto __258 13286 __258: 13287 ; 13288 __257: 13289 ; 13290 goto __241 13291 13292 // Explicit Unicode property matching 13293 13294 __253: 13295 __254: 13296 13297 *(*Tuint16_t)(unsafe.Pointer(bp + 60 /* ptype2 */)) = Tuint16_t(0) 13298 *(*Tuint16_t)(unsafe.Pointer(bp + 62 /* pdata1 */)) = Tuint16_t(0) 13299 if !!(get_ucp(tls, bp+4, bp+56, bp+60, bp+62, bp+12, cb) != 0) { 13300 goto __265 13301 } 13302 goto FAILED 13303 __265: 13304 ; 13305 if !(*(*TBOOL)(unsafe.Pointer(bp + 56)) != 0) { 13306 goto __266 13307 } 13308 if escape == ESC_P { 13309 escape = ESC_p 13310 } else { 13311 escape = ESC_P 13312 } 13313 __266: 13314 ; 13315 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13316 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 60)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 62)))) 13317 13318 goto __241 // End \P and \p 13319 13320 __255: // All others are not allowed in a class 13321 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR7 13322 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- 13323 goto FAILED 13324 __241: 13325 ; 13326 13327 // Perl gives a warning unless a following hyphen is the last character 13328 // in the class. PCRE throws an error. 13329 13330 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) != '\135') { 13331 goto __267 13332 } 13333 13334 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR50 13335 goto FAILED 13336 __267: 13337 ; 13338 __211: 13339 ; 13340 __209: 13341 ; 13342 __199: 13343 ; 13344 13345 // Proceed to next thing in the class. 13346 13347 CLASS_CONTINUE: 13348 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 13349 goto __268 13350 } 13351 13352 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR6 // Missing terminating ']' 13353 goto FAILED 13354 __268: 13355 ; 13356 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) 13357 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= 0xc0) { 13358 goto __269 13359 } 13360 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x20 == Tuint32_t(0)) { 13361 goto __270 13362 } 13363 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1))))&0x3f 13364 goto __271 13365 __270: 13366 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x10 == Tuint32_t(0)) { 13367 goto __272 13368 } 13369 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f 13370 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 13371 goto __273 13372 __272: 13373 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x08 == Tuint32_t(0)) { 13374 goto __274 13375 } 13376 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f 13377 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(3) 13378 goto __275 13379 __274: 13380 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x04 == Tuint32_t(0)) { 13381 goto __276 13382 } 13383 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f 13384 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(4) 13385 goto __277 13386 __276: 13387 *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 4)))&0x3f 13388 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(5) 13389 __277: 13390 ; 13391 __275: 13392 ; 13393 __273: 13394 ; 13395 __271: 13396 ; 13397 __269: 13398 ; 13399 13400 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) == Tuint32_t('\135') && !(inescq != 0)) { 13401 goto __278 13402 } 13403 goto __194 13404 __278: 13405 ; 13406 goto __193 13407 __193: 13408 goto __192 13409 goto __194 13410 __194: 13411 ; // End of class-processing loop 13412 13413 // -] at the end of a class is a literal '-' 13414 13415 if !(class_range_state == Tuint32_t(1)) { 13416 goto __279 13417 } 13418 13419 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = Tuint32_t('\055') 13420 class_range_state = RANGE_NO 13421 __279: 13422 ; 13423 13424 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CLASS_END 13425 goto __84 // End of character class 13426 13427 // ---- Opening parenthesis ---- 13428 13429 __95: 13430 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 13431 goto __280 13432 } 13433 goto UNCLOSED_PARENTHESIS 13434 __280: 13435 ; 13436 13437 // If ( is not followed by ? it is either a capture or a special verb or an 13438 // alpha assertion or a positive non-atomic lookahead. 13439 13440 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\077') { 13441 goto __281 13442 } 13443 13444 // Handle capturing brackets (or non-capturing if auto-capture is turned 13445 // off). 13446 13447 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\052') { 13448 goto __282 13449 } 13450 13451 nest_depth++ 13452 if !(options&DPCRE2_NO_AUTO_CAPTURE == Tuint32_t(0)) { 13453 goto __284 13454 } 13455 13456 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 13457 goto __286 13458 } 13459 13460 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR97 13461 goto FAILED 13462 __286: 13463 ; 13464 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 13465 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 13466 goto __285 13467 __284: 13468 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13469 __285: 13470 ; 13471 goto __283 13472 __282: 13473 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 <= 1 || libc.AssignPtrUint32(bp+8, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1)))) == Tuint32_t('\051')) { 13474 goto __287 13475 } 13476 goto __84 13477 goto __288 13478 __287: 13479 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 8))))))&Dctype_lcletter != 0) { 13480 goto __289 13481 } 13482 13483 vn = uintptr(unsafe.Pointer(&alasnames)) 13484 if !!(read_name(tls, bp+4, ptrend, utf, uint32(0), bp+36, bp+40, bp+44, 13485 bp+12, cb) != 0) { 13486 goto __291 13487 } 13488 goto FAILED 13489 __291: 13490 ; 13491 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\072') { 13492 goto __292 13493 } 13494 13495 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR95 // Malformed 13496 goto FAILED 13497 __292: 13498 ; 13499 13500 // Scan the table of alpha assertion names 13501 13502 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 0 13503 __293: 13504 if !(*(*int32)(unsafe.Pointer(bp + 32)) < alascount) { 13505 goto __295 13506 } 13507 13508 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 44)) == alasmeta[*(*int32)(unsafe.Pointer(bp + 32))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)), vn, uint32(*(*Tuint32_t)(unsafe.Pointer(bp + 44)))) == 0) { 13509 goto __296 13510 } 13511 goto __295 13512 __296: 13513 ; 13514 vn += uintptr(alasmeta[*(*int32)(unsafe.Pointer(bp + 32))].Flen + uint32(1)) 13515 goto __294 13516 __294: 13517 *(*int32)(unsafe.Pointer(bp + 32 /* i */))++ 13518 goto __293 13519 goto __295 13520 __295: 13521 ; 13522 13523 if !(*(*int32)(unsafe.Pointer(bp + 32)) >= alascount) { 13524 goto __297 13525 } 13526 13527 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR95 // Alpha assertion not recognized 13528 goto FAILED 13529 __297: 13530 ; 13531 13532 // Check for expecting an assertion condition. If so, only atomic 13533 // lookaround assertions are valid. 13534 13535 meta = alasmeta[*(*int32)(unsafe.Pointer(bp + 32 /* i */))].Fmeta 13536 if !(prev_expect_cond_assert > 0 && (meta < DMETA_LOOKAHEAD || meta > DMETA_LOOKBEHINDNOT)) { 13537 goto __298 13538 } 13539 13540 if meta == DMETA_LOOKAHEAD_NA || meta == DMETA_LOOKBEHIND_NA { 13541 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR98 13542 } else { 13543 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR28 13544 } // (Atomic) assertion expected 13545 goto FAILED 13546 __298: 13547 ; 13548 13549 // The lookaround alphabetic synonyms can mostly be handled by jumping 13550 // to the code that handles the traditional symbolic forms. 13551 13552 switch meta { 13553 default: 13554 goto __300 // the meta values come from a table above. 13555 13556 case DMETA_ATOMIC: 13557 goto __301 13558 13559 case DMETA_LOOKAHEAD: 13560 goto __302 13561 13562 case DMETA_LOOKAHEAD_NA: 13563 goto __303 13564 13565 case DMETA_LOOKAHEADNOT: 13566 goto __304 13567 13568 case DMETA_LOOKBEHIND: 13569 goto __305 13570 case DMETA_LOOKBEHINDNOT: 13571 goto __306 13572 case DMETA_LOOKBEHIND_NA: 13573 goto __307 13574 13575 // The script run facilities are handled here. Unicode support is 13576 // required (give an error if not, as this is a security issue). Always 13577 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13578 // META_ATOMIC and remember that we need two META_KETs at the end. 13579 13580 case DMETA_SCRIPT_RUN: 13581 goto __308 13582 case DMETA_ATOMIC_SCRIPT_RUN: 13583 goto __309 13584 } 13585 goto __299 13586 13587 __300: 13588 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR89 // Unknown code; should never occur because 13589 goto FAILED // the meta values come from a table above. 13590 13591 __301: 13592 goto ATOMIC_GROUP 13593 13594 __302: 13595 goto POSITIVE_LOOK_AHEAD 13596 13597 __303: 13598 goto POSITIVE_NONATOMIC_LOOK_AHEAD 13599 13600 __304: 13601 goto NEGATIVE_LOOK_AHEAD 13602 13603 __305: 13604 __306: 13605 __307: 13606 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta 13607 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- 13608 goto POST_LOOKBEHIND 13609 13610 // The script run facilities are handled here. Unicode support is 13611 // required (give an error if not, as this is a security issue). Always 13612 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13613 // META_ATOMIC and remember that we need two META_KETs at the end. 13614 13615 __308: 13616 __309: 13617 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_SCRIPT_RUN 13618 nest_depth++ 13619 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 13620 if !(meta == DMETA_ATOMIC_SCRIPT_RUN) { 13621 goto __310 13622 } 13623 13624 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 13625 if !(top_nest == uintptr(0)) { 13626 goto __311 13627 } 13628 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13629 goto __312 13630 __311: 13631 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13632 goto __313 13633 } 13634 13635 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR84 13636 goto FAILED 13637 __313: 13638 ; 13639 __312: 13640 ; 13641 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13642 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_ATOMICSR) 13643 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 13644 __310: 13645 ; 13646 goto __299 13647 __299: 13648 ; 13649 goto __290 13650 __289: 13651 13652 vn = uintptr(unsafe.Pointer(&verbnames)) 13653 if !!(read_name(tls, bp+4, ptrend, utf, uint32(0), bp+36, bp+40, bp+44, 13654 bp+12, cb) != 0) { 13655 goto __314 13656 } 13657 goto FAILED 13658 __314: 13659 ; 13660 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\072' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 13661 goto __315 13662 } 13663 13664 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR60 // Malformed 13665 goto FAILED 13666 __315: 13667 ; 13668 13669 // Scan the table of verb names 13670 13671 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 0 13672 __316: 13673 if !(*(*int32)(unsafe.Pointer(bp + 32)) < verbcount) { 13674 goto __318 13675 } 13676 13677 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 44)) == verbs[*(*int32)(unsafe.Pointer(bp + 32))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)), vn, uint32(*(*Tuint32_t)(unsafe.Pointer(bp + 44)))) == 0) { 13678 goto __319 13679 } 13680 goto __318 13681 __319: 13682 ; 13683 vn += uintptr(verbs[*(*int32)(unsafe.Pointer(bp + 32))].Flen + uint32(1)) 13684 goto __317 13685 __317: 13686 *(*int32)(unsafe.Pointer(bp + 32 /* i */))++ 13687 goto __316 13688 goto __318 13689 __318: 13690 ; 13691 13692 if !(*(*int32)(unsafe.Pointer(bp + 32)) >= verbcount) { 13693 goto __320 13694 } 13695 13696 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR60 // Verb not recognized 13697 goto FAILED 13698 __320: 13699 ; 13700 13701 // An empty argument is treated as no argument. 13702 13703 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\072' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))+uintptr(1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) == '\051') { 13704 goto __321 13705 } 13706 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 13707 __321: 13708 ; // Advance to the closing parens 13709 13710 // Check for mandatory non-empty argument; this is (*MARK) 13711 13712 if !(verbs[*(*int32)(unsafe.Pointer(bp + 32))].Fhas_arg > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\072') { 13713 goto __322 13714 } 13715 13716 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR66 13717 goto FAILED 13718 __322: 13719 ; 13720 13721 // Remember where this verb, possibly with a preceding (*MARK), starts, 13722 // for handling quantified (*ACCEPT). 13723 13724 verbstartptr = parsed_pattern 13725 okquantifier = libc.Bool32(verbs[*(*int32)(unsafe.Pointer(bp + 32))].Fmeta == DMETA_ACCEPT) 13726 13727 // It appears that Perl allows any characters whatsoever, other than a 13728 // closing parenthesis, to appear in arguments ("names"), so we no longer 13729 // insist on letters, digits, and underscores. Perl does not, however, do 13730 // any interpretation within arguments, and has no means of including a 13731 // closing parenthesis. PCRE supports escape processing but only when it 13732 // is requested by an option. We set inverbname TRUE here, and let the 13733 // main loop take care of this so that escape and \x processing is done by 13734 // the main code above. 13735 13736 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) == '\072') { 13737 goto __323 13738 } /* Skip past : or ) */ 13739 13740 // Some optional arguments can be treated as a preceding (*MARK) 13741 13742 if !(verbs[*(*int32)(unsafe.Pointer(bp + 32))].Fhas_arg < 0) { 13743 goto __325 13744 } 13745 13746 add_after_mark = verbs[*(*int32)(unsafe.Pointer(bp + 32 /* i */))].Fmeta 13747 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_MARK 13748 goto __326 13749 __325: 13750 13751 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 32))].Fmeta + func() uint32 { 13752 if verbs[*(*int32)(unsafe.Pointer(bp + 32))].Fmeta != DMETA_MARK { 13753 return 0x00010000 13754 } 13755 return uint32(0) 13756 }() 13757 __326: 13758 ; 13759 13760 // Set up for reading the name in the main loop. 13761 13762 verblengthptr = libc.PostIncUintptr(&parsed_pattern, 4) 13763 verbnamestart = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 13764 inverbname = DTRUE 13765 goto __324 13766 __323: /* No verb "name" argument */ 13767 13768 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 32 /* i */))].Fmeta 13769 __324: 13770 ; 13771 __290: 13772 ; 13773 __288: 13774 ; 13775 __283: 13776 ; // End of (*VERB) handling 13777 goto __84 // Done with this parenthesis 13778 __281: 13779 ; // End of groups that don't start with (? 13780 13781 // ---- Items starting (? ---- 13782 13783 // The type of item is determined by what follows (?. Handle (?| and option 13784 // changes under "default" because both need a new block on the nest stack. 13785 // Comments starting with (?# are handled above. Note that there is some 13786 // ambiguity about the sequence (?- because if a digit follows it's a relative 13787 // recursion or subroutine call whereas otherwise it's an option unsetting. 13788 13789 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend) { 13790 goto __327 13791 } 13792 goto UNCLOSED_PARENTHESIS 13793 __327: 13794 ; 13795 13796 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))))) { 13797 default: 13798 goto __329 // End default case after (? 13799 13800 // ---- Python syntax support ---- 13801 13802 case '\120': 13803 goto __330 // End of (?P processing 13804 13805 // ---- Recursion/subroutine calls by number ---- 13806 13807 case '\122': 13808 goto __331 13809 13810 // An item starting (?- followed by a digit comes here via the "default" 13811 // case because (?- followed by a non-digit is an options setting. 13812 13813 case '\053': 13814 goto __332 13815 // Fall through 13816 13817 case '\060': 13818 goto __333 13819 case '\061': 13820 goto __334 13821 case '\062': 13822 goto __335 13823 case '\063': 13824 goto __336 13825 case '\064': 13826 goto __337 13827 case '\065': 13828 goto __338 13829 case '\066': 13830 goto __339 13831 case '\067': 13832 goto __340 13833 case '\070': 13834 goto __341 13835 case '\071': 13836 goto __342 // End of recursive call by number handling 13837 13838 // ---- Recursion/subroutine calls by name ---- 13839 13840 case '\046': 13841 goto __343 13842 13843 // ---- Callout with numerical or string argument ---- 13844 13845 case '\103': 13846 goto __344 // End callout 13847 13848 // ---- Conditional group ---- 13849 13850 // A condition can be an assertion, a number (referring to a numbered 13851 // group's having been set), a name (referring to a named group), or 'R', 13852 // referring to overall recursion. R<digits> and R&name are also permitted 13853 // for recursion state tests. Numbers may be preceded by + or - to specify a 13854 // relative group number. 13855 // 13856 // There are several syntaxes for testing a named group: (?(name)) is used 13857 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 13858 // 13859 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 13860 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 13861 // the Perl DEFINE feature or the Python named test. We look for a name 13862 // first; if not found, we try the other case. 13863 // 13864 // For compatibility with auto-callouts, we allow a callout to be specified 13865 // before a condition that is an assertion. 13866 13867 case '\050': 13868 goto __345 // End of condition processing 13869 13870 // ---- Atomic group ---- 13871 13872 case '\076': 13873 goto __346 13874 13875 // ---- Lookahead assertions ---- 13876 13877 case '\075': 13878 goto __347 13879 13880 case '\052': 13881 goto __348 13882 13883 case '\041': 13884 goto __349 13885 13886 // ---- Lookbehind assertions ---- 13887 13888 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 13889 // is the start of the name of a capturing group. 13890 13891 case '\074': 13892 goto __350 13893 13894 // ---- Define a named group ---- 13895 13896 // A named group may be defined as (?'name') or (?<name>). In the latter 13897 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 13898 // terminator set to '>'. 13899 13900 case '\047': 13901 goto __351 13902 } 13903 goto __328 13904 13905 __329: 13906 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\055' && (int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 > 1 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) <= '\071')) { 13907 goto __352 13908 } 13909 goto RECURSION_BYNUMBER 13910 __352: 13911 ; // The + case is handled by CHAR_PLUS 13912 13913 // We now have either (?| or a (possibly empty) option setting, 13914 // optionally followed by a non-capturing group. 13915 13916 nest_depth++ 13917 if !(top_nest == uintptr(0)) { 13918 goto __353 13919 } 13920 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13921 goto __354 13922 __353: 13923 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13924 goto __355 13925 } 13926 13927 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR84 13928 goto FAILED 13929 __355: 13930 ; 13931 __354: 13932 ; 13933 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13934 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = Tuint16_t(0) 13935 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 13936 13937 // Start of non-capturing group that resets the capture count for each 13938 // branch. 13939 13940 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\174') { 13941 goto __356 13942 } 13943 13944 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13945 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13946 *(*Tuint16_t)(unsafe.Pointer(top_nest + 6)) |= uint16(DNSF_RESET) 13947 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_DUPCAPUSED) 13948 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13949 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 13950 goto __357 13951 __356: 13952 13953 hyphenok = DTRUE 13954 oldoptions = options 13955 13956 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t(0) 13957 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t(0) 13958 *(*Tuint32_t)(unsafe.Pointer(bp + 64 /* set */)) = libc.AssignPtrUint32(bp+68 /* unset */, Tuint32_t(0)) 13959 optset = bp + 64 /* &set */ 13960 13961 // ^ at the start unsets imnsx and disables the subsequent use of - 13962 13963 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\136') { 13964 goto __358 13965 } 13966 13967 options = options & libc.CplUint32(DPCRE2_CASELESS|DPCRE2_MULTILINE|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_DOTALL|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) 13968 hyphenok = DFALSE 13969 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 13970 __358: 13971 ; 13972 13973 __359: 13974 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\072') { 13975 goto __360 13976 } 13977 13978 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), 1)))) { 13979 case '\055': 13980 goto __362 13981 13982 case '\112': 13983 goto __363 13984 13985 case '\151': 13986 goto __364 13987 case '\155': 13988 goto __365 13989 case '\156': 13990 goto __366 13991 case '\163': 13992 goto __367 13993 case '\125': 13994 goto __368 13995 13996 // If x appears twice it sets the extended extended option. 13997 13998 case '\170': 13999 goto __369 14000 14001 default: 14002 goto __370 14003 } 14004 goto __361 14005 14006 __362: 14007 if !!(hyphenok != 0) { 14008 goto __371 14009 } 14010 14011 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR94 14012 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Correct the offset 14013 goto FAILED 14014 __371: 14015 ; 14016 optset = bp + 68 /* &unset */ 14017 hyphenok = DFALSE 14018 goto __361 14019 14020 __363: // Record that it changed in the external options 14021 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DUPNAMES 14022 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_JCHANGED) 14023 goto __361 14024 14025 __364: 14026 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_CASELESS 14027 goto __361 14028 __365: 14029 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_MULTILINE 14030 goto __361 14031 __366: 14032 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_NO_AUTO_CAPTURE 14033 goto __361 14034 __367: 14035 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DOTALL 14036 goto __361 14037 __368: 14038 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_UNGREEDY 14039 goto __361 14040 14041 // If x appears twice it sets the extended extended option. 14042 14043 __369: 14044 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED 14045 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\170') { 14046 goto __372 14047 } 14048 14049 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED_MORE 14050 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14051 __372: 14052 ; 14053 goto __361 14054 14055 __370: 14056 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR11 14057 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Correct the offset 14058 goto FAILED 14059 __361: 14060 ; 14061 goto __359 14062 __360: 14063 ; 14064 14065 // If we are setting extended without extended-more, ensure that any 14066 // existing extended-more gets unset. Also, unsetting extended must also 14067 // unset extended-more. 14068 14069 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 64))&(DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) == DPCRE2_EXTENDED || *(*Tuint32_t)(unsafe.Pointer(bp + 68))&DPCRE2_EXTENDED != Tuint32_t(0)) { 14070 goto __373 14071 } 14072 *(*Tuint32_t)(unsafe.Pointer(bp + 68 /* unset */)) |= DPCRE2_EXTENDED_MORE 14073 __373: 14074 ; 14075 14076 options = (options | *(*Tuint32_t)(unsafe.Pointer(bp + 64))) & ^*(*Tuint32_t)(unsafe.Pointer(bp + 68)) 14077 14078 // If the options ended with ')' this is not the start of a nested 14079 // group with option changes, so the options change at this level. 14080 // In this case, if the previous level set up a nest block, discard the 14081 // one we have just created. Otherwise adjust it for the previous level. 14082 // If the options ended with ':' we are starting a non-capturing group, 14083 // possibly with an options setting. 14084 14085 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 14086 goto __374 14087 } 14088 goto UNCLOSED_PARENTHESIS 14089 __374: 14090 ; 14091 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) == '\051') { 14092 goto __375 14093 } 14094 14095 nest_depth-- // This is not a nested group after all. 14096 if !(top_nest > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace && int32((*Tnest_save)(unsafe.Pointer(top_nest-uintptr(1)*12)).Fnest_depth) == int32(nest_depth)) { 14097 goto __377 14098 } 14099 top_nest -= 12 14100 goto __378 14101 __377: 14102 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14103 __378: 14104 ; 14105 goto __376 14106 __375: 14107 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 14108 __376: 14109 ; 14110 14111 // If nothing changed, no need to record. 14112 14113 if !(options != oldoptions) { 14114 goto __379 14115 } 14116 14117 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_OPTIONS 14118 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = options 14119 __379: 14120 ; 14121 __357: 14122 ; // End options processing 14123 goto __328 // End default case after (? 14124 14125 // ---- Python syntax support ---- 14126 14127 __330: 14128 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend) { 14129 goto __380 14130 } 14131 goto UNCLOSED_PARENTHESIS 14132 __380: 14133 ; 14134 14135 // (?P<name> is the same as (?<name>, which defines a named group. 14136 14137 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\074') { 14138 goto __381 14139 } 14140 14141 terminator = Tuint32_t('\076') 14142 goto DEFINE_NAME 14143 __381: 14144 ; 14145 14146 // (?P>name) is the same as (?&name), which is a recursion or subroutine 14147 // call. 14148 14149 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\076') { 14150 goto __382 14151 } 14152 goto RECURSE_BY_NAME 14153 __382: 14154 ; 14155 14156 // (?P=name) is the same as \k<name>, a back reference by name. Anything 14157 // else after (?P is an error. 14158 14159 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\075') { 14160 goto __383 14161 } 14162 14163 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR41 14164 goto FAILED 14165 __383: 14166 ; 14167 if !!(read_name(tls, bp+4, ptrend, utf, uint32('\051'), bp+36, bp+40, 14168 bp+44, bp+12, cb) != 0) { 14169 goto __384 14170 } 14171 goto FAILED 14172 __384: 14173 ; 14174 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF_BYNAME 14175 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* namelen */)) 14176 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14177 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14178 14179 okquantifier = DTRUE 14180 goto __328 // End of (?P processing 14181 14182 // ---- Recursion/subroutine calls by number ---- 14183 14184 __331: 14185 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 0 // (?R) == (?R0) 14186 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14187 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 14188 goto __385 14189 } 14190 14191 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR58 14192 goto FAILED 14193 __385: 14194 ; 14195 goto SET_RECURSION 14196 14197 // An item starting (?- followed by a digit comes here via the "default" 14198 // case because (?- followed by a non-digit is an options setting. 14199 14200 __332: 14201 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 < 2 || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) <= '\071')) { 14202 goto __386 14203 } 14204 14205 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR29 // Missing number 14206 goto FAILED 14207 __386: 14208 ; 14209 // Fall through 14210 14211 __333: 14212 __334: 14213 __335: 14214 __336: 14215 __337: 14216 __338: 14217 __339: 14218 __340: 14219 __341: 14220 __342: 14221 RECURSION_BYNUMBER: 14222 if !!(read_number(tls, bp+4, ptrend, 14223 func() int32 { 14224 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071' { 14225 return -1 14226 } 14227 return int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 14228 }(), 14229 DMAX_GROUP_NUMBER, ERR61, 14230 bp+32, bp+12) != 0) { 14231 goto __387 14232 } 14233 goto FAILED 14234 __387: 14235 ; 14236 if !(*(*int32)(unsafe.Pointer(bp + 32)) < 0) { 14237 goto __388 14238 } /* NB (?0) is permitted */ 14239 14240 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR15 // Unknown group 14241 goto FAILED_BACK 14242 __388: 14243 ; 14244 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 14245 goto __389 14246 } 14247 goto UNCLOSED_PARENTHESIS 14248 __389: 14249 ; 14250 14251 SET_RECURSION: 14252 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE | Tuint32_t(*(*int32)(unsafe.Pointer(bp + 32))) 14253 *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14254 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14255 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14256 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14257 14258 okquantifier = DTRUE 14259 goto __328 // End of recursive call by number handling 14260 14261 // ---- Recursion/subroutine calls by name ---- 14262 14263 __343: 14264 RECURSE_BY_NAME: 14265 if !!(read_name(tls, bp+4, ptrend, utf, uint32('\051'), bp+36, bp+40, 14266 bp+44, bp+12, cb) != 0) { 14267 goto __390 14268 } 14269 goto FAILED 14270 __390: 14271 ; 14272 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE_BYNAME 14273 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* namelen */)) 14274 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14275 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14276 14277 okquantifier = DTRUE 14278 goto __328 14279 14280 // ---- Callout with numerical or string argument ---- 14281 14282 __344: 14283 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend) { 14284 goto __391 14285 } 14286 goto UNCLOSED_PARENTHESIS 14287 __391: 14288 ; 14289 14290 // If the previous item was a condition starting (?(? an assertion, 14291 // optionally preceded by a callout, is expected. This is checked later on, 14292 // during actual compilation. However we need to identify this kind of 14293 // assertion in this pass because it must not be qualified. The value of 14294 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14295 // for a callout - still leaving a positive value that identifies the 14296 // assertion. Multiple callouts or any other items will make it zero or 14297 // less, which doesn't matter because they will cause an error later. 14298 14299 expect_cond_assert = prev_expect_cond_assert - 1 14300 14301 // If previous_callout is not NULL, it means this follows a previous 14302 // callout. If it was a manual callout, do nothing; this means its "length 14303 // of next pattern item" field will remain zero. If it was an automatic 14304 // callout, abolish it. 14305 14306 if !(*(*uintptr)(unsafe.Pointer(bp)) != uintptr(0) && options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0) && *(*uintptr)(unsafe.Pointer(bp)) == parsed_pattern-uintptr(4)*4 && *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == Tuint32_t(255)) { 14307 goto __392 14308 } 14309 parsed_pattern = *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) 14310 __392: 14311 ; 14312 14313 // Save for updating next pattern item length, and skip one item before 14314 // completing. 14315 14316 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = parsed_pattern 14317 after_manual_callout = 1 14318 14319 // Handle a string argument; specific delimiter is required. 14320 14321 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051' && !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071')) { 14322 goto __393 14323 } 14324 14325 startptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) 14326 14327 delimiter = Tuint32_t(0) 14328 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 0 14329 __395: 14330 if !(X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 32))] != Tuint32_t(0)) { 14331 goto __397 14332 } 14333 14334 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 32))]) { 14335 goto __398 14336 } 14337 14338 delimiter = X_pcre2_callout_end_delims_8[*(*int32)(unsafe.Pointer(bp + 32 /* i */))] 14339 goto __397 14340 __398: 14341 ; 14342 goto __396 14343 __396: 14344 *(*int32)(unsafe.Pointer(bp + 32 /* i */))++ 14345 goto __395 14346 goto __397 14347 __397: 14348 ; 14349 if !(delimiter == Tuint32_t(0)) { 14350 goto __399 14351 } 14352 14353 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR82 14354 goto FAILED 14355 __399: 14356 ; 14357 14358 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_STRING 14359 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14360 14361 __400: 14362 14363 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend) { 14364 goto __403 14365 } 14366 14367 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR81 14368 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) = startptr // To give a more useful message 14369 goto FAILED 14370 __403: 14371 ; 14372 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == delimiter && (libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != delimiter)) { 14373 goto __404 14374 } 14375 goto __402 14376 __404: 14377 ; 14378 goto __401 14379 __401: 14380 goto __400 14381 goto __402 14382 __402: 14383 ; 14384 14385 calloutlength = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))) - int32(startptr)) / 1) 14386 if !(calloutlength > 4294967295) { 14387 goto __405 14388 } 14389 14390 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR72 14391 goto FAILED 14392 __405: 14393 ; 14394 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(calloutlength) 14395 *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) = Tsize_t((int32(startptr) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14396 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14397 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14398 14399 goto __394 14400 __393: 14401 14402 n = 0 14403 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_NUMBER // Numerical callout 14404 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14405 __406: 14406 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071')) { 14407 goto __407 14408 } 14409 14410 n = n*10 + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) - '\060' 14411 if !(n > 255) { 14412 goto __408 14413 } 14414 14415 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR38 14416 goto FAILED 14417 __408: 14418 ; 14419 goto __406 14420 __407: 14421 ; 14422 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(n) 14423 __394: 14424 ; 14425 14426 // Both formats must have a closing parenthesis 14427 14428 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 14429 goto __409 14430 } 14431 14432 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR39 14433 goto FAILED 14434 __409: 14435 ; 14436 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14437 14438 // Remember the offset to the next item in the pattern, and set a default 14439 // length. This should get updated after the next item is read. 14440 14441 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 1*4)) = Tuint32_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14442 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 2*4)) = Tuint32_t(0) 14443 goto __328 // End callout 14444 14445 // ---- Conditional group ---- 14446 14447 // A condition can be an assertion, a number (referring to a numbered 14448 // group's having been set), a name (referring to a named group), or 'R', 14449 // referring to overall recursion. R<digits> and R&name are also permitted 14450 // for recursion state tests. Numbers may be preceded by + or - to specify a 14451 // relative group number. 14452 // 14453 // There are several syntaxes for testing a named group: (?(name)) is used 14454 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 14455 // 14456 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 14457 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 14458 // the Perl DEFINE feature or the Python named test. We look for a name 14459 // first; if not found, we try the other case. 14460 // 14461 // For compatibility with auto-callouts, we allow a callout to be specified 14462 // before a condition that is an assertion. 14463 14464 __345: 14465 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend) { 14466 goto __410 14467 } 14468 goto UNCLOSED_PARENTHESIS 14469 __410: 14470 ; 14471 nest_depth++ 14472 14473 // If the next character is ? or * there must be an assertion next 14474 // (optionally preceded by a callout). We do not check this here, but 14475 // instead we set expect_cond_assert to 2. If this is still greater than 14476 // zero (callouts decrement it) when the next assertion is read, it will be 14477 // marked as a condition that must not be repeated. A value greater than 14478 // zero also causes checking that an assertion (possibly with callout) 14479 // follows. 14480 14481 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\052') { 14482 goto __411 14483 } 14484 14485 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_ASSERT 14486 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Pull pointer back to the opening parenthesis. 14487 expect_cond_assert = 2 14488 goto __328 // End of conditional 14489 __411: 14490 ; 14491 14492 // Handle (?([+-]number)... 14493 14494 if !(read_number(tls, bp+4, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+32, 14495 bp+12) != 0) { 14496 goto __412 14497 } 14498 14499 if !(*(*int32)(unsafe.Pointer(bp + 32)) <= 0) { 14500 goto __414 14501 } 14502 14503 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR15 14504 goto FAILED 14505 __414: 14506 ; 14507 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_NUMBER 14508 *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))-int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - 2) 14509 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14510 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14511 14512 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 32 /* i */))) 14513 goto __413 14514 __412: 14515 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 14516 goto __415 14517 } 14518 goto FAILED 14519 goto __416 14520 __415: 14521 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 >= 10 && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), ts+615, uint32(7)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 7))) != '\051') { 14522 goto __417 14523 } 14524 14525 ge = Tuint32_t(0) 14526 *(*int32)(unsafe.Pointer(bp + 72 /* major */)) = 0 14527 minor = 0 14528 14529 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(7) 14530 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\076') { 14531 goto __419 14532 } 14533 14534 ge = Tuint32_t(1) 14535 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14536 __419: 14537 ; 14538 14539 // NOTE: cannot write IS_DIGIT(*(++ptr)) here because IS_DIGIT 14540 // references its argument twice. 14541 14542 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\075' || func() bool { 14543 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))++ 14544 return !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071') 14545 }()) { 14546 goto __420 14547 } 14548 goto BAD_VERSION_CONDITION 14549 __420: 14550 ; 14551 14552 if !!(read_number(tls, bp+4, ptrend, -1, uint32(1000), ERR79, bp+72, bp+12) != 0) { 14553 goto __421 14554 } 14555 goto FAILED 14556 __421: 14557 ; 14558 14559 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 14560 goto __422 14561 } 14562 goto BAD_VERSION_CONDITION 14563 __422: 14564 ; 14565 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\056') { 14566 goto __423 14567 } 14568 14569 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1) >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071')) { 14570 goto __424 14571 } 14572 goto BAD_VERSION_CONDITION 14573 __424: 14574 ; 14575 minor = (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) - '\060') * 10 14576 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 14577 goto __425 14578 } 14579 goto BAD_VERSION_CONDITION 14580 __425: 14581 ; 14582 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) <= '\071') { 14583 goto __426 14584 } 14585 minor = minor + (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)), 1)))) - '\060') 14586 __426: 14587 ; 14588 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 14589 goto __427 14590 } 14591 goto BAD_VERSION_CONDITION 14592 __427: 14593 ; 14594 __423: 14595 ; 14596 14597 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_VERSION 14598 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = ge 14599 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 72 /* major */))) 14600 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(minor) 14601 goto __418 14602 __417: 14603 14604 was_r_ampersand = DFALSE 14605 14606 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\122' && (int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 > 1 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) == '\046') { 14607 goto __428 14608 } 14609 14610 terminator = Tuint32_t('\051') 14611 was_r_ampersand = DTRUE 14612 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14613 goto __429 14614 __428: 14615 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\074') { 14616 goto __430 14617 } 14618 terminator = Tuint32_t('\076') 14619 goto __431 14620 __430: 14621 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) == '\047') { 14622 goto __432 14623 } 14624 terminator = Tuint32_t('\047') 14625 goto __433 14626 __432: 14627 14628 terminator = Tuint32_t('\051') 14629 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Point to char before name 14630 __433: 14631 ; 14632 __431: 14633 ; 14634 __429: 14635 ; 14636 if !!(read_name(tls, bp+4, ptrend, utf, terminator, bp+36, bp+40, bp+44, 14637 bp+12, cb) != 0) { 14638 goto __434 14639 } 14640 goto FAILED 14641 __434: 14642 ; 14643 14644 // Handle (?(R&name) 14645 14646 if !(was_r_ampersand != 0) { 14647 goto __435 14648 } 14649 14650 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_RNAME 14651 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Back to closing parens 14652 goto __436 14653 __435: 14654 if !(terminator == Tuint32_t('\051')) { 14655 goto __437 14656 } 14657 14658 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 44)) == Tuint32_t(6) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)), ts+623, uint32(6)) == 0) { 14659 goto __439 14660 } 14661 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_DEFINE 14662 goto __440 14663 __439: 14664 14665 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 1 14666 __441: 14667 if !(*(*int32)(unsafe.Pointer(bp + 32)) < int32(*(*Tuint32_t)(unsafe.Pointer(bp + 44)))) { 14668 goto __443 14669 } 14670 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)) + uintptr(*(*int32)(unsafe.Pointer(bp + 32)))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)) + uintptr(*(*int32)(unsafe.Pointer(bp + 32)))))) <= '\071') { 14671 goto __444 14672 } 14673 goto __443 14674 __444: 14675 ; 14676 goto __442 14677 __442: 14678 *(*int32)(unsafe.Pointer(bp + 32 /* i */))++ 14679 goto __441 14680 goto __443 14681 __443: 14682 ; 14683 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = func() uint32 { 14684 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40))))) == '\122' && *(*int32)(unsafe.Pointer(bp + 32)) >= int32(*(*Tuint32_t)(unsafe.Pointer(bp + 44))) { 14685 return DMETA_COND_RNUMBER 14686 } 14687 return DMETA_COND_NAME 14688 }() 14689 __440: 14690 ; 14691 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- // Back to closing parens 14692 goto __438 14693 __437: 14694 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_NAME 14695 __438: 14696 ; 14697 __436: 14698 ; 14699 14700 // All these cases except DEFINE end with the name length and offset; 14701 // DEFINE just has an offset (for the "too many branches" error). 14702 14703 if !(*(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) != DMETA_COND_DEFINE) { 14704 goto __445 14705 } 14706 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* namelen */)) 14707 __445: 14708 ; 14709 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14710 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14711 14712 __418: 14713 ; 14714 __416: 14715 ; 14716 __413: 14717 ; // End cases that read a name 14718 14719 // Check the closing parenthesis of the condition 14720 14721 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))) != '\051') { 14722 goto __446 14723 } 14724 14725 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR24 14726 goto FAILED 14727 __446: 14728 ; 14729 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14730 goto __328 // End of condition processing 14731 14732 // ---- Atomic group ---- 14733 14734 __346: 14735 ATOMIC_GROUP: // Come from (*atomic: 14736 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 14737 nest_depth++ 14738 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14739 goto __328 14740 14741 // ---- Lookahead assertions ---- 14742 14743 __347: 14744 POSITIVE_LOOK_AHEAD: // Come from (*pla: 14745 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 14746 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14747 goto POST_ASSERTION 14748 14749 __348: 14750 POSITIVE_NONATOMIC_LOOK_AHEAD: // Come from (?* 14751 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD_NA 14752 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14753 goto POST_ASSERTION 14754 14755 __349: 14756 NEGATIVE_LOOK_AHEAD: // Come from (*nla: 14757 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEADNOT 14758 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))++ 14759 goto POST_ASSERTION 14760 14761 // ---- Lookbehind assertions ---- 14762 14763 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 14764 // is the start of the name of a capturing group. 14765 14766 __350: 14767 if !((int32(ptrend)-int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))))/1 <= 1 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) != '\075' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) != '\041' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) != '\052') { 14768 goto __447 14769 } 14770 14771 terminator = Tuint32_t('\076') 14772 goto DEFINE_NAME 14773 __447: 14774 ; 14775 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 14776 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) == '\075' { 14777 return DMETA_LOOKBEHIND 14778 } 14779 return func() uint32 { 14780 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) + 1))) == '\041' { 14781 return DMETA_LOOKBEHINDNOT 14782 } 14783 return DMETA_LOOKBEHIND_NA 14784 }() 14785 }() 14786 14787 POST_LOOKBEHIND: // Come from (*plb: (*naplb: and (*nlb: 14788 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 14789 *(*Tsize_t)(unsafe.Pointer(bp + 36 /* offset */)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)))-int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - 2) 14790 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) >> 32) 14791 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 36)) & 0xffffffff) 14792 14793 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)) += uintptr(2) 14794 // Fall through 14795 14796 // If the previous item was a condition starting (?(? an assertion, 14797 // optionally preceded by a callout, is expected. This is checked later on, 14798 // during actual compilation. However we need to identify this kind of 14799 // assertion in this pass because it must not be qualified. The value of 14800 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14801 // for a callout - still leaving a positive value that identifies the 14802 // assertion. Multiple callouts or any other items will make it zero or 14803 // less, which doesn't matter because they will cause an error later. 14804 14805 POST_ASSERTION: 14806 nest_depth++ 14807 if !(prev_expect_cond_assert > 0) { 14808 goto __448 14809 } 14810 14811 if !(top_nest == uintptr(0)) { 14812 goto __449 14813 } 14814 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 14815 goto __450 14816 __449: 14817 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 14818 goto __451 14819 } 14820 14821 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR84 14822 goto FAILED 14823 __451: 14824 ; 14825 __450: 14826 ; 14827 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14828 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_CONDASSERT) 14829 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 14830 __448: 14831 ; 14832 goto __328 14833 14834 // ---- Define a named group ---- 14835 14836 // A named group may be defined as (?'name') or (?<name>). In the latter 14837 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 14838 // terminator set to '>'. 14839 14840 __351: 14841 terminator = Tuint32_t('\047') // Terminator 14842 14843 DEFINE_NAME: 14844 if !!(read_name(tls, bp+4, ptrend, utf, terminator, bp+36, bp+40, bp+44, 14845 bp+12, cb) != 0) { 14846 goto __452 14847 } 14848 goto FAILED 14849 __452: 14850 ; 14851 14852 // We have a name for this capturing group. It is also assigned a number, 14853 // which is its primary means of identification. 14854 14855 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 14856 goto __453 14857 } 14858 14859 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR97 14860 goto FAILED 14861 __453: 14862 ; 14863 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 14864 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 14865 nest_depth++ 14866 14867 // Check not too many names 14868 14869 if !(int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= DMAX_NAME_COUNT) { 14870 goto __454 14871 } 14872 14873 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR49 14874 goto FAILED 14875 __454: 14876 ; 14877 14878 // Adjust the entry size to accommodate the longest name found. 14879 14880 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 44))+Tuint32_t(DIMM2_SIZE)+Tuint32_t(1) > Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)) { 14881 goto __455 14882 } 14883 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 44)) + Tuint32_t(DIMM2_SIZE) + Tuint32_t(1)) 14884 __455: 14885 ; 14886 14887 // Scan the list to check for duplicates. For duplicate names, if the 14888 // number is the same, break the loop, which causes the name to be 14889 // discarded; otherwise, if DUPNAMES is not set, give an error. 14890 // If it is set, allow the name with a different number, but continue 14891 // scanning in case this is a duplicate with the same number. For 14892 // non-duplicate names, give an error if the number is duplicated. 14893 14894 isdupname = DFALSE 14895 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 14896 *(*int32)(unsafe.Pointer(bp + 32 /* i */)) = 0 14897 __456: 14898 if !(*(*int32)(unsafe.Pointer(bp + 32)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14899 goto __458 14900 } 14901 14902 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 44)) == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bp + 44)))) == 0) { 14903 goto __459 14904 } 14905 14906 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14907 goto __461 14908 } 14909 goto __458 14910 __461: 14911 ; 14912 if !(options&DPCRE2_DUPNAMES == Tuint32_t(0)) { 14913 goto __462 14914 } 14915 14916 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR43 14917 goto FAILED 14918 __462: 14919 ; 14920 isdupname = TBOOL(libc.AssignPtrUint16(ng+10, Tuint16_t(DTRUE))) // Mark as a duplicate 14921 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fdupnames = DTRUE // Duplicate names exist 14922 goto __460 14923 __459: 14924 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14925 goto __463 14926 } 14927 14928 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR65 14929 goto FAILED 14930 __463: 14931 ; 14932 __460: 14933 ; 14934 goto __457 14935 __457: 14936 *(*int32)(unsafe.Pointer(bp + 32 /* i */))++ 14937 ng += 12 14938 goto __456 14939 goto __458 14940 __458: 14941 ; 14942 14943 if !(*(*int32)(unsafe.Pointer(bp + 32)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14944 goto __464 14945 } 14946 goto __328 14947 __464: 14948 ; // Ignore duplicate with same number 14949 14950 // Increase the list size if necessary 14951 14952 if !(Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size) { 14953 goto __465 14954 } 14955 14956 newsize = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size * Tuint32_t(2) 14957 newspace = 14958 (*struct { 14959 f func(*libc.TLS, Tsize_t, uintptr) uintptr 14960 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmalloc})).f(tls, uint32(newsize)*uint32(unsafe.Sizeof(Tnamed_group_8{})), 14961 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14962 if !(newspace == uintptr(0)) { 14963 goto __466 14964 } 14965 14966 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR21 14967 goto FAILED 14968 __466: 14969 ; 14970 14971 libc.Xmemcpy(tls, newspace, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups, 14972 uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size)*uint32(unsafe.Sizeof(Tnamed_group_8{}))) 14973 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 14974 goto __467 14975 } 14976 (*struct { 14977 f func(*libc.TLS, uintptr, uintptr) 14978 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups, 14979 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14980 __467: 14981 ; 14982 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups = newspace 14983 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size = newsize 14984 __465: 14985 ; 14986 14987 // Add this name to the list 14988 14989 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*12)).Fname = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40 /* name */)) 14990 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*12)).Flength = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 44 /* namelen */))) 14991 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*12)).Fnumber = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 14992 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*12)).Fisdup = Tuint16_t(isdupname) 14993 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found++ 14994 goto __328 14995 __328: 14996 ; // End of (? switch 14997 goto __84 // End of ( handling 14998 14999 // ---- Branch terminators ---- 15000 15001 // Alternation: reset the capture count if we are in a (?| group. 15002 15003 __96: 15004 if !(top_nest != uintptr(0) && int32((*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth) == int32(nest_depth) && uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_RESET != uint32(0)) { 15005 goto __468 15006 } 15007 15008 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount > Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group)) { 15009 goto __469 15010 } 15011 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 15012 __469: 15013 ; 15014 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group) 15015 __468: 15016 ; 15017 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ALT 15018 goto __84 15019 15020 // End of group; reset the capture count to the maximum if we are in a (?| 15021 // group and/or reset the options that are tracked during parsing. Disallow 15022 // quantifier for a condition that is an assertion. 15023 15024 __97: 15025 okquantifier = DTRUE 15026 if !(top_nest != uintptr(0) && int32((*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth) == int32(nest_depth)) { 15027 goto __470 15028 } 15029 15030 options = options&libc.CplUint32(DPCRE2_CASELESS|DPCRE2_DOTALL|DPCRE2_DUPNAMES|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE|DPCRE2_MULTILINE|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_UNGREEDY) | (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions 15031 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_RESET != uint32(0) && Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group) > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 15032 goto __471 15033 } 15034 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group) 15035 __471: 15036 ; 15037 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_CONDASSERT != uint32(0)) { 15038 goto __472 15039 } 15040 okquantifier = DFALSE 15041 __472: 15042 ; 15043 15044 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_ATOMICSR != uint32(0)) { 15045 goto __473 15046 } 15047 15048 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15049 __473: 15050 ; 15051 15052 if !(top_nest == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace) { 15053 goto __474 15054 } 15055 top_nest = uintptr(0) 15056 goto __475 15057 __474: 15058 top_nest -= 12 15059 __475: 15060 ; 15061 __470: 15062 ; 15063 if !(int32(nest_depth) == 0) { 15064 goto __476 15065 } /* Unmatched closing parenthesis */ 15066 15067 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR22 15068 goto FAILED_BACK 15069 __476: 15070 ; 15071 nest_depth-- 15072 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15073 goto __84 15074 __84: 15075 ; // End of switch on pattern character 15076 goto __19 15077 __20: 15078 ; // End of main character scan loop 15079 15080 // End of pattern reached. Check for missing ) at the end of a verb name. 15081 15082 if !(inverbname != 0 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4)) >= ptrend) { 15083 goto __477 15084 } 15085 15086 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR60 15087 goto FAILED 15088 __477: 15089 ; 15090 15091 // Manage callout for the final item 15092 15093 PARSED_END: 15094 parsed_pattern = manage_callouts(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */)), bp, auto_callout, 15095 parsed_pattern, cb) 15096 15097 // Insert trailing items for word and line matching (features provided for the 15098 // benefit of pcre2grep). 15099 15100 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 15101 goto __478 15102 } 15103 15104 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15105 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 15106 goto __479 15107 __478: 15108 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 15109 goto __480 15110 } 15111 15112 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15113 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 15114 __480: 15115 ; 15116 __479: 15117 ; 15118 15119 // Terminate the parsed pattern, then return success if all groups are closed. 15120 // Otherwise we have unclosed parentheses. 15121 15122 if !(parsed_pattern >= parsed_pattern_end) { 15123 goto __481 15124 } 15125 15126 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 15127 goto FAILED 15128 __481: 15129 ; 15130 15131 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_END 15132 if !(int32(nest_depth) == 0) { 15133 goto __482 15134 } 15135 return 0 15136 __482: 15137 ; 15138 15139 UNCLOSED_PARENTHESIS: 15140 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR14 15141 15142 // Come here for all failures. 15143 15144 FAILED: 15145 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4))) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15146 return *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) 15147 15148 // Some errors need to indicate the previous character. 15149 15150 FAILED_BACK: 15151 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* ptr */))-- 15152 goto FAILED 15153 15154 // This failure happens several times. 15155 15156 BAD_VERSION_CONDITION: 15157 *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) = ERR79 15158 goto FAILED 15159 return int32(0) 15160 } 15161 15162 // ************************************************ 15163 // 15164 // Find first significant opcode * 15165 // 15166 15167 // This is called by several functions that scan a compiled expression looking 15168 // for a fixed first character, or an anchoring opcode etc. It skips over things 15169 // that do not influence this. For some calls, it makes sense to skip negative 15170 // forward and all backward assertions, and also the \b assertion; for others it 15171 // does not. 15172 // 15173 // Arguments: 15174 // code pointer to the start of the group 15175 // skipassert TRUE if certain assertions are to be skipped 15176 // 15177 // Returns: pointer to the first significant opcode 15178 15179 func first_significant_code(tls *libc.TLS, code TPCRE2_SPTR8, skipassert TBOOL) uintptr { /* pcre2_compile.c:4845:25: */ 15180 for { 15181 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) { 15182 case OP_ASSERT_NOT: 15183 fallthrough 15184 case OP_ASSERTBACK: 15185 fallthrough 15186 case OP_ASSERTBACK_NOT: 15187 fallthrough 15188 case OP_ASSERTBACK_NA: 15189 if !(skipassert != 0) { 15190 return code 15191 } 15192 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 15193 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 15194 } 15195 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15196 break 15197 15198 case OP_WORD_BOUNDARY: 15199 fallthrough 15200 case OP_NOT_WORD_BOUNDARY: 15201 if !(skipassert != 0) { 15202 return code 15203 } 15204 fallthrough 15205 // Fall through 15206 15207 case OP_CALLOUT: 15208 fallthrough 15209 case OP_CREF: 15210 fallthrough 15211 case OP_DNCREF: 15212 fallthrough 15213 case OP_RREF: 15214 fallthrough 15215 case OP_DNRREF: 15216 fallthrough 15217 case OP_FALSE: 15218 fallthrough 15219 case OP_TRUE: 15220 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15221 break 15222 15223 case OP_CALLOUT_STR: 15224 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 15225 break 15226 15227 case OP_SKIPZERO: 15228 code += TPCRE2_SPTR8(uint32(2) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) + uint32(DLINK_SIZE)) 15229 break 15230 15231 case OP_COND: 15232 fallthrough 15233 case OP_SCOND: 15234 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) != OP_FALSE || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))))) != OP_KET { // More than one branch 15235 return code 15236 } 15237 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) + uint32(1) + uint32(DLINK_SIZE)) 15238 break 15239 15240 case OP_MARK: 15241 fallthrough 15242 case OP_COMMIT_ARG: 15243 fallthrough 15244 case OP_PRUNE_ARG: 15245 fallthrough 15246 case OP_SKIP_ARG: 15247 fallthrough 15248 case OP_THEN_ARG: 15249 code += TPCRE2_SPTR8(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) + int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))])) 15250 break 15251 15252 default: 15253 return code 15254 } 15255 } 15256 return uintptr(0) 15257 // Control never reaches here 15258 } 15259 15260 // ************************************************ 15261 // 15262 // Get othercase range * 15263 // 15264 15265 // This function is passed the start and end of a class range in UCP mode. It 15266 // searches up the characters, looking for ranges of characters in the "other" 15267 // case. Each call returns the next one, updating the start address. A character 15268 // with multiple other cases is returned on its own with a special return value. 15269 // 15270 // Arguments: 15271 // cptr points to starting character value; updated 15272 // d end value 15273 // ocptr where to put start of othercase range 15274 // odptr where to put end of othercase range 15275 // 15276 // Yield: -1 when no more 15277 // 0 when a range is returned 15278 // >0 the CASESET offset for char with multiple other cases 15279 // in this case, ocptr contains the original 15280 15281 func get_othercase_range(tls *libc.TLS, cptr uintptr, d Tuint32_t, ocptr uintptr, odptr uintptr) int32 { /* pcre2_compile.c:4932:1: */ 15282 var c Tuint32_t 15283 var othercase Tuint32_t 15284 var next Tuint32_t 15285 var co uint32 15286 15287 // Find the first character that has an other case. If it has multiple other 15288 // cases, return its case offset value. 15289 15290 for c = *(*Tuint32_t)(unsafe.Pointer(cptr)); c <= d; c++ { 15291 if libc.AssignUint32(&co, uint32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != uint32(0) { 15292 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = libc.PostIncUint32(&c, 1) // Character that has the set 15293 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15294 return int32(co) 15295 } 15296 if libc.AssignUint32(&othercase, Tuint32_t(int32(c)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case)) != c { 15297 break 15298 } 15299 } 15300 15301 if c > d { 15302 return -1 15303 } // Reached end of range 15304 15305 // Found a character that has a single other case. Search for the end of the 15306 // range, which is either the end of the input range, or a character that has zero 15307 // or more than one other cases. 15308 15309 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = othercase 15310 next = othercase + Tuint32_t(1) 15311 15312 for c++; c <= d; c++ { 15313 if libc.AssignUint32(&co, uint32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != uint32(0) || Tuint32_t(int32(c)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) != next { 15314 break 15315 } 15316 next++ 15317 } 15318 15319 *(*Tuint32_t)(unsafe.Pointer(odptr)) = next - Tuint32_t(1) // End of othercase range 15320 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15321 return 0 15322 } 15323 15324 // ************************************************ 15325 // 15326 // Add a character or range to a class (internal) * 15327 // 15328 15329 // This function packages up the logic of adding a character or range of 15330 // characters to a class. The character values in the arguments will be within the 15331 // valid values for the current mode (8-bit, 16-bit, UTF, etc). This function is 15332 // called only from within the "add to class" group of functions, some of which 15333 // are recursive and mutually recursive. The external entry point is 15334 // add_to_class(). 15335 // 15336 // Arguments: 15337 // classbits the bit map for characters < 256 15338 // uchardptr points to the pointer for extra data 15339 // options the options word 15340 // cb compile data 15341 // start start of range character 15342 // end end of range character 15343 // 15344 // Returns: the number of < 256 characters added 15345 // the pointer to extra data is updated 15346 15347 func add_to_class_internal(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, start Tuint32_t, end Tuint32_t) uint32 { /* pcre2_compile.c:4999:1: */ 15348 bp := tls.Alloc(12) 15349 defer tls.Free(12) 15350 15351 // var c Tuint32_t at bp, 4 15352 15353 var classbits_end Tuint32_t = func() uint32 { 15354 if end <= Tuint32_t(0xff) { 15355 return end 15356 } 15357 return uint32(0xff) 15358 }() 15359 var n8 uint32 = uint32(0) 15360 15361 // If caseless matching is required, scan the range and process alternate 15362 // cases. In Unicode, there are 8-bit characters that have alternate cases that 15363 // are greater than 255 and vice-versa. Sometimes we can just extend the original 15364 // range. 15365 15366 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15367 if options&(DPCRE2_UTF|DPCRE2_UCP) != Tuint32_t(0) { 15368 var rc int32 15369 // var oc Tuint32_t at bp+4, 4 15370 15371 // var od Tuint32_t at bp+8, 4 15372 15373 options = options & libc.CplUint32(DPCRE2_CASELESS) // Remove for recursive calls 15374 *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start 15375 15376 for libc.AssignInt32(&rc, get_othercase_range(tls, bp, end, bp+4, bp+8)) >= 0 { 15377 // Handle a single character that has more than one other case. 15378 15379 if rc > 0 { 15380 n8 = n8 + add_list_to_class_internal(tls, classbits, uchardptr, options, cb, 15381 uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8))+uintptr(rc)*4, *(*Tuint32_t)(unsafe.Pointer(bp + 4))) 15382 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) <= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end { 15383 continue 15384 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) < start && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= start-Tuint32_t(1) { 15385 start = *(*Tuint32_t)(unsafe.Pointer(bp + 4 /* oc */)) 15386 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 8)) > end && *(*Tuint32_t)(unsafe.Pointer(bp + 4)) <= end+Tuint32_t(1) { 15387 end = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* od */)) // Extend upwards 15388 if end > classbits_end { 15389 classbits_end = func() uint32 { 15390 if end <= Tuint32_t(0xff) { 15391 return end 15392 } 15393 return uint32(0xff) 15394 }() 15395 } 15396 } else { 15397 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(bp + 4)), *(*Tuint32_t)(unsafe.Pointer(bp + 8))) 15398 } 15399 } 15400 } else { 15401 15402 // Not UTF mode 15403 15404 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15405 *(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))/8))) = Tuint8_t(uint32(*(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))/8)))) | uint32(1)<<(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))&7)) 15406 n8++ 15407 } 15408 } 15409 } 15410 15411 // Now handle the originally supplied range. Adjust the final value according 15412 // to the bit length - this means that the same lists of (e.g.) horizontal spaces 15413 // can be used in all cases. 15414 15415 if options&DPCRE2_UTF == Tuint32_t(0) && end > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH) { 15416 end = uint32(0xffffffff) >> (32 - DPCRE2_CODE_UNIT_WIDTH) 15417 } 15418 15419 if start > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start && end < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end { 15420 return n8 15421 } 15422 15423 // Use the bitmap for characters < 256. Otherwise use extra data. 15424 15425 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15426 // Regardless of start, c will always be <= 255. 15427 *(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))/Tuint32_t(8)))) = Tuint8_t(uint32(*(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))/Tuint32_t(8))))) | uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp))&Tuint32_t(7))) 15428 n8++ 15429 } 15430 15431 if start <= Tuint32_t(0xff) { 15432 start = Tuint32_t(0xff + 1) 15433 } 15434 15435 if end >= start { 15436 var uchardata uintptr = *(*uintptr)(unsafe.Pointer(uchardptr)) 15437 15438 if options&DPCRE2_UTF != Tuint32_t(0) { 15439 if start < end { 15440 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 15441 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15442 uchardata += uintptr(X_pcre2_ord2utf_8(tls, end, uchardata)) 15443 } else if start == end { 15444 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_SINGLE) 15445 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15446 } 15447 } else { 15448 } 15449 *(*uintptr)(unsafe.Pointer(uchardptr)) = uchardata // Updata extra data pointer 15450 } 15451 15452 return n8 // Number of 8-bit characters 15453 } 15454 15455 // ************************************************ 15456 // 15457 // Add a list of characters to a class (internal) * 15458 // 15459 15460 // This function is used for adding a list of case-equivalent characters to a 15461 // class when in UTF mode. This function is called only from within 15462 // add_to_class_internal(), with which it is mutually recursive. 15463 // 15464 // Arguments: 15465 // classbits the bit map for characters < 256 15466 // uchardptr points to the pointer for extra data 15467 // options the options word 15468 // cb contains pointers to tables etc. 15469 // p points to row of 32-bit values, terminated by NOTACHAR 15470 // except character to omit; this is used when adding lists of 15471 // case-equivalent characters to avoid including the one we 15472 // already know about 15473 // 15474 // Returns: the number of < 256 characters added 15475 // the pointer to extra data is updated 15476 15477 func add_list_to_class_internal(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr, except uint32) uint32 { /* pcre2_compile.c:5154:1: */ 15478 var n8 uint32 = uint32(0) 15479 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15480 var n uint32 = uint32(0) 15481 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15482 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15483 n++ 15484 } 15485 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15486 } 15487 p += 4 * uintptr(n+uint32(1)) 15488 } 15489 return n8 15490 } 15491 15492 // ************************************************ 15493 // 15494 // External entry point for add range to class * 15495 // 15496 15497 // This function sets the overall range so that the internal functions can try 15498 // to avoid duplication when handling case-independence. 15499 // 15500 // Arguments: 15501 // classbits the bit map for characters < 256 15502 // uchardptr points to the pointer for extra data 15503 // options the options word 15504 // cb compile data 15505 // start start of range character 15506 // end end of range character 15507 // 15508 // Returns: the number of < 256 characters added 15509 // the pointer to extra data is updated 15510 15511 func add_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, start Tuint32_t, end Tuint32_t) uint32 { /* pcre2_compile.c:5194:1: */ 15512 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = start 15513 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = end 15514 return add_to_class_internal(tls, classbits, uchardptr, options, cb, start, end) 15515 } 15516 15517 // ************************************************ 15518 // 15519 // External entry point for add list to class * 15520 // 15521 15522 // This function is used for adding a list of horizontal or vertical whitespace 15523 // characters to a class. The list must be in order so that ranges of characters 15524 // can be detected and handled appropriately. This function sets the overall range 15525 // so that the internal functions can try to avoid duplication when handling 15526 // case-independence. 15527 // 15528 // Arguments: 15529 // classbits the bit map for characters < 256 15530 // uchardptr points to the pointer for extra data 15531 // options the options word 15532 // cb contains pointers to tables etc. 15533 // p points to row of 32-bit values, terminated by NOTACHAR 15534 // except character to omit; this is used when adding lists of 15535 // case-equivalent characters to avoid including the one we 15536 // already know about 15537 // 15538 // Returns: the number of < 256 characters added 15539 // the pointer to extra data is updated 15540 15541 func add_list_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr, except uint32) uint32 { /* pcre2_compile.c:5228:1: */ 15542 var n8 uint32 = uint32(0) 15543 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15544 var n uint32 = uint32(0) 15545 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15546 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15547 n++ 15548 } 15549 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = *(*Tuint32_t)(unsafe.Pointer(p)) 15550 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4)) 15551 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15552 } 15553 p += 4 * uintptr(n+uint32(1)) 15554 } 15555 return n8 15556 } 15557 15558 // ************************************************ 15559 // 15560 // Add characters not in a list to a class * 15561 // 15562 15563 // This function is used for adding the complement of a list of horizontal or 15564 // vertical whitespace to a class. The list must be in order. 15565 // 15566 // Arguments: 15567 // classbits the bit map for characters < 256 15568 // uchardptr points to the pointer for extra data 15569 // options the options word 15570 // cb contains pointers to tables etc. 15571 // p points to row of 32-bit values, terminated by NOTACHAR 15572 // 15573 // Returns: the number of < 256 characters added 15574 // the pointer to extra data is updated 15575 15576 func add_not_list_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr) uint32 { /* pcre2_compile.c:5268:1: */ 15577 var utf TBOOL = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15578 var n8 uint32 = uint32(0) 15579 if *(*Tuint32_t)(unsafe.Pointer(p)) > Tuint32_t(0) { 15580 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, uint32(0), *(*Tuint32_t)(unsafe.Pointer(p))-Tuint32_t(1)) 15581 } 15582 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15583 for *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1) { 15584 p += 4 15585 } 15586 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1), 15587 func() uint32 { 15588 if *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == DNOTACHAR { 15589 return func() uint32 { 15590 if utf != 0 { 15591 return 0x10ffff 15592 } 15593 return 0xffffffff 15594 }() 15595 } 15596 return *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) - Tuint32_t(1) 15597 }()) 15598 p += 4 15599 } 15600 return n8 15601 } 15602 15603 // ************************************************ 15604 // 15605 // Find details of duplicate group names * 15606 // 15607 15608 // This is called from compile_branch() when it needs to know the index and 15609 // count of duplicates in the names table when processing named backreferences, 15610 // either directly, or as conditions. 15611 // 15612 // Arguments: 15613 // name points to the name 15614 // length the length of the name 15615 // indexptr where to put the index 15616 // countptr where to put the count of duplicates 15617 // errorcodeptr where to put an error code 15618 // cb the compile block 15619 // 15620 // Returns: TRUE if OK, FALSE if not, error code set 15621 15622 func find_dupname_details(tls *libc.TLS, name TPCRE2_SPTR8, length Tuint32_t, indexptr uintptr, countptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:5307:1: */ 15623 var i Tuint32_t 15624 var groupnumber Tuint32_t 15625 var count int32 15626 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 15627 15628 // Find the first entry in the table 15629 15630 for i = Tuint32_t(0); i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found); i++ { 15631 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint32(length)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(Tuint32_t(DIMM2_SIZE)+length)))) == 0 { 15632 break 15633 } 15634 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15635 } 15636 15637 // This should not occur, because this function is called only when we know we 15638 // have duplicate names. Give an internal error. 15639 15640 if i >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15641 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR53 15642 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int32(name) - int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15643 return DFALSE 15644 } 15645 15646 // Record the index and then see how many duplicates there are, updating the 15647 // backref map and maximum back reference as we do. 15648 15649 *(*int32)(unsafe.Pointer(indexptr)) = int32(i) 15650 count = 0 15651 15652 for { 15653 count++ 15654 groupnumber = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)))) 15655 *(*Tuint32_t)(unsafe.Pointer(cb + 140)) |= func() uint32 { 15656 if groupnumber < Tuint32_t(32) { 15657 return uint32(1) << groupnumber 15658 } 15659 return uint32(1) 15660 }() 15661 if groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref { 15662 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 15663 } 15664 if libc.PreIncUint32(&i, 1) >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15665 break 15666 } 15667 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15668 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint32(length)) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE) + uintptr(length)))) != 0 { 15669 break 15670 } 15671 } 15672 15673 *(*int32)(unsafe.Pointer(countptr)) = count 15674 return DTRUE 15675 } 15676 15677 // ************************************************ 15678 // 15679 // Compile one branch * 15680 // 15681 15682 // Scan the parsed pattern, compiling it into the a vector of PCRE2_UCHAR. If 15683 // the options are changed during the branch, the pointer is used to change the 15684 // external options bits. This function is used during the pre-compile phase when 15685 // we are trying to find out the amount of memory needed, as well as during the 15686 // real compile phase. The value of lengthptr distinguishes the two phases. 15687 // 15688 // Arguments: 15689 // optionsptr pointer to the option bits 15690 // codeptr points to the pointer to the current code point 15691 // pptrptr points to the current parsed pattern pointer 15692 // errorcodeptr points to error code variable 15693 // firstcuptr place to put the first required code unit 15694 // firstcuflagsptr place to put the first code unit flags 15695 // reqcuptr place to put the last required code unit 15696 // reqcuflagsptr place to put the last required code unit flags 15697 // bcptr points to current branch chain 15698 // cb contains pointers to tables etc. 15699 // lengthptr NULL during the real compile phase 15700 // points to length accumulator during pre-compile phase 15701 // 15702 // Returns: 0 There's been an error, *errorcodeptr is non-zero 15703 // +1 Success, this branch must match at least one character 15704 // -1 Success, this branch may match an empty string 15705 15706 func compile_branch(tls *libc.TLS, optionsptr uintptr, codeptr uintptr, pptrptr uintptr, errorcodeptr uintptr, firstcuptr uintptr, firstcuflagsptr uintptr, reqcuptr uintptr, reqcuflagsptr uintptr, bcptr uintptr, cb uintptr, lengthptr uintptr) int32 { /* pcre2_compile.c:5387:1: */ 15707 bp := tls.Alloc(120) 15708 defer tls.Free(120) 15709 15710 var bravalue int32 15711 var okreturn int32 15712 var group_return int32 15713 var repeat_min Tuint32_t 15714 var repeat_max Tuint32_t // To please picky compilers 15715 var greedy_default Tuint32_t 15716 var greedy_non_default Tuint32_t 15717 var repeat_type Tuint32_t 15718 var op_type Tuint32_t 15719 var options Tuint32_t // May change dynamically 15720 var firstcu Tuint32_t 15721 var reqcu Tuint32_t 15722 var zeroreqcu Tuint32_t 15723 var zerofirstcu Tuint32_t 15724 var escape Tuint32_t 15725 // var pptr uintptr at bp+88, 4 15726 15727 var meta Tuint32_t 15728 var meta_arg Tuint32_t 15729 var firstcuflags Tuint32_t 15730 var reqcuflags Tuint32_t 15731 var zeroreqcuflags Tuint32_t 15732 var zerofirstcuflags Tuint32_t 15733 var req_caseopt Tuint32_t 15734 var reqvary Tuint32_t 15735 var tempreqvary Tuint32_t 15736 var offset Tsize_t 15737 // var length_prevgroup Tsize_t at bp+108, 4 15738 15739 var code uintptr 15740 var last_code uintptr 15741 var orig_code uintptr 15742 // var tempcode uintptr at bp+84, 4 15743 15744 var previous uintptr 15745 var op_previous TPCRE2_UCHAR8 15746 var groupsetfirstcu TBOOL 15747 var had_accept TBOOL 15748 var matched_char TBOOL 15749 var previous_matched_char TBOOL 15750 var reset_caseful TBOOL 15751 var cbits uintptr 15752 // var classbits [32]Tuint8_t at bp, 32 15753 15754 // We can fish out the UTF setting once and for all into a BOOL, but we must 15755 // not do this for other options (e.g. PCRE2_EXTENDED) because they may change 15756 // dynamically as we process the pattern. 15757 15758 var utf TBOOL 15759 var ucp TBOOL 15760 15761 // Helper variables for OP_XCLASS opcode (for characters > 255). We define 15762 // class_uchardata always so that it can be passed to add_to_class() always, 15763 // though it will not be used in non-UTF 8-bit cases. This avoids having to supply 15764 // alternative calls for the different cases. 15765 15766 // var class_uchardata uintptr at bp+64, 4 15767 15768 var xclass TBOOL 15769 var class_uchardata_base uintptr 15770 var d Tuint32_t 15771 var c Tuint32_t 15772 var d1 Tuint32_t 15773 var c1 Tuint32_t 15774 var i int32 15775 var i1 int32 15776 var local_negate TBOOL 15777 var posix_class int32 15778 var taboffset int32 15779 var tabopt int32 15780 // var pbits [32]Tuint8_t at bp+32, 32 15781 15782 var i2 int32 15783 var i3 int32 15784 var ptype Tuint32_t 15785 var pdata Tuint32_t 15786 var i4 int32 15787 var i5 int32 15788 var i6 int32 15789 var i7 int32 15790 var i8 int32 15791 var i9 int32 15792 var c2 Tuint32_t 15793 var d2 Tuint32_t 15794 var i10 int32 15795 var i11 int32 15796 // var count int32 at bp+80, 4 15797 15798 // var index int32 at bp+76, 4 15799 15800 var i12 uint32 15801 var name TPCRE2_SPTR8 15802 var ng uintptr 15803 var length Tuint32_t 15804 var tc uintptr 15805 var condcount int32 15806 // var count1 int32 at bp+116, 4 15807 15808 // var index1 int32 at bp+112, 4 15809 15810 var name1 TPCRE2_SPTR8 15811 var is_dupname TBOOL 15812 var ng1 uintptr 15813 var length1 Tuint32_t 15814 var i13 uint32 15815 var pp TPCRE2_SPTR8 15816 var delimiter Tuint32_t 15817 var length2 Tuint32_t 15818 var callout_string uintptr 15819 var lastchar uintptr 15820 var delta Tsize_t 15821 var replicate int32 15822 var i14 int32 15823 var linkoffset int32 15824 var delta1 Tsize_t 15825 var i15 Tuint32_t 15826 var delta2 Tsize_t 15827 var linkoffset1 int32 15828 var oldlinkoffset int32 15829 var linkoffset2 int32 15830 var bra uintptr 15831 var i16 Tuint32_t 15832 var nlen int32 15833 var ketcode uintptr 15834 var bracode uintptr 15835 var len int32 15836 var bralink uintptr 15837 var brazeroptr uintptr 15838 var prop_type int32 15839 var prop_value int32 15840 var oldcode uintptr 15841 var repcode uint32 15842 var len1 int32 15843 var ptype1 Tuint32_t 15844 var pdata1 Tuint32_t 15845 var caseset Tuint32_t 15846 var i17 int32 15847 var xclass_has_prop TBOOL 15848 var negate_class TBOOL 15849 var should_flip_negation TBOOL 15850 var match_all_or_no_wide_chars TBOOL 15851 var possessive_quantifier TBOOL 15852 var note_group_empty TBOOL 15853 var class_has_8bitchar int32 15854 var mclength Tuint32_t 15855 var skipunits Tuint32_t 15856 // var subreqcu Tuint32_t at bp+100, 4 15857 15858 // var subfirstcu Tuint32_t at bp+92, 4 15859 15860 var groupnumber Tuint32_t 15861 var verbarglen Tuint32_t 15862 var verbculen Tuint32_t 15863 // var subreqcuflags Tuint32_t at bp+104, 4 15864 15865 // var subfirstcuflags Tuint32_t at bp+96, 4 15866 15867 var oc uintptr 15868 // var mcbuffer [8]TPCRE2_UCHAR8 at bp+68, 8 15869 bravalue = 0 15870 okreturn = -1 15871 group_return = 0 15872 repeat_min = Tuint32_t(0) 15873 repeat_max = Tuint32_t(0) 15874 options = *(*Tuint32_t)(unsafe.Pointer(optionsptr)) 15875 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 15876 offset = Tsize_t(0) 15877 *(*Tsize_t)(unsafe.Pointer(bp + 108 /* length_prevgroup */)) = Tsize_t(0) 15878 code = *(*uintptr)(unsafe.Pointer(codeptr)) 15879 last_code = code 15880 orig_code = code 15881 previous = uintptr(0) 15882 groupsetfirstcu = DFALSE 15883 had_accept = DFALSE 15884 matched_char = DFALSE 15885 previous_matched_char = DFALSE 15886 reset_caseful = DFALSE 15887 cbits = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits 15888 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15889 ucp = libc.Bool32(options&DPCRE2_UCP != Tuint32_t(0)) 15890 15891 // Set up the default and non-default settings for greediness 15892 15893 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 15894 greedy_non_default = greedy_default ^ Tuint32_t(1) 15895 15896 // Initialize no first unit, no required unit. REQ_UNSET means "no char 15897 // matching encountered yet". It gets changed to REQ_NONE if we hit something that 15898 // matches a non-fixed first unit; reqcu just remains unset if we never find one. 15899 // 15900 // When we hit a repeat whose minimum is zero, we may have to adjust these values 15901 // to take the zero repeat into account. This is implemented by setting them to 15902 // zerofirstcu and zeroreqcu when such a repeat is encountered. The individual 15903 // item types that can be repeated set these backoff variables appropriately. 15904 15905 firstcu = libc.AssignUint32(&reqcu, libc.AssignUint32(&zerofirstcu, libc.AssignUint32(&zeroreqcu, Tuint32_t(0)))) 15906 firstcuflags = libc.AssignUint32(&reqcuflags, libc.AssignUint32(&zerofirstcuflags, libc.AssignUint32(&zeroreqcuflags, DREQ_UNSET))) 15907 15908 // The variable req_caseopt contains either the REQ_CASELESS bit or zero, 15909 // according to the current setting of the caseless flag. The REQ_CASELESS value 15910 // leaves the lower 28 bit empty. It is added into the firstcu or reqcu variables 15911 // to record the case status of the value. This is used only for ASCII characters. 15912 15913 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15914 req_caseopt = DREQ_CASELESS 15915 } else { 15916 req_caseopt = uint32(0) 15917 } 15918 15919 // Switch on next META item until the end of the branch 15920 15921 __1: 15922 ; 15923 15924 // Get next META item in the pattern and its potential argument. 15925 15926 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) & 0xffff0000 15927 meta_arg = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) & 0x0000ffff 15928 15929 // If we are in the pre-compile phase, accumulate the length used for the 15930 // previous cycle of this loop, unless the next item is a quantifier. 15931 15932 if !(lengthptr != uintptr(0)) { 15933 goto __4 15934 } 15935 15936 if !(code > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size)-uintptr(100)) { 15937 goto __5 15938 } /* Check for overrun */ 15939 15940 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 15941 if code >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) { 15942 return ERR52 15943 } 15944 return ERR86 15945 }() 15946 return 0 15947 __5: 15948 ; 15949 15950 // There is at least one situation where code goes backwards: this is the 15951 // case of a zero quantifier after a class (e.g. [ab]{0}). When the quantifier 15952 // is processed, the whole class is eliminated. However, it is created first, 15953 // so we have to allow memory for it. Therefore, don't ever reduce the length 15954 // at this point. 15955 15956 if !(code < last_code) { 15957 goto __6 15958 } 15959 code = last_code 15960 __6: 15961 ; 15962 15963 // If the next thing is not a quantifier, we add the length of the previous 15964 // item into the total, and reset the code pointer to the start of the 15965 // workspace. Otherwise leave the previous item available to be quantified. 15966 15967 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 15968 goto __7 15969 } 15970 15971 if !(Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < Tsize_t((int32(code)-int32(orig_code))/1)) { 15972 goto __8 15973 } 15974 15975 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Integer overflow 15976 return 0 15977 __8: 15978 ; 15979 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int32(code) - int32(orig_code)) / 1) 15980 if !(*(*Tsize_t)(unsafe.Pointer(lengthptr)) > Tsize_t(int32(1)<<16)) { 15981 goto __9 15982 } 15983 15984 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Pattern is too large 15985 return 0 15986 __9: 15987 ; 15988 code = orig_code 15989 __7: 15990 ; 15991 15992 // Remember where this code item starts so we can catch the "backwards" 15993 // case above next time round. 15994 15995 last_code = code 15996 __4: 15997 ; 15998 15999 // Process the next parsed pattern item. If it is not a quantifier, remember 16000 // where it starts so that it can be quantified when a quantifier follows. 16001 // Checking for the legality of quantifiers happens in parse_regex(), except for 16002 // a quantifier after an assertion that is a condition. 16003 16004 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 16005 goto __10 16006 } 16007 16008 previous = code 16009 if !(matched_char != 0 && !(had_accept != 0)) { 16010 goto __11 16011 } 16012 okreturn = 1 16013 __11: 16014 ; 16015 __10: 16016 ; 16017 16018 previous_matched_char = matched_char 16019 matched_char = DFALSE 16020 note_group_empty = DFALSE 16021 skipunits = Tuint32_t(0) // Default value for most subgroups 16022 16023 switch meta { 16024 // =================================================================== 16025 // The branch terminates at pattern end or | or ) 16026 16027 case DMETA_END: 16028 goto __13 16029 case DMETA_ALT: 16030 goto __14 16031 case DMETA_KET: 16032 goto __15 16033 16034 // =================================================================== 16035 // Handle single-character metacharacters. In multiline mode, ^ disables 16036 // the setting of any following char as a first character. 16037 16038 case DMETA_CIRCUMFLEX: 16039 goto __16 16040 16041 case DMETA_DOLLAR: 16042 goto __17 16043 16044 // There can never be a first char if '.' is first, whatever happens about 16045 // repeats. The value of reqcu doesn't change either. 16046 16047 case DMETA_DOT: 16048 goto __18 16049 16050 // =================================================================== 16051 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16052 // Otherwise, an initial ']' is taken as a data character. When empty classes 16053 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16054 // match any character, so generate OP_ALLANY. 16055 16056 case DMETA_CLASS_EMPTY: 16057 goto __19 16058 case DMETA_CLASS_EMPTY_NOT: 16059 goto __20 16060 16061 // =================================================================== 16062 // Non-empty character class. If the included characters are all < 256, we 16063 // build a 32-byte bitmap of the permitted characters, except in the special 16064 // case where there is only one such character. For negated classes, we build 16065 // the map as usual, then invert it at the end. However, we use a different 16066 // opcode so that data characters > 255 can be handled correctly. 16067 // 16068 // If the class contains characters outside the 0-255 range, a different 16069 // opcode is compiled. It may optionally have a bit map for characters < 256, 16070 // but those above are are explicitly listed afterwards. A flag code unit 16071 // tells whether the bitmap is present, and whether this is a negated class or 16072 // not. 16073 16074 case DMETA_CLASS_NOT: 16075 goto __21 16076 case DMETA_CLASS: 16077 goto __22 // End of class processing 16078 16079 // =================================================================== 16080 // Deal with (*VERB)s. 16081 16082 // Check for open captures before ACCEPT and close those that are within 16083 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 16084 // assertion. In the first pass, just accumulate the length required; 16085 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 16086 // workspace overflow. Do not set firstcu after *ACCEPT. 16087 16088 case DMETA_ACCEPT: 16089 goto __23 16090 16091 case DMETA_PRUNE: 16092 goto __24 16093 case DMETA_SKIP: 16094 goto __25 16095 // Fall through 16096 case DMETA_COMMIT: 16097 goto __26 16098 case DMETA_FAIL: 16099 goto __27 16100 16101 case DMETA_THEN: 16102 goto __28 16103 16104 // Handle verbs with arguments. Arguments can be very long, especially in 16105 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 16106 // However, the argument length is constrained to be small enough to fit in 16107 // one code unit. This check happens in parse_regex(). In the first pass, 16108 // instead of putting the argument into memory, we just update the length 16109 // counter and set up an empty argument. 16110 16111 case DMETA_THEN_ARG: 16112 goto __29 16113 16114 case DMETA_PRUNE_ARG: 16115 goto __30 16116 case DMETA_SKIP_ARG: 16117 goto __31 16118 // Fall through 16119 case DMETA_MARK: 16120 goto __32 16121 case DMETA_COMMIT_ARG: 16122 goto __33 16123 16124 // =================================================================== 16125 // Handle options change. The new setting must be passed back for use in 16126 // subsequent branches. Reset the greedy defaults and the case value for 16127 // firstcu and reqcu. 16128 16129 case DMETA_OPTIONS: 16130 goto __34 16131 16132 // =================================================================== 16133 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 16134 // because it could be a numerical check on recursion, or a name check on a 16135 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 16136 // we can handle it either way. We first try for a name; if not found, process 16137 // the number. 16138 16139 case DMETA_COND_RNUMBER: 16140 goto __35 // (?(Rdigits) 16141 case DMETA_COND_NAME: 16142 goto __36 // (?(name) or (?'name') or ?(<name>) 16143 case DMETA_COND_RNAME: 16144 goto __37 16145 16146 // The DEFINE condition is always false. Its internal groups may never 16147 // be called, so matched_char must remain false, hence the jump to 16148 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 16149 16150 case DMETA_COND_DEFINE: 16151 goto __38 16152 16153 // Conditional test of a group's being set. 16154 16155 case DMETA_COND_NUMBER: 16156 goto __39 16157 16158 // Test for the PCRE2 version. 16159 16160 case DMETA_COND_VERSION: 16161 goto __40 16162 16163 // The condition is an assertion, possibly preceded by a callout. 16164 16165 case DMETA_COND_ASSERT: 16166 goto __41 16167 16168 // =================================================================== 16169 // Handle all kinds of nested bracketed groups. The non-capturing, 16170 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 16171 16172 case DMETA_LOOKAHEAD: 16173 goto __42 16174 16175 case DMETA_LOOKAHEAD_NA: 16176 goto __43 16177 16178 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 16179 // thing to do, but Perl allows all assertions to be quantified, and when 16180 // they contain capturing parentheses there may be a potential use for 16181 // this feature. Not that that applies to a quantified (?!) but we allow 16182 // it for uniformity. 16183 16184 case DMETA_LOOKAHEADNOT: 16185 goto __44 16186 16187 case DMETA_LOOKBEHIND: 16188 goto __45 16189 16190 case DMETA_LOOKBEHINDNOT: 16191 goto __46 16192 16193 case DMETA_LOOKBEHIND_NA: 16194 goto __47 16195 16196 case DMETA_ATOMIC: 16197 goto __48 16198 16199 case DMETA_SCRIPT_RUN: 16200 goto __49 16201 16202 case DMETA_NOCAPTURE: 16203 goto __50 // End of nested group handling 16204 16205 // =================================================================== 16206 // Handle named backreferences and recursions. 16207 16208 case DMETA_BACKREF_BYNAME: 16209 goto __51 16210 case DMETA_RECURSE_BYNAME: 16211 goto __52 16212 16213 // =================================================================== 16214 // Handle a numerical callout. 16215 16216 case DMETA_CALLOUT_NUMBER: 16217 goto __53 16218 16219 // =================================================================== 16220 // Handle a callout with a string argument. In the pre-pass we just compute 16221 // the length without generating anything. The length in pptr[3] includes both 16222 // delimiters; in the actual compile only the first one is copied, but a 16223 // terminating zero is added. Any doubled delimiters within the string make 16224 // this an overestimate, but it is not worth bothering about. 16225 16226 case DMETA_CALLOUT_STRING: 16227 goto __54 16228 16229 // =================================================================== 16230 // Handle repetition. The different types are all sorted out in the parsing 16231 // pass. 16232 16233 case DMETA_MINMAX_PLUS: 16234 goto __55 16235 case DMETA_MINMAX_QUERY: 16236 goto __56 16237 case DMETA_MINMAX: 16238 goto __57 16239 16240 case DMETA_ASTERISK: 16241 goto __58 16242 case DMETA_ASTERISK_PLUS: 16243 goto __59 16244 case DMETA_ASTERISK_QUERY: 16245 goto __60 16246 16247 case DMETA_PLUS: 16248 goto __61 16249 case DMETA_PLUS_PLUS: 16250 goto __62 16251 case DMETA_PLUS_QUERY: 16252 goto __63 16253 16254 case DMETA_QUERY: 16255 goto __64 16256 case DMETA_QUERY_PLUS: 16257 goto __65 16258 case DMETA_QUERY_QUERY: 16259 goto __66 16260 16261 // =================================================================== 16262 // Handle a 32-bit data character with a value greater than META_END. 16263 16264 case DMETA_BIGVALUE: 16265 goto __67 16266 16267 // =============================================================== 16268 // Handle a back reference by number, which is the meta argument. The 16269 // pattern offsets for back references to group numbers less than 10 are held 16270 // in a special vector, to avoid using more than two parsed pattern elements 16271 // in 64-bit environments. We only need the offset to the first occurrence, 16272 // because if that doesn't fail, subsequent ones will also be OK. 16273 16274 case DMETA_BACKREF: 16275 goto __68 16276 16277 // =============================================================== 16278 // Handle recursion by inserting the number of the called group (which is 16279 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 16280 // scanned and these numbers are replaced by offsets within the pattern. It is 16281 // done like this to avoid problems with forward references and adjusting 16282 // offsets when groups are duplicated and moved (as discovered in previous 16283 // implementations). Note that a recursion does not have a set first 16284 // character. 16285 16286 case DMETA_RECURSE: 16287 goto __69 16288 16289 // =============================================================== 16290 // Handle capturing parentheses; the number is the meta argument. 16291 16292 case DMETA_CAPTURE: 16293 goto __70 16294 16295 // =============================================================== 16296 // Handle escape sequence items. For ones like \d, the ESC_values are 16297 // arranged to be the same as the corresponding OP_values in the default case 16298 // when PCRE2_UCP is not set (which is the only case in which they will appear 16299 // here). 16300 // 16301 // Note: \Q and \E are never seen here, as they were dealt with in 16302 // parse_pattern(). Neither are numerical back references or recursions, which 16303 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 16304 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 16305 // META_RECURSE_BYNAME. 16306 16307 case DMETA_ESCAPE: 16308 goto __71 // End META_ESCAPE 16309 16310 // =================================================================== 16311 // Handle an unrecognized meta value. A parsed pattern value less than 16312 // META_END is a literal. Otherwise we have a problem. 16313 16314 default: 16315 goto __72 16316 } 16317 goto __12 16318 16319 // =================================================================== 16320 // The branch terminates at pattern end or | or ) 16321 16322 __13: 16323 __14: 16324 __15: 16325 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 16326 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 16327 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 16328 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 16329 *(*uintptr)(unsafe.Pointer(codeptr)) = code 16330 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) 16331 return okreturn 16332 16333 // =================================================================== 16334 // Handle single-character metacharacters. In multiline mode, ^ disables 16335 // the setting of any following char as a first character. 16336 16337 __16: 16338 if !(options&DPCRE2_MULTILINE != Tuint32_t(0)) { 16339 goto __73 16340 } 16341 16342 if !(firstcuflags == DREQ_UNSET) { 16343 goto __75 16344 } 16345 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 16346 __75: 16347 ; 16348 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRCM 16349 goto __74 16350 __73: 16351 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRC 16352 __74: 16353 ; 16354 goto __12 16355 16356 __17: 16357 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16358 if options&DPCRE2_MULTILINE != Tuint32_t(0) { 16359 return OP_DOLLM 16360 } 16361 return OP_DOLL 16362 }() 16363 goto __12 16364 16365 // There can never be a first char if '.' is first, whatever happens about 16366 // repeats. The value of reqcu doesn't change either. 16367 16368 __18: 16369 matched_char = DTRUE 16370 if !(firstcuflags == DREQ_UNSET) { 16371 goto __76 16372 } 16373 firstcuflags = DREQ_NONE 16374 __76: 16375 ; 16376 zerofirstcu = firstcu 16377 zerofirstcuflags = firstcuflags 16378 zeroreqcu = reqcu 16379 zeroreqcuflags = reqcuflags 16380 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16381 if options&DPCRE2_DOTALL != Tuint32_t(0) { 16382 return OP_ALLANY 16383 } 16384 return OP_ANY 16385 }() 16386 goto __12 16387 16388 // =================================================================== 16389 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16390 // Otherwise, an initial ']' is taken as a data character. When empty classes 16391 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16392 // match any character, so generate OP_ALLANY. 16393 16394 __19: 16395 __20: 16396 matched_char = DTRUE 16397 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16398 if meta == DMETA_CLASS_EMPTY_NOT { 16399 return OP_ALLANY 16400 } 16401 return OP_FAIL 16402 }() 16403 if !(firstcuflags == DREQ_UNSET) { 16404 goto __77 16405 } 16406 firstcuflags = DREQ_NONE 16407 __77: 16408 ; 16409 zerofirstcu = firstcu 16410 zerofirstcuflags = firstcuflags 16411 goto __12 16412 16413 // =================================================================== 16414 // Non-empty character class. If the included characters are all < 256, we 16415 // build a 32-byte bitmap of the permitted characters, except in the special 16416 // case where there is only one such character. For negated classes, we build 16417 // the map as usual, then invert it at the end. However, we use a different 16418 // opcode so that data characters > 255 can be handled correctly. 16419 // 16420 // If the class contains characters outside the 0-255 range, a different 16421 // opcode is compiled. It may optionally have a bit map for characters < 256, 16422 // but those above are are explicitly listed afterwards. A flag code unit 16423 // tells whether the bitmap is present, and whether this is a negated class or 16424 // not. 16425 16426 __21: 16427 __22: 16428 matched_char = DTRUE 16429 negate_class = libc.Bool32(meta == DMETA_CLASS_NOT) 16430 16431 // We can optimize the case of a single character in a class by generating 16432 // OP_CHAR or OP_CHARI if it's positive, or OP_NOT or OP_NOTI if it's 16433 // negative. In the negative case there can be no first char if this item is 16434 // first, whatever repeat count may follow. In the case of reqcu, save the 16435 // previous value for reinstating. 16436 16437 // NOTE: at present this optimization is not effective if the only 16438 // character in a class in 32-bit, non-UCP mode has its top bit set. 16439 16440 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) == DMETA_CLASS_END) { 16441 goto __78 16442 } 16443 16444 c = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) + 1*4)) 16445 16446 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) // Move on to class end 16447 if !(meta == DMETA_CLASS) { 16448 goto __79 16449 } /* A positive one-char class can be */ 16450 // handled as a normal literal character. 16451 meta = c // Set up the character 16452 goto NORMAL_CHAR_SET 16453 __79: 16454 ; 16455 16456 // Handle a negative one-character class 16457 16458 zeroreqcu = reqcu 16459 zeroreqcuflags = reqcuflags 16460 if !(firstcuflags == DREQ_UNSET) { 16461 goto __80 16462 } 16463 firstcuflags = DREQ_NONE 16464 __80: 16465 ; 16466 zerofirstcu = firstcu 16467 zerofirstcuflags = firstcuflags 16468 16469 // For caseless UTF or UCP mode, check whether this character has more 16470 // than one other case. If so, generate a special OP_NOTPROP item instead of 16471 // OP_NOTI. 16472 16473 if !((utf != 0 || ucp != 0) && options&DPCRE2_CASELESS != Tuint32_t(0) && libc.AssignUint32(&d, Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != Tuint32_t(0)) { 16474 goto __81 16475 } 16476 16477 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_NOTPROP 16478 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 16479 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(d) 16480 goto __12 // We are finished with this class 16481 __81: 16482 ; 16483 // Char has only one other case, or UCP not available 16484 16485 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16486 if options&DPCRE2_CASELESS != Tuint32_t(0) { 16487 return OP_NOTI 16488 } 16489 return OP_NOT 16490 }() 16491 code += func() uintptr { 16492 if utf != 0 && c > Tuint32_t(DMAX_UTF_SINGLE_CU) { 16493 return uintptr(X_pcre2_ord2utf_8(tls, c, code)) 16494 } 16495 return uintptr(func() int32 { *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(c); return 1 }()) 16496 }() 16497 goto __12 // We are finished with this class 16498 __78: 16499 ; // End of 1-char optimization 16500 16501 // Handle character classes that contain more than just one literal 16502 // character. If there are exactly two characters in a positive class, see if 16503 // they are case partners. This can be optimized to generate a caseless single 16504 // character match (which also sets first/required code units if relevant). 16505 16506 if !(meta == DMETA_CLASS && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3*4)) == DMETA_CLASS_END) { 16507 goto __82 16508 } 16509 16510 c1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) + 1*4)) 16511 16512 if !(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c1)%DUCD_BLOCK_SIZE])*12)).Fcaseset) == 0) { 16513 goto __83 16514 } 16515 16516 if !((utf != 0 || ucp != 0) && c1 > Tuint32_t(127)) { 16517 goto __84 16518 } 16519 d1 = Tuint32_t(int32(c1) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c1)%DUCD_BLOCK_SIZE])*12)).Fother_case) 16520 goto __85 16521 __84: 16522 16523 d1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(c1)))) 16524 __85: 16525 ; 16526 16527 if !(c1 != d1 && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) == d1) { 16528 goto __86 16529 } 16530 16531 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(3) // Move on to class end 16532 meta = c1 16533 if !(options&DPCRE2_CASELESS == Tuint32_t(0)) { 16534 goto __87 16535 } 16536 16537 reset_caseful = DTRUE 16538 options = options | DPCRE2_CASELESS 16539 req_caseopt = DREQ_CASELESS 16540 __87: 16541 ; 16542 goto CLASS_CASELESS_CHAR 16543 __86: 16544 ; 16545 __83: 16546 ; 16547 __82: 16548 ; 16549 16550 // If a non-extended class contains a negative special such as \S, we need 16551 // to flip the negation flag at the end, so that support for characters > 255 16552 // works correctly (they are all included in the class). An extended class may 16553 // need to insert specific matching or non-matching code for wide characters. 16554 // 16555 16556 should_flip_negation = libc.AssignInt32(&match_all_or_no_wide_chars, DFALSE) 16557 16558 // Extended class (xclass) will be used when characters > 255 16559 // might match. 16560 16561 xclass = DFALSE 16562 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = code + uintptr(DLINK_SIZE) + uintptr(2) // For XCLASS items 16563 class_uchardata_base = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) // Save the start 16564 16565 // For optimization purposes, we track some properties of the class: 16566 // class_has_8bitchar will be non-zero if the class contains at least one 16567 // character with a code point less than 256; xclass_has_prop will be TRUE if 16568 // Unicode property checks are present in the class. 16569 16570 class_has_8bitchar = 0 16571 xclass_has_prop = DFALSE 16572 16573 // Initialize the 256-bit (32-byte) bit map to all zeros. We build the map 16574 // in a temporary bit of memory, in case the class contains fewer than two 16575 // 8-bit characters because in that case the compiled code doesn't use the bit 16576 // map. 16577 16578 libc.Xmemset(tls, bp, 0, uint32(32)*uint32(unsafe.Sizeof(Tuint8_t(0)))) 16579 16580 // Process items until META_CLASS_END is reached. 16581 16582 __88: 16583 if !(libc.AssignUint32(&meta, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4)))) != DMETA_CLASS_END) { 16584 goto __89 16585 } 16586 16587 // Handle POSIX classes such as [:alpha:] etc. 16588 16589 if !(meta == DMETA_POSIX || meta == DMETA_POSIX_NEG) { 16590 goto __90 16591 } 16592 16593 local_negate = libc.Bool32(meta == DMETA_POSIX_NEG) 16594 posix_class = int32(*(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4)))) 16595 16596 should_flip_negation = local_negate // Note negative special 16597 16598 // If matching is caseless, upper and lower are converted to alpha. 16599 // This relies on the fact that the class table starts with alpha, 16600 // lower, upper as the first 3 entries. 16601 16602 if !(options&DPCRE2_CASELESS != Tuint32_t(0) && posix_class <= 2) { 16603 goto __91 16604 } 16605 posix_class = 0 16606 __91: 16607 ; 16608 16609 // When PCRE2_UCP is set, some of the POSIX classes are converted to 16610 // different escape sequences that use Unicode properties \p or \P. 16611 // Others that are not available via \p or \P have to generate 16612 // XCL_PROP/XCL_NOTPROP directly, which is done here. 16613 16614 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 16615 goto __92 16616 } 16617 switch posix_class { 16618 case DPC_GRAPH: 16619 goto __94 16620 case DPC_PRINT: 16621 goto __95 16622 case DPC_PUNCT: 16623 goto __96 16624 16625 // For the other POSIX classes (ascii, xdigit) we are going to 16626 // fall through to the non-UCP case and build a bit map for 16627 // characters with code points less than 256. However, if we are in 16628 // a negated POSIX class, characters with code points greater than 16629 // 255 must either all match or all not match, depending on whether 16630 // the whole class is not or is negated. For example, for 16631 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16632 // they must not. 16633 // 16634 // In the special case where there are no xclass items, this is 16635 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16636 // explicit range is needed for OP_XCLASS. Setting a flag here 16637 // causes the range to be generated later when it is known that 16638 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16639 // utf mode, since no wide characters can exist otherwise. 16640 16641 default: 16642 goto __97 16643 } 16644 goto __93 16645 16646 __94: 16647 __95: 16648 __96: 16649 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16650 if local_negate != 0 { 16651 return uint8(DXCL_NOTPROP) 16652 } 16653 return uint8(DXCL_PROP) 16654 }() 16655 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16656 if posix_class == DPC_GRAPH { 16657 return uint8(DPT_PXGRAPH) 16658 } 16659 return func() uint8 { 16660 if posix_class == DPC_PRINT { 16661 return uint8(DPT_PXPRINT) 16662 } 16663 return uint8(DPT_PXPUNCT) 16664 }() 16665 }() 16666 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(0) 16667 xclass_has_prop = DTRUE 16668 goto CONTINUE_CLASS 16669 16670 // For the other POSIX classes (ascii, xdigit) we are going to 16671 // fall through to the non-UCP case and build a bit map for 16672 // characters with code points less than 256. However, if we are in 16673 // a negated POSIX class, characters with code points greater than 16674 // 255 must either all match or all not match, depending on whether 16675 // the whole class is not or is negated. For example, for 16676 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16677 // they must not. 16678 // 16679 // In the special case where there are no xclass items, this is 16680 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16681 // explicit range is needed for OP_XCLASS. Setting a flag here 16682 // causes the range to be generated later when it is known that 16683 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16684 // utf mode, since no wide characters can exist otherwise. 16685 16686 __97: 16687 if !(utf != 0) { 16688 goto __98 16689 } 16690 match_all_or_no_wide_chars = match_all_or_no_wide_chars | local_negate 16691 __98: 16692 ; 16693 goto __93 16694 __93: 16695 ; 16696 __92: 16697 ; 16698 16699 // In the non-UCP case, or when UCP makes no difference, we build the 16700 // bit map for the POSIX class in a chunk of local store because we may 16701 // be adding and subtracting from it, and we don't want to subtract bits 16702 // that may be in the main map already. At the end we or the result into 16703 // the bit map that is being built. 16704 16705 posix_class = posix_class * 3 16706 16707 // Copy in the first table (always present) 16708 16709 libc.Xmemcpy(tls, bp+32, cbits+uintptr(posix_class_maps[posix_class]), 16710 uint32(32)*uint32(unsafe.Sizeof(Tuint8_t(0)))) 16711 16712 // If there is a second table, add or remove it as required. 16713 16714 taboffset = posix_class_maps[posix_class+1] 16715 tabopt = posix_class_maps[posix_class+2] 16716 16717 if !(taboffset >= 0) { 16718 goto __99 16719 } 16720 16721 if !(tabopt >= 0) { 16722 goto __100 16723 } 16724 { 16725 i = 0 16726 __102: 16727 if !(i < 32) { 16728 goto __104 16729 } 16730 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i+taboffset))))) 16731 goto __103 16732 __103: 16733 i++ 16734 goto __102 16735 goto __104 16736 __104: 16737 } 16738 goto __101 16739 __100: 16740 { 16741 i1 = 0 16742 __105: 16743 if !(i1 < 32) { 16744 goto __107 16745 } 16746 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i1))) &= Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i1+taboffset))))) 16747 goto __106 16748 __106: 16749 i1++ 16750 goto __105 16751 goto __107 16752 __107: 16753 } 16754 __101: 16755 ; 16756 __99: 16757 ; 16758 16759 // Now see if we need to remove any special characters. An option 16760 // value of 1 removes vertical space and 2 removes underscore. 16761 16762 if !(tabopt < 0) { 16763 goto __108 16764 } 16765 tabopt = -tabopt 16766 __108: 16767 ; 16768 if !(tabopt == 1) { 16769 goto __109 16770 } 16771 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 1)) &= libc.Uint8FromInt32(libc.CplInt32(0x3c)) 16772 goto __110 16773 __109: 16774 if !(tabopt == 2) { 16775 goto __111 16776 } 16777 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 11)) &= Tuint8_t(0x7f) 16778 __111: 16779 ; 16780 __110: 16781 ; 16782 16783 // Add the POSIX table or its complement into the main table that is 16784 // being built and we are done. 16785 16786 if !(local_negate != 0) { 16787 goto __112 16788 } 16789 { 16790 i2 = 0 16791 __114: 16792 if !(i2 < 32) { 16793 goto __116 16794 } 16795 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i2))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i2))))))) 16796 goto __115 16797 __115: 16798 i2++ 16799 goto __114 16800 goto __116 16801 __116: 16802 } 16803 goto __113 16804 __112: 16805 { 16806 i3 = 0 16807 __117: 16808 if !(i3 < 32) { 16809 goto __119 16810 } 16811 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i3))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i3))))) 16812 goto __118 16813 __118: 16814 i3++ 16815 goto __117 16816 goto __119 16817 __119: 16818 } 16819 __113: 16820 ; 16821 16822 // Every class contains at least one < 256 character. 16823 16824 class_has_8bitchar = 1 16825 goto CONTINUE_CLASS // End of POSIX handling 16826 __90: 16827 ; 16828 16829 // Other than POSIX classes, the only items we should encounter are 16830 // \d-type escapes and literal characters (possibly as ranges). 16831 16832 if !(meta == DMETA_BIGVALUE) { 16833 goto __120 16834 } 16835 16836 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 16837 goto CLASS_LITERAL 16838 __120: 16839 ; 16840 16841 // Any other non-literal must be an escape 16842 16843 if !(meta >= DMETA_END) { 16844 goto __121 16845 } 16846 16847 if !(meta&0xffff0000 != DMETA_ESCAPE) { 16848 goto __123 16849 } 16850 16851 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 16852 return 0 16853 __123: 16854 ; 16855 escape = meta & 0x0000ffff 16856 16857 // Every class contains at least one < 256 character. 16858 16859 class_has_8bitchar++ 16860 16861 switch escape { 16862 case ESC_d: 16863 goto __125 16864 16865 case ESC_D: 16866 goto __126 16867 16868 case ESC_w: 16869 goto __127 16870 16871 case ESC_W: 16872 goto __128 16873 16874 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 16875 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 16876 // previously set by something earlier in the character class. 16877 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 16878 // we could just adjust the appropriate bit. From PCRE 8.34 we no 16879 // longer treat \s and \S specially. 16880 16881 case ESC_s: 16882 goto __129 16883 16884 case ESC_S: 16885 goto __130 16886 16887 // When adding the horizontal or vertical space lists to a class, or 16888 // their complements, disable PCRE2_CASELESS, because it justs wastes 16889 // time, and in the "not-x" UTF cases can create unwanted duplicates in 16890 // the XCLASS list (provoked by characters that have more than one other 16891 // case and by both cases being in the same "not-x" sublist). 16892 16893 case ESC_h: 16894 goto __131 16895 16896 case ESC_H: 16897 goto __132 16898 16899 case ESC_v: 16900 goto __133 16901 16902 case ESC_V: 16903 goto __134 16904 16905 // If Unicode is not supported, \P and \p are not allowed and are 16906 // faulted at parse time, so will never appear here. 16907 16908 case ESC_p: 16909 goto __135 16910 case ESC_P: 16911 goto __136 16912 } 16913 goto __124 16914 16915 __125: 16916 { 16917 i4 = 0 16918 __137: 16919 if !(i4 < 32) { 16920 goto __139 16921 } 16922 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i4))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i4+Dcbit_digit))))) 16923 goto __138 16924 __138: 16925 i4++ 16926 goto __137 16927 goto __139 16928 __139: 16929 } 16930 goto __124 16931 16932 __126: 16933 should_flip_negation = DTRUE 16934 { 16935 i5 = 0 16936 __140: 16937 if !(i5 < 32) { 16938 goto __142 16939 } 16940 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i5))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i5+Dcbit_digit))))))) 16941 goto __141 16942 __141: 16943 i5++ 16944 goto __140 16945 goto __142 16946 __142: 16947 } 16948 goto __124 16949 16950 __127: 16951 { 16952 i6 = 0 16953 __143: 16954 if !(i6 < 32) { 16955 goto __145 16956 } 16957 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i6))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i6+Dcbit_word))))) 16958 goto __144 16959 __144: 16960 i6++ 16961 goto __143 16962 goto __145 16963 __145: 16964 } 16965 goto __124 16966 16967 __128: 16968 should_flip_negation = DTRUE 16969 { 16970 i7 = 0 16971 __146: 16972 if !(i7 < 32) { 16973 goto __148 16974 } 16975 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i7))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i7+Dcbit_word))))))) 16976 goto __147 16977 __147: 16978 i7++ 16979 goto __146 16980 goto __148 16981 __148: 16982 } 16983 goto __124 16984 16985 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 16986 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 16987 // previously set by something earlier in the character class. 16988 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 16989 // we could just adjust the appropriate bit. From PCRE 8.34 we no 16990 // longer treat \s and \S specially. 16991 16992 __129: 16993 { 16994 i8 = 0 16995 __149: 16996 if !(i8 < 32) { 16997 goto __151 16998 } 16999 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i8))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i8+Dcbit_space))))) 17000 goto __150 17001 __150: 17002 i8++ 17003 goto __149 17004 goto __151 17005 __151: 17006 } 17007 goto __124 17008 17009 __130: 17010 should_flip_negation = DTRUE 17011 { 17012 i9 = 0 17013 __152: 17014 if !(i9 < 32) { 17015 goto __154 17016 } 17017 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i9))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i9+Dcbit_space))))))) 17018 goto __153 17019 __153: 17020 i9++ 17021 goto __152 17022 goto __154 17023 __154: 17024 } 17025 goto __124 17026 17027 // When adding the horizontal or vertical space lists to a class, or 17028 // their complements, disable PCRE2_CASELESS, because it justs wastes 17029 // time, and in the "not-x" UTF cases can create unwanted duplicates in 17030 // the XCLASS list (provoked by characters that have more than one other 17031 // case and by both cases being in the same "not-x" sublist). 17032 17033 __131: 17034 add_list_to_class(tls, bp, bp+64, 17035 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8)), DNOTACHAR) 17036 goto __124 17037 17038 __132: 17039 add_not_list_to_class(tls, bp, bp+64, 17040 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8))) 17041 goto __124 17042 17043 __133: 17044 add_list_to_class(tls, bp, bp+64, 17045 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8)), DNOTACHAR) 17046 goto __124 17047 17048 __134: 17049 add_not_list_to_class(tls, bp, bp+64, 17050 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8))) 17051 goto __124 17052 17053 // If Unicode is not supported, \P and \p are not allowed and are 17054 // faulted at parse time, so will never appear here. 17055 17056 __135: 17057 __136: 17058 17059 ptype = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) >> 16 17060 pdata = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) & Tuint32_t(0xffff) 17061 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 17062 if escape == ESC_p { 17063 return uint8(DXCL_PROP) 17064 } 17065 return uint8(DXCL_NOTPROP) 17066 }() 17067 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(ptype) 17068 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(pdata) 17069 xclass_has_prop = DTRUE 17070 class_has_8bitchar-- // Undo! 17071 17072 goto __124 17073 __124: 17074 ; 17075 17076 goto CONTINUE_CLASS 17077 goto __122 17078 __121: 17079 17080 CLASS_LITERAL: 17081 c2 = libc.AssignUint32(&d2, meta) 17082 17083 // Remember if \r or \n were explicitly used 17084 17085 if !(c2 == Tuint32_t('\015') || c2 == Tuint32_t('\012')) { 17086 goto __155 17087 } 17088 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASCRORLF) 17089 __155: 17090 ; 17091 17092 // Process a character range 17093 17094 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) == DMETA_RANGE_LITERAL || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) == DMETA_RANGE_ESCAPED) { 17095 goto __156 17096 } 17097 17098 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 17099 d2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)))) 17100 if !(d2 == DMETA_BIGVALUE) { 17101 goto __157 17102 } 17103 d2 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 17104 __157: 17105 ; 17106 17107 // Remember an explicit \r or \n, and add the range to the class. 17108 17109 if !(d2 == Tuint32_t('\015') || d2 == Tuint32_t('\012')) { 17110 goto __158 17111 } 17112 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASCRORLF) 17113 __158: 17114 ; 17115 17116 // In an EBCDIC environment, Perl treats alphabetic ranges specially 17117 // because there are holes in the encoding, and simply using the range 17118 // A-Z (for example) would include the characters in the holes. This 17119 // applies only to literal ranges; [\xC1-\xE9] is different to [A-Z]. 17120 17121 // Not an EBCDIC special range 17122 17123 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, c2, d2)) 17124 goto CONTINUE_CLASS // Go get the next char in the class 17125 __156: 17126 ; // End of range handling 17127 17128 // Handle a single character. 17129 17130 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, meta, meta)) 17131 __122: 17132 ; 17133 17134 // Continue to the next item in the class. 17135 17136 CONTINUE_CLASS: 17137 17138 // If any wide characters or Unicode properties have been encountered, 17139 // set xclass = TRUE. Then, in the pre-compile phase, accumulate the length 17140 // of the extra data and reset the pointer. This is so that very large 17141 // classes that contain a zillion wide characters or Unicode property tests 17142 // do not overwrite the workspace (which is on the stack). 17143 17144 if !(*(*uintptr)(unsafe.Pointer(bp + 64)) > class_uchardata_base) { 17145 goto __159 17146 } 17147 17148 xclass = DTRUE 17149 if !(lengthptr != uintptr(0)) { 17150 goto __160 17151 } 17152 17153 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int32(*(*uintptr)(unsafe.Pointer(bp + 64))) - int32(class_uchardata_base)) / 1) 17154 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = class_uchardata_base 17155 __160: 17156 ; 17157 __159: 17158 ; 17159 17160 goto __88 // Needed to avoid error when not supporting wide chars 17161 goto __88 17162 __89: 17163 ; // End of main class-processing loop 17164 17165 // If this class is the first thing in the branch, there can be no first 17166 // char setting, whatever the repeat count. Any reqcu setting must remain 17167 // unchanged after any kind of repeat. 17168 17169 if !(firstcuflags == DREQ_UNSET) { 17170 goto __161 17171 } 17172 firstcuflags = DREQ_NONE 17173 __161: 17174 ; 17175 zerofirstcu = firstcu 17176 zerofirstcuflags = firstcuflags 17177 zeroreqcu = reqcu 17178 zeroreqcuflags = reqcuflags 17179 17180 // If there are characters with values > 255, or Unicode property settings 17181 // (\p or \P), we have to compile an extended class, with its own opcode, 17182 // unless there were no property settings and there was a negated special such 17183 // as \S in the class, and PCRE2_UCP is not set, because in that case all 17184 // characters > 255 are in or not in the class, so any that were explicitly 17185 // given as well can be ignored. 17186 // 17187 // In the UCP case, if certain negated POSIX classes ([:^ascii:] or 17188 // [^:xdigit:]) were present in a class, we either have to match or not match 17189 // all wide characters (depending on whether the whole class is or is not 17190 // negated). This requirement is indicated by match_all_or_no_wide_chars being 17191 // true. We do this by including an explicit range, which works in both cases. 17192 // This applies only in UTF and 16-bit and 32-bit non-UTF modes, since there 17193 // cannot be any wide characters in 8-bit non-UTF mode. 17194 // 17195 // When there *are* properties in a positive UTF-8 or any 16-bit or 32_bit 17196 // class where \S etc is present without PCRE2_UCP, causing an extended class 17197 // to be compiled, we make sure that all characters > 255 are included by 17198 // forcing match_all_or_no_wide_chars to be true. 17199 // 17200 // If, when generating an xclass, there are no characters < 256, we can omit 17201 // the bitmap in the actual compiled code. 17202 17203 if !(xclass != 0 && (options&DPCRE2_UCP != Tuint32_t(0) || xclass_has_prop != 0 || !(should_flip_negation != 0))) { 17204 goto __162 17205 } 17206 17207 if !(match_all_or_no_wide_chars != 0 || utf != 0 && should_flip_negation != 0 && !(negate_class != 0) && options&DPCRE2_UCP == Tuint32_t(0)) { 17208 goto __163 17209 } 17210 17211 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 17212 if !(utf != 0) { 17213 goto __164 17214 } /* Will always be utf in the 8-bit library */ 17215 17216 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) += uintptr(X_pcre2_ord2utf_8(tls, uint32(0x100), *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)))) 17217 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) += uintptr(X_pcre2_ord2utf_8(tls, uint32(DMAX_UTF_CODE_POINT), *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)))) 17218 goto __165 17219 __164: /* Can only happen for the 16-bit & 32-bit libraries */ 17220 17221 ; 17222 __165: 17223 ; 17224 __163: 17225 ; 17226 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_END) // Marks the end of extra data 17227 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_XCLASS 17228 code += uintptr(DLINK_SIZE) 17229 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = func() uint8 { 17230 if negate_class != 0 { 17231 return uint8(DXCL_NOT) 17232 } 17233 return uint8(0) 17234 }() 17235 if !(xclass_has_prop != 0) { 17236 goto __166 17237 } 17238 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) |= TPCRE2_UCHAR8(DXCL_HASPROP) 17239 __166: 17240 ; 17241 17242 // If the map is required, move up the extra data to make room for it; 17243 // otherwise just move the code pointer to the end of the extra data. 17244 17245 if !(class_has_8bitchar > 0) { 17246 goto __167 17247 } 17248 17249 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) |= TPCRE2_UCHAR8(DXCL_MAP) 17250 libc.Xmemmove(tls, code+uintptr(uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), code, 17251 uint32((int32(*(*uintptr)(unsafe.Pointer(bp + 64)))-int32(code))/1*(DPCRE2_CODE_UNIT_WIDTH/8))) 17252 if !(negate_class != 0 && !(xclass_has_prop != 0)) { 17253 goto __169 17254 } 17255 17256 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17257 { 17258 i10 = 0 17259 __170: 17260 if !(i10 < 32) { 17261 goto __172 17262 } 17263 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))))) 17264 goto __171 17265 __171: 17266 i10++ 17267 goto __170 17268 goto __172 17269 __172: 17270 } 17271 __169: 17272 ; 17273 libc.Xmemcpy(tls, code, bp, uint32(32)) 17274 code = *(*uintptr)(unsafe.Pointer(bp + 64)) + uintptr(uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17275 goto __168 17276 __167: 17277 code = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) 17278 __168: 17279 ; 17280 17281 // Now fill in the complete length of the item 17282 17283 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32((int32(code)-int32(previous))/1) >> 8) 17284 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8(int32((int32(code)-int32(previous))/1) & 255) 17285 goto __12 // End of class handling 17286 __162: 17287 ; 17288 17289 // If there are no characters > 255, or they are all to be included or 17290 // excluded, set the opcode to OP_CLASS or OP_NCLASS, depending on whether the 17291 // whole class was negated and whether there were negative specials such as \S 17292 // (non-UCP) in the class. Then copy the 32-byte map into the code vector, 17293 // negating it if necessary. 17294 17295 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17296 if negate_class == should_flip_negation { 17297 return OP_CLASS 17298 } 17299 return OP_NCLASS 17300 }() 17301 if !(lengthptr == uintptr(0)) { 17302 goto __173 17303 } /* Save time in the pre-compile phase */ 17304 17305 if !(negate_class != 0) { 17306 goto __174 17307 } 17308 17309 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17310 { 17311 i11 = 0 17312 __175: 17313 if !(i11 < 32) { 17314 goto __177 17315 } 17316 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))))) 17317 goto __176 17318 __176: 17319 i11++ 17320 goto __175 17321 goto __177 17322 __177: 17323 } 17324 __174: 17325 ; 17326 libc.Xmemcpy(tls, code, bp, uint32(32)) 17327 __173: 17328 ; 17329 code += uintptr(uint32(32) / uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17330 goto __12 // End of class processing 17331 17332 // =================================================================== 17333 // Deal with (*VERB)s. 17334 17335 // Check for open captures before ACCEPT and close those that are within 17336 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 17337 // assertion. In the first pass, just accumulate the length required; 17338 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 17339 // workspace overflow. Do not set firstcu after *ACCEPT. 17340 17341 __23: 17342 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_accept = libc.AssignInt32(&had_accept, DTRUE) 17343 oc = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 17344 __178: 17345 if !(oc != uintptr(0) && int32((*Topen_capitem)(unsafe.Pointer(oc)).Fassert_depth) >= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth)) { 17346 goto __180 17347 } 17348 17349 if !(lengthptr != uintptr(0)) { 17350 goto __181 17351 } 17352 17353 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(1*(DPCRE2_CODE_UNIT_WIDTH/8) + DIMM2_SIZE) 17354 goto __182 17355 __181: 17356 17357 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CLOSE 17358 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) >> 8) 17359 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) & 255) 17360 code += uintptr(DIMM2_SIZE) 17361 __182: 17362 ; 17363 goto __179 17364 __179: 17365 oc = (*Topen_capitem)(unsafe.Pointer(oc)).Fnext 17366 goto __178 17367 goto __180 17368 __180: 17369 ; 17370 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17371 if int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth) > 0 { 17372 return OP_ASSERT_ACCEPT 17373 } 17374 return OP_ACCEPT 17375 }() 17376 if !(firstcuflags == DREQ_UNSET) { 17377 goto __183 17378 } 17379 firstcuflags = DREQ_NONE 17380 __183: 17381 ; 17382 goto __12 17383 17384 __24: 17385 __25: 17386 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17387 // Fall through 17388 __26: 17389 __27: 17390 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17391 goto __12 17392 17393 __28: 17394 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASTHEN) 17395 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_THEN 17396 goto __12 17397 17398 // Handle verbs with arguments. Arguments can be very long, especially in 17399 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 17400 // However, the argument length is constrained to be small enough to fit in 17401 // one code unit. This check happens in parse_regex(). In the first pass, 17402 // instead of putting the argument into memory, we just update the length 17403 // counter and set up an empty argument. 17404 17405 __29: 17406 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASTHEN) 17407 goto VERB_ARG 17408 17409 __30: 17410 __31: 17411 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17412 // Fall through 17413 __32: 17414 __33: 17415 VERB_ARG: 17416 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17417 // The length is in characters. 17418 verbarglen = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 17419 verbculen = Tuint32_t(0) 17420 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) = libc.PostIncUintptr(&code, 1) 17421 { 17422 i17 = 0 17423 __184: 17424 if !(i17 < int32(verbarglen)) { 17425 goto __186 17426 } 17427 17428 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 17429 if !(utf != 0) { 17430 goto __187 17431 } 17432 mclength = X_pcre2_ord2utf_8(tls, meta, bp+68) 17433 goto __188 17434 __187: 17435 17436 mclength = Tuint32_t(1) 17437 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68)) = TPCRE2_UCHAR8(meta) 17438 __188: 17439 ; 17440 if !(lengthptr != uintptr(0)) { 17441 goto __189 17442 } 17443 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(mclength) 17444 goto __190 17445 __189: 17446 17447 libc.Xmemcpy(tls, code, bp+68, uint32(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 17448 code += uintptr(mclength) 17449 verbculen = verbculen + mclength 17450 __190: 17451 ; 17452 goto __185 17453 __185: 17454 i17++ 17455 goto __184 17456 goto __186 17457 __186: 17458 } 17459 17460 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)))) = TPCRE2_UCHAR8(verbculen) // Fill in the code unit length 17461 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(0) // Terminating zero 17462 goto __12 17463 17464 // =================================================================== 17465 // Handle options change. The new setting must be passed back for use in 17466 // subsequent branches. Reset the greedy defaults and the case value for 17467 // firstcu and reqcu. 17468 17469 __34: 17470 *(*Tuint32_t)(unsafe.Pointer(optionsptr)) = libc.AssignUint32(&options, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4)))) 17471 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 17472 greedy_non_default = greedy_default ^ Tuint32_t(1) 17473 if options&DPCRE2_CASELESS != Tuint32_t(0) { 17474 req_caseopt = DREQ_CASELESS 17475 } else { 17476 req_caseopt = uint32(0) 17477 } 17478 goto __12 17479 17480 // =================================================================== 17481 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 17482 // because it could be a numerical check on recursion, or a name check on a 17483 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 17484 // we can handle it either way. We first try for a name; if not found, process 17485 // the number. 17486 17487 __35: // (?(Rdigits) 17488 __36: // (?(name) or (?'name') or ?(<name>) 17489 __37: // (?(R&name) - test for recursion 17490 bravalue = OP_COND 17491 17492 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 17493 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 17494 17495 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 17496 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 17497 17498 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 17499 17500 // In the first pass, the names generated in the pre-pass are available, 17501 // but the main name table has not yet been created. Scan the list of names 17502 // generated in the pre-pass in order to get a number and whether or not 17503 // this name is duplicated. If it is not duplicated, we can handle it as a 17504 // numerical group. 17505 17506 i12 = uint32(0) 17507 __191: 17508 if !(i12 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17509 goto __193 17510 } 17511 17512 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint32(length)) == 0) { 17513 goto __194 17514 } 17515 17516 if !!(int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) != 0) { 17517 goto __195 17518 } 17519 17520 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17521 if meta == DMETA_COND_RNAME { 17522 return OP_RREF 17523 } 17524 return OP_CREF 17525 }() 17526 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber >> 8) 17527 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber & Tuint32_t(255)) 17528 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17529 goto __196 17530 } 17531 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 17532 __196: 17533 ; 17534 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17535 goto GROUP_PROCESS_NOTE_EMPTY 17536 __195: 17537 ; 17538 goto __193 // Found a duplicated name 17539 __194: 17540 ; 17541 goto __192 17542 __192: 17543 i12++ 17544 ng += 12 17545 goto __191 17546 goto __193 17547 __193: 17548 ; 17549 17550 // If the name was not found we have a bad reference, unless we are 17551 // dealing with R<digits>, which is treated as a recursion test by number. 17552 // 17553 17554 if !(i12 >= uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17555 goto __197 17556 } 17557 17558 groupnumber = Tuint32_t(0) 17559 if !(meta == DMETA_COND_RNUMBER) { 17560 goto __198 17561 } 17562 17563 i12 = uint32(1) 17564 __199: 17565 if !(i12 < length) { 17566 goto __201 17567 } 17568 17569 groupnumber = groupnumber*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(name + uintptr(i12)))) - Tuint32_t('\060') 17570 if !(groupnumber > DMAX_GROUP_NUMBER) { 17571 goto __202 17572 } 17573 17574 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 17575 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset + Tsize_t(i12) 17576 return 0 17577 __202: 17578 ; 17579 goto __200 17580 __200: 17581 i12++ 17582 goto __199 17583 goto __201 17584 __201: 17585 ; 17586 __198: 17587 ; 17588 17589 if !(meta != DMETA_COND_RNUMBER || groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17590 goto __203 17591 } 17592 17593 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17594 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17595 return 0 17596 __203: 17597 ; 17598 17599 // (?Rdigits) treated as a recursion reference by number. A value of 17600 // zero (which is the result of both (?R) and (?R0)) means "any", and is 17601 // translated into RREF_ANY (which is 0xffff). 17602 17603 if !(groupnumber == Tuint32_t(0)) { 17604 goto __204 17605 } 17606 groupnumber = Tuint32_t(DRREF_ANY) 17607 __204: 17608 ; 17609 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_RREF 17610 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17611 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17612 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17613 goto GROUP_PROCESS_NOTE_EMPTY 17614 __197: 17615 ; 17616 17617 // A duplicated name was found. Note that if an R<digits> name is found 17618 // (META_COND_RNUMBER), it is a reference test, not a recursion test. 17619 17620 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17621 if meta == DMETA_COND_RNAME { 17622 return OP_RREF 17623 } 17624 return OP_CREF 17625 }() 17626 17627 // We have a duplicated name. In the compile pass we have to search the 17628 // main table in order to get the index and count values. 17629 17630 *(*int32)(unsafe.Pointer(bp + 80 /* count */)) = 0 // Values for first pass (avoids compiler warning) 17631 *(*int32)(unsafe.Pointer(bp + 76 /* index */)) = 0 17632 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name, length, bp+76, 17633 bp+80, errorcodeptr, cb) != 0)) { 17634 goto __205 17635 } 17636 return 0 17637 __205: 17638 ; 17639 17640 // Add one to the opcode to change CREF/RREF into DNCREF/DNRREF and 17641 // insert appropriate data values. 17642 17643 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))++ 17644 skipunits = Tuint32_t(1 + 2*DIMM2_SIZE) 17645 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 76)) >> 8) 17646 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 76)) & 255) 17647 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) >> 8) 17648 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) & 255) 17649 17650 goto GROUP_PROCESS_NOTE_EMPTY 17651 17652 // The DEFINE condition is always false. Its internal groups may never 17653 // be called, so matched_char must remain false, hence the jump to 17654 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 17655 17656 __38: 17657 bravalue = OP_COND 17658 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 17659 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 17660 17661 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_DEFINE 17662 skipunits = Tuint32_t(1) 17663 goto GROUP_PROCESS 17664 17665 // Conditional test of a group's being set. 17666 17667 __39: 17668 bravalue = OP_COND 17669 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 17670 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 17671 17672 groupnumber = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 17673 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17674 goto __206 17675 } 17676 17677 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17678 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17679 return 0 17680 __206: 17681 ; 17682 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17683 goto __207 17684 } 17685 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 17686 __207: 17687 ; 17688 offset = offset - Tsize_t(2) // Point at initial ( for too many branches error 17689 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_CREF 17690 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17691 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17692 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17693 goto GROUP_PROCESS_NOTE_EMPTY 17694 17695 // Test for the PCRE2 version. 17696 17697 __40: 17698 bravalue = OP_COND 17699 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) > Tuint32_t(0)) { 17700 goto __208 17701 } 17702 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17703 if Tuint32_t(DPCRE2_MAJOR) > *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) || Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) >= *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3*4)) { 17704 return OP_TRUE 17705 } 17706 return OP_FALSE 17707 }() 17708 goto __209 17709 __208: 17710 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17711 if Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3*4)) { 17712 return OP_TRUE 17713 } 17714 return OP_FALSE 17715 }() 17716 __209: 17717 ; 17718 skipunits = Tuint32_t(1) 17719 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(3) 17720 goto GROUP_PROCESS_NOTE_EMPTY 17721 17722 // The condition is an assertion, possibly preceded by a callout. 17723 17724 __41: 17725 bravalue = OP_COND 17726 goto GROUP_PROCESS_NOTE_EMPTY 17727 17728 // =================================================================== 17729 // Handle all kinds of nested bracketed groups. The non-capturing, 17730 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 17731 17732 __42: 17733 bravalue = OP_ASSERT 17734 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17735 goto GROUP_PROCESS 17736 17737 __43: 17738 bravalue = OP_ASSERT_NA 17739 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17740 goto GROUP_PROCESS 17741 17742 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 17743 // thing to do, but Perl allows all assertions to be quantified, and when 17744 // they contain capturing parentheses there may be a potential use for 17745 // this feature. Not that that applies to a quantified (?!) but we allow 17746 // it for uniformity. 17747 17748 __44: 17749 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) == DMETA_KET && (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) < DMETA_ASTERISK || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) > DMETA_MINMAX_QUERY)) { 17750 goto __210 17751 } 17752 17753 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_FAIL 17754 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 17755 goto __211 17756 __210: 17757 17758 bravalue = OP_ASSERT_NOT 17759 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17760 goto GROUP_PROCESS 17761 __211: 17762 ; 17763 goto __12 17764 17765 __45: 17766 bravalue = OP_ASSERTBACK 17767 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17768 goto GROUP_PROCESS 17769 17770 __46: 17771 bravalue = OP_ASSERTBACK_NOT 17772 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17773 goto GROUP_PROCESS 17774 17775 __47: 17776 bravalue = OP_ASSERTBACK_NA 17777 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) += Tuint16_t(1) 17778 goto GROUP_PROCESS 17779 17780 __48: 17781 bravalue = OP_ONCE 17782 goto GROUP_PROCESS_NOTE_EMPTY 17783 17784 __49: 17785 bravalue = OP_SCRIPT_RUN 17786 goto GROUP_PROCESS_NOTE_EMPTY 17787 17788 __50: 17789 bravalue = OP_BRA 17790 // Fall through 17791 17792 // Process nested bracketed regex. The nesting depth is maintained for the 17793 // benefit of the stackguard function. The test for too deep nesting is now 17794 // done in parse_regex(). Assertion and DEFINE groups come to GROUP_PROCESS; 17795 // others come to GROUP_PROCESS_NOTE_EMPTY, to indicate that we need to take 17796 // note of whether or not they may match an empty string. 17797 17798 GROUP_PROCESS_NOTE_EMPTY: 17799 note_group_empty = DTRUE 17800 17801 GROUP_PROCESS: 17802 *(*Tuint16_t)(unsafe.Pointer(cb + 92)) += Tuint16_t(1) 17803 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(bravalue) 17804 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 17805 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) = code 17806 tempreqvary = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt // Save value before group 17807 *(*Tsize_t)(unsafe.Pointer(bp + 108 /* length_prevgroup */)) = Tsize_t(0) // Initialize for pre-compile phase 17808 17809 if !(libc.AssignInt32(&group_return, compile_regex(tls, 17810 options, 17811 bp+84, 17812 bp+88, 17813 errorcodeptr, 17814 skipunits, 17815 bp+92, 17816 bp+96, 17817 bp+100, 17818 bp+104, 17819 bcptr, 17820 cb, 17821 func() uintptr { 17822 if lengthptr == uintptr(0) { 17823 return uintptr(0) 17824 } 17825 return bp + 108 17826 }())) == 0) { 17827 goto __212 17828 } 17829 return 0 17830 __212: 17831 ; // Error 17832 17833 *(*Tuint16_t)(unsafe.Pointer(cb + 92)) -= Tuint16_t(1) 17834 17835 // If that was a non-conditional significant group (not an assertion, not a 17836 // DEFINE) that matches at least one character, then the current item matches 17837 // a character. Conditionals are handled below. 17838 17839 if !(note_group_empty != 0 && bravalue != OP_COND && group_return > 0) { 17840 goto __213 17841 } 17842 matched_char = DTRUE 17843 __213: 17844 ; 17845 17846 // If we've just compiled an assertion, pop the assert depth. 17847 17848 if !(bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NA) { 17849 goto __214 17850 } 17851 *(*Tuint16_t)(unsafe.Pointer(cb + 94)) -= Tuint16_t(1) 17852 __214: 17853 ; 17854 17855 // At the end of compiling, code is still pointing to the start of the 17856 // group, while tempcode has been updated to point past the end of the group. 17857 // The parsed pattern pointer (pptr) is on the closing META_KET. 17858 // 17859 // If this is a conditional bracket, check that there are no more than 17860 // two branches in the group, or just one if it's a DEFINE group. We do this 17861 // in the real compile phase, not in the pre-pass, where the whole group may 17862 // not be available. 17863 17864 if !(bravalue == OP_COND && lengthptr == uintptr(0)) { 17865 goto __215 17866 } 17867 17868 tc = code 17869 condcount = 0 17870 17871 __216: 17872 condcount++ 17873 tc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 2))))) 17874 goto __217 17875 __217: 17876 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc))) != OP_KET { 17877 goto __216 17878 } 17879 goto __218 17880 __218: 17881 ; 17882 17883 // A DEFINE group is never obeyed inline (the "condition" is always 17884 // false). It must have only one branch. Having checked this, change the 17885 // opcode to OP_FALSE. 17886 17887 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_DEFINE) { 17888 goto __219 17889 } 17890 17891 if !(condcount > 1) { 17892 goto __221 17893 } 17894 17895 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17896 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR54 17897 return 0 17898 __221: 17899 ; 17900 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_FALSE 17901 bravalue = OP_DEFINE // A flag to suppress char handling below 17902 goto __220 17903 __219: 17904 17905 if !(condcount > 2) { 17906 goto __222 17907 } 17908 17909 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17910 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR27 17911 return 0 17912 __222: 17913 ; 17914 if !(condcount == 1) { 17915 goto __223 17916 } 17917 *(*Tuint32_t)(unsafe.Pointer(bp + 96 /* subfirstcuflags */)) = libc.AssignPtrUint32(bp+104 /* subreqcuflags */, DREQ_NONE) 17918 goto __224 17919 __223: 17920 if !(group_return > 0) { 17921 goto __225 17922 } 17923 matched_char = DTRUE 17924 __225: 17925 ; 17926 __224: 17927 ; 17928 __220: 17929 ; 17930 __215: 17931 ; 17932 17933 // In the pre-compile phase, update the length by the length of the group, 17934 // less the brackets at either end. Then reduce the compiled code to just a 17935 // set of non-capturing brackets so that it doesn't use much memory if it is 17936 // duplicated by a quantifier. 17937 17938 if !(lengthptr != uintptr(0)) { 17939 goto __226 17940 } 17941 17942 if !(Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 108))-Tsize_t(2)-Tsize_t(2*DLINK_SIZE)) { 17943 goto __227 17944 } 17945 17946 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 17947 return 0 17948 __227: 17949 ; 17950 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 108)) - Tsize_t(2) - Tsize_t(2*DLINK_SIZE) 17951 code++ // This already contains bravalue 17952 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17953 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17954 code += uintptr(DLINK_SIZE) 17955 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 17956 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17957 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17958 code += uintptr(DLINK_SIZE) 17959 goto __12 // No need to waste time with special character handling 17960 __226: 17961 ; 17962 17963 // Otherwise update the main code pointer to the end of the group. 17964 17965 code = *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) 17966 17967 // For a DEFINE group, required and first character settings are not 17968 // relevant. 17969 17970 if !(bravalue == OP_DEFINE) { 17971 goto __228 17972 } 17973 goto __12 17974 __228: 17975 ; 17976 17977 // Handle updating of the required and first code units for other types of 17978 // group. Update for normal brackets of all kinds, and conditions with two 17979 // branches (see code above). If the bracket is followed by a quantifier with 17980 // zero repeat, we have to back off. Hence the definition of zeroreqcu and 17981 // zerofirstcu outside the main loop so that they can be accessed for the back 17982 // off. 17983 17984 zeroreqcu = reqcu 17985 zeroreqcuflags = reqcuflags 17986 zerofirstcu = firstcu 17987 zerofirstcuflags = firstcuflags 17988 groupsetfirstcu = DFALSE 17989 17990 if !(bravalue >= OP_ONCE) { 17991 goto __229 17992 } /* Not an assertion */ 17993 17994 // If we have not yet set a firstcu in this branch, take it from the 17995 // subpattern, remembering that it was set here so that a repeat of more 17996 // than one can replicate it as reqcu if necessary. If the subpattern has 17997 // no firstcu, set "none" for the whole branch. In both cases, a zero 17998 // repeat forces firstcu to "none". 17999 18000 if !(firstcuflags == DREQ_UNSET && *(*Tuint32_t)(unsafe.Pointer(bp + 96)) != DREQ_UNSET) { 18001 goto __231 18002 } 18003 18004 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 96)) < DREQ_NONE) { 18005 goto __233 18006 } 18007 18008 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 92 /* subfirstcu */)) 18009 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 96 /* subfirstcuflags */)) 18010 groupsetfirstcu = DTRUE 18011 goto __234 18012 __233: 18013 firstcuflags = DREQ_NONE 18014 __234: 18015 ; 18016 zerofirstcuflags = DREQ_NONE 18017 goto __232 18018 __231: 18019 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 96)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 104)) >= DREQ_NONE) { 18020 goto __235 18021 } 18022 18023 *(*Tuint32_t)(unsafe.Pointer(bp + 100 /* subreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 92 /* subfirstcu */)) 18024 *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 96)) | tempreqvary 18025 __235: 18026 ; 18027 __232: 18028 ; 18029 18030 // If the subpattern set a required code unit (or set a first code unit 18031 // that isn't really the first code unit - see above), set it. 18032 18033 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 104)) < DREQ_NONE) { 18034 goto __236 18035 } 18036 18037 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 100 /* subreqcu */)) 18038 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subreqcuflags */)) 18039 __236: 18040 ; 18041 goto __230 18042 __229: 18043 if !((bravalue == OP_ASSERT || bravalue == OP_ASSERT_NA) && *(*Tuint32_t)(unsafe.Pointer(bp + 104)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 96)) < DREQ_NONE) { 18044 goto __237 18045 } 18046 18047 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 100 /* subreqcu */)) 18048 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subreqcuflags */)) 18049 __237: 18050 ; 18051 __230: 18052 ; 18053 18054 goto __12 // End of nested group handling 18055 18056 // =================================================================== 18057 // Handle named backreferences and recursions. 18058 18059 __51: 18060 __52: 18061 18062 is_dupname = DFALSE 18063 ng1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 18064 length1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 18065 18066 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 18067 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 18068 18069 name1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18070 18071 // In the first pass, the names generated in the pre-pass are available, 18072 // but the main name table has not yet been created. Scan the list of names 18073 // generated in the pre-pass in order to get a number and whether or not 18074 // this name is duplicated. 18075 18076 groupnumber = Tuint32_t(0) 18077 { 18078 i13 = uint32(0) 18079 __238: 18080 if !(i13 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 18081 goto __240 18082 } 18083 18084 if !(length1 == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng1)).Flength) && X_pcre2_strncmp_8(tls, name1, (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fname, uint32(length1)) == 0) { 18085 goto __241 18086 } 18087 18088 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng1)).Fisdup) 18089 groupnumber = (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fnumber 18090 18091 // For a recursion, that's all that is needed. We can now go to 18092 // the code that handles numerical recursion, applying it to the first 18093 // group with the given name. 18094 18095 if !(meta == DMETA_RECURSE_BYNAME) { 18096 goto __242 18097 } 18098 18099 meta_arg = groupnumber 18100 goto HANDLE_NUMERICAL_RECURSION 18101 __242: 18102 ; 18103 18104 // For a back reference, update the back reference map and the 18105 // maximum back reference. 18106 18107 *(*Tuint32_t)(unsafe.Pointer(cb + 140)) |= func() uint32 { 18108 if groupnumber < Tuint32_t(32) { 18109 return uint32(1) << groupnumber 18110 } 18111 return uint32(1) 18112 }() 18113 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 18114 goto __243 18115 } 18116 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 18117 __243: 18118 ; 18119 __241: 18120 ; 18121 goto __239 18122 __239: 18123 i13++ 18124 ng1 += 12 18125 goto __238 18126 goto __240 18127 __240: 18128 } 18129 18130 // If the name was not found we have a bad reference. 18131 18132 if !(groupnumber == Tuint32_t(0)) { 18133 goto __244 18134 } 18135 18136 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 18137 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 18138 return 0 18139 __244: 18140 ; 18141 18142 // If a back reference name is not duplicated, we can handle it as 18143 // a numerical reference. 18144 18145 if !!(is_dupname != 0) { 18146 goto __245 18147 } 18148 18149 meta_arg = groupnumber 18150 goto HANDLE_SINGLE_REFERENCE 18151 __245: 18152 ; 18153 18154 // If a back reference name is duplicated, we generate a different 18155 // opcode to a numerical back reference. In the second pass we must 18156 // search for the index and count in the final name table. 18157 18158 *(*int32)(unsafe.Pointer(bp + 116 /* count1 */)) = 0 // Values for first pass (avoids compiler warning) 18159 *(*int32)(unsafe.Pointer(bp + 112 /* index1 */)) = 0 18160 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name1, length1, bp+112, 18161 bp+116, errorcodeptr, cb) != 0)) { 18162 goto __246 18163 } 18164 return 0 18165 __246: 18166 ; 18167 18168 if !(firstcuflags == DREQ_UNSET) { 18169 goto __247 18170 } 18171 firstcuflags = DREQ_NONE 18172 __247: 18173 ; 18174 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 18175 if options&DPCRE2_CASELESS != Tuint32_t(0) { 18176 return OP_DNREFI 18177 } 18178 return OP_DNREF 18179 }() 18180 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 112)) >> 8) 18181 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 112)) & 255) 18182 code += uintptr(DIMM2_SIZE) 18183 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 116)) >> 8) 18184 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 116)) & 255) 18185 code += uintptr(DIMM2_SIZE) 18186 18187 goto __12 18188 18189 // =================================================================== 18190 // Handle a numerical callout. 18191 18192 __53: 18193 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT 18194 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) >> 8) 18195 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18196 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) >> 8) 18197 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) + 3*4))) 18199 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(3) 18200 code += uintptr(X_pcre2_OP_lengths_8[OP_CALLOUT]) 18201 goto __12 18202 18203 // =================================================================== 18204 // Handle a callout with a string argument. In the pre-pass we just compute 18205 // the length without generating anything. The length in pptr[3] includes both 18206 // delimiters; in the actual compile only the first one is copied, but a 18207 // terminating zero is added. Any doubled delimiters within the string make 18208 // this an overestimate, but it is not worth bothering about. 18209 18210 __54: 18211 if !(lengthptr != uintptr(0)) { 18212 goto __248 18213 } 18214 18215 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3*4)) + Tuint32_t(1+4*DLINK_SIZE)) 18216 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(3) 18217 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 18218 goto __249 18219 __248: 18220 18221 length2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) + 3*4)) 18222 callout_string = code + uintptr(1+4*DLINK_SIZE) 18223 18224 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT_STR 18225 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) >> 8) 18226 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18227 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) >> 8) 18228 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18229 18230 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(3) 18231 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 18232 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 18233 // Offset to string in pattern 18234 pp = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18235 delimiter = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&callout_string, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))))) 18236 if !(delimiter == Tuint32_t('\173')) { 18237 goto __250 18238 } 18239 delimiter = Tuint32_t('\175') 18240 __250: 18241 ; 18242 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(int32(offset+Tsize_t(1)) >> 8) 18243 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 8)) = TPCRE2_UCHAR8(int32(offset+Tsize_t(1)) & 255) // One after delimiter 18244 18245 // The syntax of the pattern was checked in the parsing scan. The length 18246 // includes both delimiters, but we have passed the opening one just above, 18247 // so we reduce length before testing it. The test is for > 1 because we do 18248 // not want to copy the final delimiter. This also ensures that pp[1] is 18249 // accessible. 18250 18251 __251: 18252 if !(libc.PreDecUint32(&length2, 1) > Tuint32_t(1)) { 18253 goto __252 18254 } 18255 18256 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp))) == delimiter && Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp + 1))) == delimiter) { 18257 goto __253 18258 } 18259 18260 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(delimiter) 18261 pp += uintptr(2) 18262 length2-- 18263 goto __254 18264 __253: 18265 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))) 18266 __254: 18267 ; 18268 goto __251 18269 __252: 18270 ; 18271 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(0) 18272 18273 // Set the length of the entire item, the advance to its end. 18274 18275 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(int32((int32(callout_string)-int32(code))/1) >> 8) 18276 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(int32((int32(callout_string)-int32(code))/1) & 255) 18277 code = callout_string 18278 __249: 18279 ; 18280 goto __12 18281 18282 // =================================================================== 18283 // Handle repetition. The different types are all sorted out in the parsing 18284 // pass. 18285 18286 __55: 18287 __56: 18288 __57: 18289 repeat_min = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 18290 repeat_max = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) 18291 goto REPEAT 18292 18293 __58: 18294 __59: 18295 __60: 18296 repeat_min = Tuint32_t(0) 18297 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18298 goto REPEAT 18299 18300 __61: 18301 __62: 18302 __63: 18303 repeat_min = Tuint32_t(1) 18304 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18305 goto REPEAT 18306 18307 __64: 18308 __65: 18309 __66: 18310 repeat_min = Tuint32_t(0) 18311 repeat_max = Tuint32_t(1) 18312 18313 REPEAT: 18314 if !(previous_matched_char != 0 && repeat_min > Tuint32_t(0)) { 18315 goto __255 18316 } 18317 matched_char = DTRUE 18318 __255: 18319 ; 18320 18321 // Remember whether this is a variable length repeat, and default to 18322 // single-char opcodes. 18323 18324 if repeat_min == repeat_max { 18325 reqvary = uint32(0) 18326 } else { 18327 reqvary = DREQ_VARY 18328 } 18329 op_type = Tuint32_t(0) 18330 18331 // Adjust first and required code units for a zero repeat. 18332 18333 if !(repeat_min == Tuint32_t(0)) { 18334 goto __256 18335 } 18336 18337 firstcu = zerofirstcu 18338 firstcuflags = zerofirstcuflags 18339 reqcu = zeroreqcu 18340 reqcuflags = zeroreqcuflags 18341 __256: 18342 ; 18343 18344 // Note the greediness and possessiveness. 18345 18346 switch meta { 18347 case DMETA_MINMAX_PLUS: 18348 goto __258 18349 case DMETA_ASTERISK_PLUS: 18350 goto __259 18351 case DMETA_PLUS_PLUS: 18352 goto __260 18353 case DMETA_QUERY_PLUS: 18354 goto __261 18355 18356 case DMETA_MINMAX_QUERY: 18357 goto __262 18358 case DMETA_ASTERISK_QUERY: 18359 goto __263 18360 case DMETA_PLUS_QUERY: 18361 goto __264 18362 case DMETA_QUERY_QUERY: 18363 goto __265 18364 18365 default: 18366 goto __266 18367 } 18368 goto __257 18369 18370 __258: 18371 __259: 18372 __260: 18373 __261: 18374 repeat_type = Tuint32_t(0) // Force greedy 18375 possessive_quantifier = DTRUE 18376 goto __257 18377 18378 __262: 18379 __263: 18380 __264: 18381 __265: 18382 repeat_type = greedy_non_default 18383 possessive_quantifier = DFALSE 18384 goto __257 18385 18386 __266: 18387 repeat_type = greedy_default 18388 possessive_quantifier = DFALSE 18389 goto __257 18390 __257: 18391 ; 18392 18393 // Save start of previous item, in case we have to move it up in order to 18394 // insert something before it, and remember what it was. 18395 18396 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) = previous 18397 op_previous = *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) 18398 18399 // Now handle repetition for the different types of item. If the repeat 18400 // minimum and the repeat maximum are both 1, we can ignore the quantifier for 18401 // non-parenthesized items, as they have only one alternative. For anything in 18402 // parentheses, we must not ignore if {1} is possessive. 18403 18404 switch int32(op_previous) { 18405 // If previous was a character or negated character match, abolish the 18406 // item and generate a repeat item instead. If a char item has a minimum of 18407 // more than one, ensure that it is set in reqcu - it might not be if a 18408 // sequence such as x{3} is the first thing in a branch because the x will 18409 // have gone into firstcu instead. 18410 18411 case OP_CHAR: 18412 goto __268 18413 case OP_CHARI: 18414 goto __269 18415 case OP_NOT: 18416 goto __270 18417 case OP_NOTI: 18418 goto __271 // Code shared with single character types 18419 18420 // If previous was a character class or a back reference, we put the 18421 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18422 18423 case OP_XCLASS: 18424 goto __272 18425 case OP_CLASS: 18426 goto __273 18427 case OP_NCLASS: 18428 goto __274 18429 case OP_REF: 18430 goto __275 18431 case OP_REFI: 18432 goto __276 18433 case OP_DNREF: 18434 goto __277 18435 case OP_DNREFI: 18436 goto __278 18437 18438 // If previous is OP_FAIL, it was generated by an empty class [] 18439 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18440 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18441 // time. We can just ignore this repeat. 18442 18443 case OP_FAIL: 18444 goto __279 18445 18446 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18447 // because pcre2_match() could not handle backtracking into recursively 18448 // called groups. Now that this backtracking is available, we no longer need 18449 // to do this. However, we still need to replicate recursions as we do for 18450 // groups so as to have independent backtracking points. We can replicate 18451 // for the minimum number of repeats directly. For optional repeats we now 18452 // wrap the recursion in OP_BRA brackets and make use of the bracket 18453 // repetition. 18454 18455 case OP_RECURSE: 18456 goto __280 // Set "may match empty string" 18457 18458 // Now treat as a repeated OP_BRA. 18459 // Fall through 18460 18461 // If previous was a bracket group, we may have to replicate it in 18462 // certain cases. Note that at this point we can encounter only the "basic" 18463 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18464 // converted into the more special varieties such as BRAPOS and SBRA. 18465 // Originally, PCRE did not allow repetition of assertions, but now it does, 18466 // for Perl compatibility. 18467 18468 case OP_ASSERT: 18469 goto __281 18470 case OP_ASSERT_NOT: 18471 goto __282 18472 case OP_ASSERT_NA: 18473 goto __283 18474 case OP_ASSERTBACK: 18475 goto __284 18476 case OP_ASSERTBACK_NOT: 18477 goto __285 18478 case OP_ASSERTBACK_NA: 18479 goto __286 18480 case OP_ONCE: 18481 goto __287 18482 case OP_SCRIPT_RUN: 18483 goto __288 18484 case OP_BRA: 18485 goto __289 18486 case OP_CBRA: 18487 goto __290 18488 case OP_COND: 18489 goto __291 18490 18491 // If previous was a character type match (\d or similar), abolish it and 18492 // create a suitable repeat item. The code is shared with single-character 18493 // repeats by setting op_type to add a suitable offset into repeat_type. 18494 // Note the the Unicode property types will be present only when 18495 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 18496 // here because it just makes it horribly messy. 18497 18498 default: 18499 goto __292 18500 } 18501 goto __267 18502 18503 // If previous was a character or negated character match, abolish the 18504 // item and generate a repeat item instead. If a char item has a minimum of 18505 // more than one, ensure that it is set in reqcu - it might not be if a 18506 // sequence such as x{3} is the first thing in a branch because the x will 18507 // have gone into firstcu instead. 18508 18509 __268: 18510 __269: 18511 __270: 18512 __271: 18513 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18514 goto __293 18515 } 18516 goto END_REPEAT 18517 __293: 18518 ; 18519 op_type = chartypeoffset[int32(op_previous)-OP_CHAR] 18520 18521 // Deal with UTF characters that take up more than one code unit. 18522 18523 if !(utf != 0 && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0xc0 == 0x80) { 18524 goto __294 18525 } 18526 18527 lastchar = code - uintptr(1) 18528 __296: 18529 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastchar)))&0xc0 == 0x80) { 18530 goto __297 18531 } 18532 lastchar-- 18533 goto __296 18534 __297: 18535 ; 18536 mclength = Tuint32_t((int32(code) - int32(lastchar)) / 1) // Length of UTF character 18537 libc.Xmemcpy(tls, bp+68, lastchar, uint32(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) // Save the char 18538 goto __295 18539 __294: 18540 18541 /* Handle the case of a single code unit - either with no UTF support, or 18542 with UTF disabled, or for a single-code-unit UTF character. In the latter 18543 case, for a repeated positive match, get the caseless flag for the 18544 required code unit from the previous character, because a class like [Aa] 18545 sets a caseless A but by now the req_caseopt flag has been reset. */ 18546 18547 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68)) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))) 18548 mclength = Tuint32_t(1) 18549 if !(int32(op_previous) <= OP_CHARI && repeat_min > Tuint32_t(1)) { 18550 goto __298 18551 } 18552 18553 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68))) 18554 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 18555 if !(int32(op_previous) == OP_CHARI) { 18556 goto __299 18557 } 18558 reqcuflags = reqcuflags | DREQ_CASELESS 18559 __299: 18560 ; 18561 __298: 18562 ; 18563 __295: 18564 ; 18565 goto OUTPUT_SINGLE_REPEAT // Code shared with single character types 18566 18567 // If previous was a character class or a back reference, we put the 18568 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18569 18570 __272: 18571 __273: 18572 __274: 18573 __275: 18574 __276: 18575 __277: 18576 __278: 18577 18578 if !(repeat_max == Tuint32_t(0)) { 18579 goto __300 18580 } 18581 18582 code = previous 18583 goto END_REPEAT 18584 __300: 18585 ; 18586 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18587 goto __301 18588 } 18589 goto END_REPEAT 18590 __301: 18591 ; 18592 18593 if !(repeat_min == Tuint32_t(0) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18594 goto __302 18595 } 18596 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRSTAR + repeat_type) 18597 goto __303 18598 __302: 18599 if !(repeat_min == Tuint32_t(1) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18600 goto __304 18601 } 18602 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRPLUS + repeat_type) 18603 goto __305 18604 __304: 18605 if !(repeat_min == Tuint32_t(0) && repeat_max == Tuint32_t(1)) { 18606 goto __306 18607 } 18608 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRQUERY + repeat_type) 18609 goto __307 18610 __306: 18611 18612 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRRANGE + repeat_type) 18613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 18614 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 18615 code += uintptr(DIMM2_SIZE) 18616 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18617 goto __308 18618 } 18619 repeat_max = Tuint32_t(0) 18620 __308: 18621 ; // 2-byte encoding for max 18622 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 18623 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 18624 code += uintptr(DIMM2_SIZE) 18625 __307: 18626 ; 18627 __305: 18628 ; 18629 __303: 18630 ; 18631 goto __267 18632 18633 // If previous is OP_FAIL, it was generated by an empty class [] 18634 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18635 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18636 // time. We can just ignore this repeat. 18637 18638 __279: 18639 goto END_REPEAT 18640 18641 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18642 // because pcre2_match() could not handle backtracking into recursively 18643 // called groups. Now that this backtracking is available, we no longer need 18644 // to do this. However, we still need to replicate recursions as we do for 18645 // groups so as to have independent backtracking points. We can replicate 18646 // for the minimum number of repeats directly. For optional repeats we now 18647 // wrap the recursion in OP_BRA brackets and make use of the bracket 18648 // repetition. 18649 18650 __280: 18651 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18652 goto __309 18653 } 18654 goto END_REPEAT 18655 __309: 18656 ; 18657 18658 // Generate unwrapped repeats for a non-zero minimum, except when the 18659 // minimum is 1 and the maximum unlimited, because that can be handled with 18660 // OP_BRA terminated by OP_KETRMAX/MIN. When the maximum is equal to the 18661 // minimum, we just need to generate the appropriate additional copies. 18662 // Otherwise we need to generate one more, to simulate the situation when 18663 // the minimum is zero. 18664 18665 if !(repeat_min > Tuint32_t(0) && (repeat_min != Tuint32_t(1) || repeat_max != DMAX_REPEAT_COUNT+uint32(1))) { 18666 goto __310 18667 } 18668 18669 replicate = int32(repeat_min) 18670 if !(repeat_min == repeat_max) { 18671 goto __311 18672 } 18673 replicate-- 18674 __311: 18675 ; 18676 18677 // In the pre-compile phase, we don't actually do the replication. We 18678 // just adjust the length as if we had. Do some paranoid checks for 18679 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18680 // integer type when available, otherwise double. 18681 18682 if !(lengthptr != uintptr(0)) { 18683 goto __312 18684 } 18685 18686 delta = Tsize_t(replicate * (1 + DLINK_SIZE)) 18687 if !(Tint64_t(replicate)*(1+DLINK_SIZE) > 0x7fffffff || Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta) { 18688 goto __314 18689 } 18690 18691 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18692 return 0 18693 __314: 18694 ; 18695 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta 18696 goto __313 18697 __312: 18698 { 18699 i14 = 0 18700 __315: 18701 if !(i14 < replicate) { 18702 goto __317 18703 } 18704 18705 libc.Xmemcpy(tls, code, previous, uint32((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18706 previous = code 18707 code += uintptr(1 + DLINK_SIZE) 18708 goto __316 18709 __316: 18710 i14++ 18711 goto __315 18712 goto __317 18713 __317: 18714 } 18715 __313: 18716 ; 18717 18718 // If the number of repeats is fixed, we are done. Otherwise, adjust 18719 // the counts and fall through. 18720 18721 if !(repeat_min == repeat_max) { 18722 goto __318 18723 } 18724 goto __267 18725 __318: 18726 ; 18727 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18728 goto __319 18729 } 18730 repeat_max = repeat_max - repeat_min 18731 __319: 18732 ; 18733 repeat_min = Tuint32_t(0) 18734 __310: 18735 ; 18736 18737 // Wrap the recursion call in OP_BRA brackets. 18738 18739 libc.Xmemmove(tls, previous+uintptr(1)+uintptr(DLINK_SIZE), previous, uint32((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18740 op_previous = libc.AssignPtrUint8(previous, OP_BRA) 18741 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18742 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18743 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 6)) = OP_KET 18744 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 7)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18745 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 8)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18746 code += uintptr(2 + 2*DLINK_SIZE) 18747 *(*Tsize_t)(unsafe.Pointer(bp + 108 /* length_prevgroup */)) = Tsize_t(3 + 3*DLINK_SIZE) 18748 group_return = -1 // Set "may match empty string" 18749 18750 // Now treat as a repeated OP_BRA. 18751 // Fall through 18752 18753 // If previous was a bracket group, we may have to replicate it in 18754 // certain cases. Note that at this point we can encounter only the "basic" 18755 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18756 // converted into the more special varieties such as BRAPOS and SBRA. 18757 // Originally, PCRE did not allow repetition of assertions, but now it does, 18758 // for Perl compatibility. 18759 18760 __281: 18761 __282: 18762 __283: 18763 __284: 18764 __285: 18765 __286: 18766 __287: 18767 __288: 18768 __289: 18769 __290: 18770 __291: 18771 18772 len = int32((int32(code) - int32(previous)) / 1) 18773 bralink = uintptr(0) 18774 brazeroptr = uintptr(0) 18775 18776 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18777 goto __320 18778 } 18779 goto END_REPEAT 18780 __320: 18781 ; 18782 18783 // Repeating a DEFINE group (or any group where the condition is always 18784 // FALSE and there is only one branch) is pointless, but Perl allows the 18785 // syntax, so we just ignore the repeat. 18786 18787 if !(int32(op_previous) == OP_COND && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 3))) == OP_FALSE && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)))))))) != OP_ALT) { 18788 goto __321 18789 } 18790 goto END_REPEAT 18791 __321: 18792 ; 18793 18794 // Perl allows all assertions to be quantified, and when they contain 18795 // capturing parentheses and/or are optional there are potential uses for 18796 // this feature. PCRE2 used to force the maximum quantifier to 1 on the 18797 // invalid grounds that further repetition was never useful. This was 18798 // always a bit pointless, since an assertion could be wrapped with a 18799 // repeated group to achieve the effect. General repetition is now 18800 // permitted, but if the maximum is unlimited it is set to one more than 18801 // the minimum. 18802 18803 if !(int32(op_previous) < OP_ONCE) { 18804 goto __322 18805 } /* Assertion */ 18806 18807 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18808 goto __323 18809 } 18810 repeat_max = repeat_min + Tuint32_t(1) 18811 __323: 18812 ; 18813 __322: 18814 ; 18815 18816 // The case of a zero minimum is special because of the need to stick 18817 // OP_BRAZERO in front of it, and because the group appears once in the 18818 // data, whereas in other cases it appears the minimum number of times. For 18819 // this reason, it is simplest to treat this case separately, as otherwise 18820 // the code gets far too messy. There are several special subcases when the 18821 // minimum is zero. 18822 18823 if !(repeat_min == Tuint32_t(0)) { 18824 goto __324 18825 } 18826 18827 // If the maximum is also zero, we used to just omit the group from 18828 // the output altogether, like this: 18829 // 18830 // ** if (repeat_max == 0) 18831 // ** { 18832 // ** code = previous; 18833 // ** goto END_REPEAT; 18834 // ** } 18835 // 18836 // However, that fails when a group or a subgroup within it is 18837 // referenced as a subroutine from elsewhere in the pattern, so now we 18838 // stick in OP_SKIPZERO in front of it so that it is skipped on 18839 // execution. As we don't have a list of which groups are referenced, we 18840 // cannot do this selectively. 18841 // 18842 // If the maximum is 1 or unlimited, we just have to stick in the 18843 // BRAZERO and do no more at this point. 18844 18845 if !(repeat_max <= Tuint32_t(1) || repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18846 goto __326 18847 } 18848 18849 libc.Xmemmove(tls, previous+uintptr(1), previous, uint32(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18850 code++ 18851 if !(repeat_max == Tuint32_t(0)) { 18852 goto __328 18853 } 18854 18855 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_SKIPZERO 18856 goto END_REPEAT 18857 __328: 18858 ; 18859 brazeroptr = previous // Save for possessive optimizing 18860 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18861 goto __327 18862 __326: 18863 18864 libc.Xmemmove(tls, previous+uintptr(2)+uintptr(DLINK_SIZE), previous, uint32(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18865 code += uintptr(2 + DLINK_SIZE) 18866 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18867 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_BRA 18868 18869 // We chain together the bracket link offset fields that have to be 18870 // filled in later when the ends of the brackets are reached. 18871 18872 if bralink == uintptr(0) { 18873 linkoffset = 0 18874 } else { 18875 linkoffset = int32((int32(previous) - int32(bralink)) / 1) 18876 } 18877 bralink = previous 18878 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) = TPCRE2_UCHAR8(linkoffset >> 8) 18879 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(linkoffset & 255) 18880 previous += uintptr(DLINK_SIZE) 18881 __327: 18882 ; 18883 18884 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18885 goto __329 18886 } 18887 repeat_max-- 18888 __329: 18889 ; 18890 goto __325 18891 __324: 18892 18893 if !(repeat_min > Tuint32_t(1)) { 18894 goto __330 18895 } 18896 18897 // In the pre-compile phase, we don't actually do the replication. 18898 // We just adjust the length as if we had. Do some paranoid checks for 18899 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18900 // integer type when available, otherwise double. 18901 18902 if !(lengthptr != uintptr(0)) { 18903 goto __331 18904 } 18905 18906 delta1 = Tsize_t(repeat_min-Tuint32_t(1)) * *(*Tsize_t)(unsafe.Pointer(bp + 108)) 18907 if !(Tint64_t(repeat_min-Tuint32_t(1))*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 108))) > 0x7fffffff || Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta1) { 18908 goto __333 18909 } 18910 18911 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18912 return 0 18913 __333: 18914 ; 18915 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta1 18916 goto __332 18917 __331: 18918 18919 if !(groupsetfirstcu != 0 && reqcuflags >= DREQ_NONE) { 18920 goto __334 18921 } 18922 18923 reqcu = firstcu 18924 reqcuflags = firstcuflags 18925 __334: 18926 ; 18927 { 18928 i15 = Tuint32_t(1) 18929 __335: 18930 if !(i15 < repeat_min) { 18931 goto __337 18932 } 18933 18934 libc.Xmemcpy(tls, code, previous, uint32(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18935 code += uintptr(len) 18936 goto __336 18937 __336: 18938 i15++ 18939 goto __335 18940 goto __337 18941 __337: 18942 } 18943 __332: 18944 ; 18945 __330: 18946 ; 18947 18948 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18949 goto __338 18950 } 18951 repeat_max = repeat_max - repeat_min 18952 __338: 18953 ; 18954 __325: 18955 ; 18956 18957 // This code is common to both the zero and non-zero minimum cases. If 18958 // the maximum is limited, it replicates the group in a nested fashion, 18959 // remembering the bracket starts on a stack. In the case of a zero 18960 // minimum, the first one was set up above. In all cases the repeat_max 18961 // now specifies the number of additional copies needed. Again, we must 18962 // remember to replicate entries on the forward reference list. 18963 18964 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18965 goto __339 18966 } 18967 18968 // In the pre-compile phase, we don't actually do the replication. We 18969 // just adjust the length as if we had. For each repetition we must add 18970 // 1 to the length for BRAZERO and for all but the last repetition we 18971 // must add 2 + 2*LINKSIZE to allow for the nesting that occurs. Do some 18972 // paranoid checks to avoid integer overflow. The INT64_OR_DOUBLE type 18973 // is a 64-bit integer type when available, otherwise double. 18974 18975 if !(lengthptr != uintptr(0) && repeat_max > Tuint32_t(0)) { 18976 goto __341 18977 } 18978 18979 delta2 = Tsize_t(repeat_max)*(*(*Tsize_t)(unsafe.Pointer(bp + 108))+Tsize_t(1)+Tsize_t(2)+Tsize_t(2*DLINK_SIZE)) - Tsize_t(2) - Tsize_t(2*DLINK_SIZE) // Last one doesn't nest 18980 if !(Tint64_t(repeat_max)*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 108))+Tsize_t(1)+Tsize_t(2)+Tsize_t(2*DLINK_SIZE)) > 18981 0x7fffffff || Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta2) { 18982 goto __343 18983 } 18984 18985 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18986 return 0 18987 __343: 18988 ; 18989 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta2 18990 goto __342 18991 __341: 18992 { 18993 i16 = repeat_max 18994 __344: 18995 if !(i16 >= Tuint32_t(1)) { 18996 goto __346 18997 } 18998 18999 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 19000 19001 // All but the final copy start a new nesting, maintaining the 19002 // chain of brackets outstanding. 19003 19004 if !(i16 != Tuint32_t(1)) { 19005 goto __347 19006 } 19007 19008 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_BRA 19009 if bralink == uintptr(0) { 19010 linkoffset1 = 0 19011 } else { 19012 linkoffset1 = int32((int32(code) - int32(bralink)) / 1) 19013 } 19014 bralink = code 19015 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset1 >> 8) 19016 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset1 & 255) 19017 code += uintptr(DLINK_SIZE) 19018 __347: 19019 ; 19020 19021 libc.Xmemcpy(tls, code, previous, uint32(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 19022 code += uintptr(len) 19023 goto __345 19024 __345: 19025 i16-- 19026 goto __344 19027 goto __346 19028 __346: 19029 } 19030 __342: 19031 ; 19032 19033 // Now chain through the pending brackets, and fill in their length 19034 // fields (which are holding the chain links pro tem). 19035 19036 __348: 19037 if !(bralink != uintptr(0)) { 19038 goto __349 19039 } 19040 19041 linkoffset2 = int32((int32(code)-int32(bralink))/1 + 1) 19042 bra = code - uintptr(linkoffset2) 19043 oldlinkoffset = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2))))) 19044 if oldlinkoffset == 0 { 19045 bralink = uintptr(0) 19046 } else { 19047 bralink = bralink - uintptr(oldlinkoffset) 19048 } 19049 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19050 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19051 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19052 code += uintptr(DLINK_SIZE) 19053 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19054 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19055 goto __348 19056 __349: 19057 ; 19058 goto __340 19059 __339: 19060 19061 ketcode = code - uintptr(1) - uintptr(DLINK_SIZE) 19062 bracode = ketcode - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 2))))) 19063 19064 // Convert possessive ONCE brackets to non-capturing 19065 19066 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE && possessive_quantifier != 0) { 19067 goto __350 19068 } 19069 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_BRA 19070 __350: 19071 ; 19072 19073 // For non-possessive ONCE and for SCRIPT_RUN brackets, all we need 19074 // to do is to set the KET. 19075 19076 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCRIPT_RUN) { 19077 goto __351 19078 } 19079 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19080 goto __352 19081 __351: 19082 19083 // In the compile phase, adjust the opcode if the group can match 19084 // an empty string. For a conditional group with only one branch, the 19085 // value of group_return will not show "could be empty", so we must 19086 // check that separately. 19087 19088 if !(lengthptr == uintptr(0)) { 19089 goto __353 19090 } 19091 19092 if !(group_return < 0) { 19093 goto __354 19094 } 19095 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(OP_SBRA - OP_BRA) 19096 __354: 19097 ; 19098 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 2)))))))) != OP_ALT) { 19099 goto __355 19100 } 19101 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_SCOND 19102 __355: 19103 ; 19104 __353: 19105 ; 19106 19107 // Handle possessive quantifiers. 19108 19109 if !(possessive_quantifier != 0) { 19110 goto __356 19111 } 19112 19113 // For COND brackets, we wrap the whole thing in a possessively 19114 // repeated non-capturing bracket, because we have not invented POS 19115 // versions of the COND opcodes. 19116 19117 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCOND) { 19118 goto __358 19119 } 19120 19121 nlen = int32((int32(code) - int32(bracode)) / 1) 19122 libc.Xmemmove(tls, bracode+uintptr(1)+uintptr(DLINK_SIZE), bracode, uint32(nlen*(DPCRE2_CODE_UNIT_WIDTH/8))) 19123 code += uintptr(1 + DLINK_SIZE) 19124 nlen = nlen + (1 + DLINK_SIZE) 19125 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = func() uint8 { 19126 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND { 19127 return OP_BRAPOS 19128 } 19129 return OP_SBRAPOS 19130 }() 19131 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KETRPOS 19132 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(nlen >> 8) 19133 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(nlen & 255) 19134 code += uintptr(DLINK_SIZE) 19135 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 1)) = TPCRE2_UCHAR8(nlen >> 8) 19136 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 2)) = TPCRE2_UCHAR8(nlen & 255) 19137 goto __359 19138 __358: 19139 19140 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(1) // Switch to xxxPOS opcodes 19141 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = OP_KETRPOS 19142 __359: 19143 ; 19144 19145 // If the minimum is zero, mark it as possessive, then unset the 19146 // possessive flag when the minimum is 0 or 1. 19147 19148 if !(brazeroptr != uintptr(0)) { 19149 goto __360 19150 } 19151 *(*TPCRE2_UCHAR8)(unsafe.Pointer(brazeroptr)) = OP_BRAPOSZERO 19152 __360: 19153 ; 19154 if !(repeat_min < Tuint32_t(2)) { 19155 goto __361 19156 } 19157 possessive_quantifier = DFALSE 19158 __361: 19159 ; 19160 goto __357 19161 __356: 19162 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19163 __357: 19164 ; 19165 __352: 19166 ; 19167 __340: 19168 ; 19169 19170 goto __267 19171 19172 // If previous was a character type match (\d or similar), abolish it and 19173 // create a suitable repeat item. The code is shared with single-character 19174 // repeats by setting op_type to add a suitable offset into repeat_type. 19175 // Note the the Unicode property types will be present only when 19176 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 19177 // here because it just makes it horribly messy. 19178 19179 __292: 19180 if !(int32(op_previous) >= OP_EODN) { 19181 goto __362 19182 } /* Not a character type - internal error */ 19183 19184 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR10 19185 return 0 19186 goto __363 19187 __362: 19188 19189 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 19190 goto __364 19191 } 19192 goto END_REPEAT 19193 __364: 19194 ; 19195 19196 op_type = Tuint32_t(OP_TYPESTAR - OP_STAR) // Use type opcodes 19197 mclength = Tuint32_t(0) // Not a character 19198 19199 if !(int32(op_previous) == OP_PROP || int32(op_previous) == OP_NOTPROP) { 19200 goto __365 19201 } 19202 19203 prop_type = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1))) 19204 prop_value = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2))) 19205 goto __366 19206 __365: 19207 19208 // Come here from just above with a character in mcbuffer/mclength. 19209 OUTPUT_SINGLE_REPEAT: 19210 prop_type = libc.AssignInt32(&prop_value, -1) 19211 __366: 19212 ; 19213 19214 // At this point, if prop_type == prop_value == -1 we either have a 19215 // character in mcbuffer when mclength is greater than zero, or we have 19216 // mclength zero, in which case there is a non-property character type in 19217 // op_previous. If prop_type/value are not negative, we have a property 19218 // character type in op_previous. 19219 19220 oldcode = code // Save where we were 19221 code = previous // Usually overwrite previous item 19222 19223 // If the maximum is zero then the minimum must also be zero; Perl allows 19224 // this case, so we do too - by simply omitting the item altogether. 19225 19226 if !(repeat_max == Tuint32_t(0)) { 19227 goto __367 19228 } 19229 goto END_REPEAT 19230 __367: 19231 ; 19232 19233 // Combine the op_type with the repeat_type 19234 19235 repeat_type = repeat_type + op_type 19236 19237 // A minimum of zero is handled either as the special case * or ?, or as 19238 // an UPTO, with the maximum given. 19239 19240 if !(repeat_min == Tuint32_t(0)) { 19241 goto __368 19242 } 19243 19244 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19245 goto __370 19246 } 19247 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19248 goto __371 19249 __370: 19250 if !(repeat_max == Tuint32_t(1)) { 19251 goto __372 19252 } 19253 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19254 goto __373 19255 __372: 19256 19257 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19258 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19259 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19260 code += uintptr(DIMM2_SIZE) 19261 __373: 19262 ; 19263 __371: 19264 ; 19265 goto __369 19266 __368: 19267 if !(repeat_min == Tuint32_t(1)) { 19268 goto __374 19269 } 19270 19271 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19272 goto __376 19273 } 19274 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_PLUS + repeat_type) 19275 goto __377 19276 __376: 19277 19278 code = oldcode // Leave previous item in place 19279 if !(repeat_max == Tuint32_t(1)) { 19280 goto __378 19281 } 19282 goto END_REPEAT 19283 __378: 19284 ; 19285 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19286 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) >> 8) 19287 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) & Tuint32_t(255)) 19288 code += uintptr(DIMM2_SIZE) 19289 __377: 19290 ; 19291 goto __375 19292 __374: 19293 19294 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_EXACT + op_type) // NB EXACT doesn't have repeat_type 19295 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 19296 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 19297 code += uintptr(DIMM2_SIZE) 19298 19299 // Unless repeat_max equals repeat_min, fill in the data for EXACT, 19300 // and then generate the second opcode. For a repeated Unicode property 19301 // match, there are two extra values that define the required property, 19302 // and mclength is set zero to indicate this. 19303 19304 if !(repeat_max != repeat_min) { 19305 goto __379 19306 } 19307 19308 if !(mclength > Tuint32_t(0)) { 19309 goto __380 19310 } 19311 19312 libc.Xmemcpy(tls, code, bp+68, uint32(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19313 code += uintptr(mclength) 19314 goto __381 19315 __380: 19316 19317 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19318 if !(prop_type >= 0) { 19319 goto __382 19320 } 19321 19322 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19323 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19324 __382: 19325 ; 19326 __381: 19327 ; 19328 19329 // Now set up the following opcode 19330 19331 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19332 goto __383 19333 } 19334 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19335 goto __384 19336 __383: 19337 19338 repeat_max = repeat_max - repeat_min 19339 if !(repeat_max == Tuint32_t(1)) { 19340 goto __385 19341 } 19342 19343 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19344 goto __386 19345 __385: 19346 19347 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19348 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19349 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19350 code += uintptr(DIMM2_SIZE) 19351 __386: 19352 ; 19353 __384: 19354 ; 19355 __379: 19356 ; 19357 __375: 19358 ; 19359 __369: 19360 ; 19361 19362 // Fill in the character or character type for the final opcode. 19363 19364 if !(mclength > Tuint32_t(0)) { 19365 goto __387 19366 } 19367 19368 libc.Xmemcpy(tls, code, bp+68, uint32(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19369 code += uintptr(mclength) 19370 goto __388 19371 __387: 19372 19373 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19374 if !(prop_type >= 0) { 19375 goto __389 19376 } 19377 19378 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19379 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19380 __389: 19381 ; 19382 __388: 19383 ; 19384 __363: 19385 ; 19386 goto __267 19387 __267: 19388 ; // End of switch on different op_previous values 19389 19390 // If the character following a repeat is '+', possessive_quantifier is 19391 // TRUE. For some opcodes, there are special alternative opcodes for this 19392 // case. For anything else, we wrap the entire repeated item inside OP_ONCE 19393 // brackets. Logically, the '+' notation is just syntactic sugar, taken from 19394 // Sun's Java package, but the special opcodes can optimize it. 19395 // 19396 // Some (but not all) possessively repeated subpatterns have already been 19397 // completely handled in the code just above. For them, possessive_quantifier 19398 // is always FALSE at this stage. Note that the repeated item starts at 19399 // tempcode, not at previous, which might be the first part of a string whose 19400 // (former) last char we repeated. 19401 19402 if !(possessive_quantifier != 0) { 19403 goto __390 19404 } 19405 19406 // Possessifying an EXACT quantifier has no effect, so we can ignore it. 19407 // However, QUERY, STAR, or UPTO may follow (for quantifiers such as {5,6}, 19408 // {5,}, or {5,10}). We skip over an EXACT item; if the length of what 19409 // remains is greater than zero, there's a further opcode that can be 19410 // handled. If not, do nothing, leaving the EXACT alone. 19411 19412 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */))))) { 19413 case OP_TYPEEXACT: 19414 goto __392 19415 19416 // CHAR opcodes are used for exacts whose count is 1. 19417 19418 case OP_CHAR: 19419 goto __393 19420 case OP_CHARI: 19421 goto __394 19422 case OP_NOT: 19423 goto __395 19424 case OP_NOTI: 19425 goto __396 19426 case OP_EXACT: 19427 goto __397 19428 case OP_EXACTI: 19429 goto __398 19430 case OP_NOTEXACT: 19431 goto __399 19432 case OP_NOTEXACTI: 19433 goto __400 19434 19435 // For the class opcodes, the repeat operator appears at the end; 19436 // adjust tempcode to point to it. 19437 19438 case OP_CLASS: 19439 goto __401 19440 case OP_NCLASS: 19441 goto __402 19442 19443 case OP_XCLASS: 19444 goto __403 19445 } 19446 goto __391 19447 19448 __392: 19449 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) += uintptr(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84))))]) + func() int32 { 19450 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + 3))) == OP_PROP || 19451 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + 3))) == OP_NOTPROP { 19452 return 2 19453 } 19454 return 0 19455 }()) 19456 goto __391 19457 19458 // CHAR opcodes are used for exacts whose count is 1. 19459 19460 __393: 19461 __394: 19462 __395: 19463 __396: 19464 __397: 19465 __398: 19466 __399: 19467 __400: 19468 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */))))]) 19469 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + libc.UintptrFromInt32(-1)))) >= 0xc0) { 19470 goto __404 19471 } 19472 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + libc.UintptrFromInt32(-1))))&0x3f]) 19473 __404: 19474 ; 19475 goto __391 19476 19477 // For the class opcodes, the repeat operator appears at the end; 19478 // adjust tempcode to point to it. 19479 19480 __401: 19481 __402: 19482 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) += uintptr(uint32(1) + uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 19483 goto __391 19484 19485 __403: 19486 *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84)) + 2))))) 19487 goto __391 19488 __391: 19489 ; 19490 19491 // If tempcode is equal to code (which points to the end of the repeated 19492 // item), it means we have skipped an EXACT item but there is no following 19493 // QUERY, STAR, or UPTO; the value of len will be 0, and we do nothing. In 19494 // all other cases, tempcode will be pointing to the repeat opcode, and will 19495 // be less than code, so the value of len will be greater than 0. 19496 19497 len1 = int32((int32(code) - int32(*(*uintptr)(unsafe.Pointer(bp + 84)))) / 1) 19498 if !(len1 > 0) { 19499 goto __405 19500 } 19501 19502 repcode = uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */))))) 19503 19504 // There is a table for possessifying opcodes, all of which are less 19505 // than OP_CALLOUT. A zero entry means there is no possessified version. 19506 // 19507 19508 if !(repcode < OP_CALLOUT && int32(opcode_possessify[repcode]) > 0) { 19509 goto __406 19510 } 19511 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)))) = opcode_possessify[repcode] 19512 goto __407 19513 __406: 19514 19515 libc.Xmemmove(tls, *(*uintptr)(unsafe.Pointer(bp + 84))+uintptr(1)+uintptr(DLINK_SIZE), *(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)), uint32(len1*(DPCRE2_CODE_UNIT_WIDTH/8))) 19516 code += uintptr(1 + DLINK_SIZE) 19517 len1 = len1 + (1 + DLINK_SIZE) 19518 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)))) = OP_ONCE 19519 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19520 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(len1 >> 8) 19521 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(len1 & 255) 19522 code += uintptr(DLINK_SIZE) 19523 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) + 1)) = TPCRE2_UCHAR8(len1 >> 8) 19524 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 84 /* tempcode */)) + 2)) = TPCRE2_UCHAR8(len1 & 255) 19525 __407: 19526 ; 19527 __405: 19528 ; 19529 __390: 19530 ; 19531 19532 // We set the "follows varying string" flag for subsequently encountered 19533 // reqcus if it isn't already set and we have just passed a varying length 19534 // item. 19535 19536 END_REPEAT: 19537 *(*Tuint32_t)(unsafe.Pointer(cb + 164)) |= reqvary 19538 goto __12 19539 19540 // =================================================================== 19541 // Handle a 32-bit data character with a value greater than META_END. 19542 19543 __67: 19544 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 19545 goto NORMAL_CHAR 19546 19547 // =============================================================== 19548 // Handle a back reference by number, which is the meta argument. The 19549 // pattern offsets for back references to group numbers less than 10 are held 19550 // in a special vector, to avoid using more than two parsed pattern elements 19551 // in 64-bit environments. We only need the offset to the first occurrence, 19552 // because if that doesn't fail, subsequent ones will also be OK. 19553 19554 __68: 19555 if !(meta_arg < Tuint32_t(10)) { 19556 goto __408 19557 } 19558 offset = *(*Tsize_t)(unsafe.Pointer(cb + 44 + uintptr(meta_arg)*4)) 19559 goto __409 19560 __408: 19561 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 19562 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 19563 __409: 19564 ; 19565 19566 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19567 goto __410 19568 } 19569 19570 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19571 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19572 return 0 19573 __410: 19574 ; 19575 19576 // Come here from named backref handling when the reference is to a 19577 // single group (that is, not to a duplicated name). The back reference 19578 // data will have already been updated. We must disable firstcu if not 19579 // set, to cope with cases like (?=(\w+))\1: which would otherwise set ':' 19580 // later. 19581 19582 HANDLE_SINGLE_REFERENCE: 19583 if !(firstcuflags == DREQ_UNSET) { 19584 goto __411 19585 } 19586 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 19587 __411: 19588 ; 19589 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19590 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19591 return OP_REFI 19592 } 19593 return OP_REF 19594 }() 19595 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(meta_arg >> 8) 19596 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19597 code += uintptr(DIMM2_SIZE) 19598 19599 // Update the map of back references, and keep the highest one. We 19600 // could do this in parse_regex() for numerical back references, but not 19601 // for named back references, because we don't know the numbers to which 19602 // named back references refer. So we do it all in this function. 19603 19604 *(*Tuint32_t)(unsafe.Pointer(cb + 140)) |= func() uint32 { 19605 if meta_arg < Tuint32_t(32) { 19606 return uint32(1) << meta_arg 19607 } 19608 return uint32(1) 19609 }() 19610 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 19611 goto __412 19612 } 19613 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = meta_arg 19614 __412: 19615 ; 19616 goto __12 19617 19618 // =============================================================== 19619 // Handle recursion by inserting the number of the called group (which is 19620 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 19621 // scanned and these numbers are replaced by offsets within the pattern. It is 19622 // done like this to avoid problems with forward references and adjusting 19623 // offsets when groups are duplicated and moved (as discovered in previous 19624 // implementations). Note that a recursion does not have a set first 19625 // character. 19626 19627 __69: 19628 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2*4))) 19629 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 * uintptr(2) 19630 19631 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19632 goto __413 19633 } 19634 19635 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19636 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19637 return 0 19638 __413: 19639 ; 19640 HANDLE_NUMERICAL_RECURSION: 19641 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_RECURSE 19642 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg >> 8) 19643 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19644 code += uintptr(1 + DLINK_SIZE) 19645 groupsetfirstcu = DFALSE 19646 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse = DTRUE 19647 if !(firstcuflags == DREQ_UNSET) { 19648 goto __414 19649 } 19650 firstcuflags = DREQ_NONE 19651 __414: 19652 ; 19653 zerofirstcu = firstcu 19654 zerofirstcuflags = firstcuflags 19655 goto __12 19656 19657 // =============================================================== 19658 // Handle capturing parentheses; the number is the meta argument. 19659 19660 __70: 19661 bravalue = OP_CBRA 19662 skipunits = Tuint32_t(DIMM2_SIZE) 19663 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(meta_arg >> 8) 19664 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19665 (*Tcompile_block_8)(unsafe.Pointer(cb)).Flastcapture = meta_arg 19666 goto GROUP_PROCESS_NOTE_EMPTY 19667 19668 // =============================================================== 19669 // Handle escape sequence items. For ones like \d, the ESC_values are 19670 // arranged to be the same as the corresponding OP_values in the default case 19671 // when PCRE2_UCP is not set (which is the only case in which they will appear 19672 // here). 19673 // 19674 // Note: \Q and \E are never seen here, as they were dealt with in 19675 // parse_pattern(). Neither are numerical back references or recursions, which 19676 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 19677 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 19678 // META_RECURSE_BYNAME. 19679 19680 __71: 19681 19682 // We can test for escape sequences that consume a character because their 19683 // values lie between ESC_b and ESC_Z; this may have to change if any new ones 19684 // are ever created. For these sequences, we disable the setting of a first 19685 // character if it hasn't already been set. 19686 19687 if !(meta_arg > ESC_b && meta_arg < ESC_Z) { 19688 goto __415 19689 } 19690 19691 matched_char = DTRUE 19692 if !(firstcuflags == DREQ_UNSET) { 19693 goto __416 19694 } 19695 firstcuflags = DREQ_NONE 19696 __416: 19697 ; 19698 __415: 19699 ; 19700 19701 // Set values to reset to if this is followed by a zero repeat. 19702 19703 zerofirstcu = firstcu 19704 zerofirstcuflags = firstcuflags 19705 zeroreqcu = reqcu 19706 zeroreqcuflags = reqcuflags 19707 19708 // If Unicode is not supported, \P and \p are not allowed and are 19709 // faulted at parse time, so will never appear here. 19710 19711 if !(meta_arg == ESC_P || meta_arg == ESC_p) { 19712 goto __417 19713 } 19714 19715 ptype1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 88)), 4))) >> 16 19716 pdata1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) & Tuint32_t(0xffff) 19717 19718 // The special case of \p{Any} is compiled to OP_ALLANY so as to benefit 19719 // from the auto-anchoring code. 19720 19721 if !(meta_arg == ESC_p && ptype1 == Tuint32_t(DPT_ANY)) { 19722 goto __418 19723 } 19724 19725 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_ALLANY 19726 goto __419 19727 __418: 19728 19729 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19730 if meta_arg == ESC_p { 19731 return OP_PROP 19732 } 19733 return OP_NOTPROP 19734 }() 19735 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(ptype1) 19736 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(pdata1) 19737 __419: 19738 ; 19739 goto __12 // End META_ESCAPE 19740 __417: 19741 ; 19742 19743 // \K is forbidden in lookarounds since 10.38 because that's what Perl has 19744 // done. However, there's an option, in case anyone was relying on it. 19745 19746 if !(int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth) > 0 && meta_arg == ESC_K && (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options&DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK == Tuint32_t(0)) { 19747 goto __420 19748 } 19749 19750 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR99 19751 return 0 19752 __420: 19753 ; 19754 19755 // For the rest (including \X when Unicode is supported - if not it's 19756 // faulted at parse time), the OP value is the escape value when PCRE2_UCP is 19757 // not set; if it is set, these escapes do not show up here because they are 19758 // converted into Unicode property tests in parse_regex(). Note that \b and \B 19759 // do a one-character lookbehind, and \A also behaves as if it does. 19760 19761 if !(meta_arg == ESC_C) { 19762 goto __421 19763 } 19764 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASBKC) 19765 __421: 19766 ; // Record 19767 if !((meta_arg == ESC_b || meta_arg == ESC_B || meta_arg == ESC_A) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind == 0) { 19768 goto __422 19769 } 19770 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = 1 19771 __422: 19772 ; 19773 19774 // In non-UTF mode, and for both 32-bit modes, we turn \C into OP_ALLANY 19775 // instead of OP_ANYBYTE so that it works in DFA mode and in lookbehinds. 19776 19777 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19778 if !(utf != 0) && meta_arg == ESC_C { 19779 return OP_ALLANY 19780 } 19781 return uint8(meta_arg) 19782 }() 19783 goto __12 // End META_ESCAPE 19784 19785 // =================================================================== 19786 // Handle an unrecognized meta value. A parsed pattern value less than 19787 // META_END is a literal. Otherwise we have a problem. 19788 19789 __72: 19790 if !(meta >= DMETA_END) { 19791 goto __423 19792 } 19793 19794 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 19795 return 0 19796 __423: 19797 ; 19798 19799 // Handle a literal character. We come here by goto in the case of a 19800 // 32-bit, non-UTF character whose value is greater than META_END. 19801 19802 NORMAL_CHAR: 19803 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)))) // Get the full 32 bits 19804 NORMAL_CHAR_SET: // Character is already in meta 19805 matched_char = DTRUE 19806 19807 // For caseless UTF or UCP mode, check whether this character has more than 19808 // one other case. If so, generate a special OP_PROP item instead of OP_CHARI. 19809 // 19810 19811 if !((utf != 0 || ucp != 0) && options&DPCRE2_CASELESS != Tuint32_t(0)) { 19812 goto __424 19813 } 19814 19815 caseset = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(meta)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(meta)%DUCD_BLOCK_SIZE])*12)).Fcaseset) 19816 if !(caseset != Tuint32_t(0)) { 19817 goto __425 19818 } 19819 19820 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_PROP 19821 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 19822 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(caseset) 19823 if !(firstcuflags == DREQ_UNSET) { 19824 goto __426 19825 } 19826 firstcuflags = libc.AssignUint32(&zerofirstcuflags, DREQ_NONE) 19827 __426: 19828 ; 19829 goto __12 // End handling this meta item 19830 __425: 19831 ; 19832 __424: 19833 ; 19834 19835 // Caseful matches, or caseless and not one of the multicase characters. We 19836 // come here by goto in the case of a positive class that contains only 19837 // case-partners of a character with just two cases; matched_char has already 19838 // been set TRUE and options fudged if necessary. 19839 19840 CLASS_CASELESS_CHAR: 19841 19842 // Get the character's code units into mcbuffer, with the length in 19843 // mclength. When not in UTF mode, the length is always 1. 19844 19845 if !(utf != 0) { 19846 goto __427 19847 } 19848 mclength = X_pcre2_ord2utf_8(tls, meta, bp+68) 19849 goto __428 19850 __427: 19851 19852 mclength = Tuint32_t(1) 19853 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68)) = TPCRE2_UCHAR8(meta) 19854 __428: 19855 ; 19856 19857 // Generate the appropriate code 19858 19859 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19860 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19861 return OP_CHARI 19862 } 19863 return OP_CHAR 19864 }() 19865 libc.Xmemcpy(tls, code, bp+68, uint32(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19866 code += uintptr(mclength) 19867 19868 // Remember if \r or \n were seen 19869 19870 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68))) == '\015' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68))) == '\012') { 19871 goto __429 19872 } 19873 *(*Tuint32_t)(unsafe.Pointer(cb + 112)) |= Tuint32_t(DPCRE2_HASCRORLF) 19874 __429: 19875 ; 19876 19877 // Set the first and required code units appropriately. If no previous 19878 // first code unit, set it from this character, but revert to none on a zero 19879 // repeat. Otherwise, leave the firstcu value alone, and don't change it on 19880 // a zero repeat. 19881 19882 if !(firstcuflags == DREQ_UNSET) { 19883 goto __430 19884 } 19885 19886 zerofirstcuflags = DREQ_NONE 19887 zeroreqcu = reqcu 19888 zeroreqcuflags = reqcuflags 19889 19890 // If the character is more than one code unit long, we can set a single 19891 // firstcu only if it is not to be matched caselessly. Multiple possible 19892 // starting code units may be picked up later in the studying code. 19893 19894 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19895 goto __432 19896 } 19897 19898 firstcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 68))) 19899 firstcuflags = req_caseopt 19900 if !(mclength != Tuint32_t(1)) { 19901 goto __434 19902 } 19903 19904 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19905 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19906 __434: 19907 ; 19908 goto __433 19909 __432: 19910 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_NONE) 19911 __433: 19912 ; 19913 goto __431 19914 __430: 19915 19916 zerofirstcu = firstcu 19917 zerofirstcuflags = firstcuflags 19918 zeroreqcu = reqcu 19919 zeroreqcuflags = reqcuflags 19920 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19921 goto __435 19922 } 19923 19924 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19925 reqcuflags = req_caseopt | (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19926 __435: 19927 ; 19928 __431: 19929 ; 19930 19931 // If caselessness was temporarily instated, reset it. 19932 19933 if !(reset_caseful != 0) { 19934 goto __436 19935 } 19936 19937 options = options & libc.CplUint32(DPCRE2_CASELESS) 19938 req_caseopt = Tuint32_t(0) 19939 reset_caseful = DFALSE 19940 __436: 19941 ; 19942 19943 goto __12 // End literal character handling 19944 __12: 19945 ; // End of big switch 19946 goto __2 19947 __2: 19948 *(*uintptr)(unsafe.Pointer(bp + 88 /* pptr */)) += 4 19949 goto __1 19950 goto __3 19951 __3: 19952 ; 19953 return int32(0) // End of big loop 19954 19955 // Control never reaches here. 19956 } 19957 19958 // ************************************************ 19959 // 19960 // Compile regex: a sequence of alternatives * 19961 // 19962 19963 // On entry, pptr is pointing past the bracket meta, but on return it points to 19964 // the closing bracket or META_END. The code variable is pointing at the code unit 19965 // into which the BRA operator has been stored. This function is used during the 19966 // pre-compile phase when we are trying to find out the amount of memory needed, 19967 // as well as during the real compile phase. The value of lengthptr distinguishes 19968 // the two phases. 19969 // 19970 // Arguments: 19971 // options option bits, including any changes for this subpattern 19972 // codeptr -> the address of the current code pointer 19973 // pptrptr -> the address of the current parsed pattern pointer 19974 // errorcodeptr -> pointer to error code variable 19975 // skipunits skip this many code units at start (for brackets and OP_COND) 19976 // firstcuptr place to put the first required code unit 19977 // firstcuflagsptr place to put the first code unit flags 19978 // reqcuptr place to put the last required code unit 19979 // reqcuflagsptr place to put the last required code unit flags 19980 // bcptr pointer to the chain of currently open branches 19981 // cb points to the data block with tables pointers etc. 19982 // lengthptr NULL during the real compile phase 19983 // points to length accumulator during pre-compile phase 19984 // 19985 // Returns: 0 There has been an error 19986 // +1 Success, this group must match at least one character 19987 // -1 Success, this group may match an empty string 19988 19989 func compile_regex(tls *libc.TLS, options Tuint32_t, codeptr uintptr, pptrptr uintptr, errorcodeptr uintptr, skipunits Tuint32_t, firstcuptr uintptr, firstcuflagsptr uintptr, reqcuptr uintptr, reqcuflagsptr uintptr, bcptr uintptr, cb uintptr, lengthptr uintptr) int32 { /* pcre2_compile.c:8095:1: */ 19990 bp := tls.Alloc(48) 19991 defer tls.Free(48) 19992 *(*Tuint32_t)(unsafe.Pointer(bp + 8)) = options 19993 19994 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) 19995 var last_branch uintptr = *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) 19996 var start_bracket uintptr = *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) 19997 var lookbehind TBOOL 19998 // var capitem Topen_capitem at bp, 8 19999 20000 var capnumber int32 = 0 20001 var okreturn int32 = 1 20002 *(*uintptr)(unsafe.Pointer(bp + 16 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 20003 var firstcu Tuint32_t 20004 var reqcu Tuint32_t 20005 var lookbehindlength Tuint32_t 20006 var firstcuflags Tuint32_t 20007 var reqcuflags Tuint32_t 20008 // var branchfirstcu Tuint32_t at bp+20, 4 20009 20010 // var branchreqcu Tuint32_t at bp+28, 4 20011 20012 // var branchfirstcuflags Tuint32_t at bp+24, 4 20013 20014 // var branchreqcuflags Tuint32_t at bp+32, 4 20015 20016 // var length Tsize_t at bp+44, 4 20017 20018 // var bc Tbranch_chain_8 at bp+36, 8 20019 20020 // If set, call the external function that checks for stack availability. 20021 20022 if (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard != uintptr(0) && (*struct { 20023 f func(*libc.TLS, Tuint32_t, uintptr) int32 20024 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard})).f(tls, uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fparens_depth), (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard_data) != 0 { 20025 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR33 20026 return 0 20027 } 20028 20029 // Miscellaneous initialization 20030 20031 (*Tbranch_chain_8)(unsafe.Pointer(bp + 36 /* &bc */)).Fouter = bcptr 20032 (*Tbranch_chain_8)(unsafe.Pointer(bp + 36 /* &bc */)).Fcurrent_branch = *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) 20033 20034 firstcu = libc.AssignUint32(&reqcu, Tuint32_t(0)) 20035 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_UNSET) 20036 20037 // Accumulate the length for use in the pre-compile phase. Start with the 20038 // length of the BRA and KET and any extra code units that are required at the 20039 // beginning. We accumulate in a local variable to save frequent testing of 20040 // lengthptr for NULL. We cannot do this by looking at the value of 'code' at the 20041 // start and end of each alternative, because compiled items are discarded during 20042 // the pre-compile phase so that the workspace is not exceeded. 20043 20044 *(*Tsize_t)(unsafe.Pointer(bp + 44 /* length */)) = Tsize_t(Tuint32_t(2+2*DLINK_SIZE) + skipunits) 20045 20046 // Remember if this is a lookbehind assertion, and if it is, save its length 20047 // and skip over the pattern offset. 20048 20049 lookbehind = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12))))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12))))) == OP_ASSERTBACK_NOT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12))))) == OP_ASSERTBACK_NA) 20050 20051 if lookbehind != 0 { 20052 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + libc.UintptrFromInt32(-1)*4)) & 0x0000ffff 20053 *(*uintptr)(unsafe.Pointer(bp + 16 /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 20054 } else { 20055 lookbehindlength = Tuint32_t(0) 20056 } 20057 20058 // If this is a capturing subpattern, add to the chain of open capturing items 20059 // so that we can detect them if (*ACCEPT) is encountered. Note that only OP_CBRA 20060 // need be tested here; changing this opcode to one of its variants, e.g. 20061 // OP_SCBRAPOS, happens later, after the group has been compiled. 20062 20063 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12))))) == OP_CBRA { 20064 capnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)) + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)) + 4))))) 20065 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnumber = Tuint16_t(capnumber) 20066 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnext = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 20067 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fassert_depth = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth 20068 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = bp /* &capitem */ 20069 } 20070 20071 // Offset is set zero to mark that this bracket is still open 20072 20073 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 1)) = TPCRE2_UCHAR8(int32(0) >> 8) 20074 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 2)) = TPCRE2_UCHAR8(0 & 255) 20075 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) += uintptr(Tuint32_t(1+DLINK_SIZE) + skipunits) 20076 20077 // Loop for each alternative branch 20078 20079 for { 20080 var branch_return int32 20081 20082 // Insert OP_REVERSE if this is as lookbehind assertion. 20083 20084 if lookbehind != 0 && lookbehindlength > Tuint32_t(0) { 20085 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)), 1))) = OP_REVERSE 20086 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)))) = TPCRE2_UCHAR8(lookbehindlength >> 8) 20087 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 1)) = TPCRE2_UCHAR8(lookbehindlength & Tuint32_t(255)) 20088 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) += uintptr(DLINK_SIZE) 20089 *(*Tsize_t)(unsafe.Pointer(bp + 44 /* length */)) += Tsize_t(1 + DLINK_SIZE) 20090 } 20091 20092 // Now compile the branch; in the pre-compile phase its length gets added 20093 // into the length. 20094 20095 if libc.AssignInt32(&branch_return, compile_branch(tls, bp+8, bp+12, bp+16, errorcodeptr, bp+20, 20096 bp+24, bp+28, bp+32, bp+36, 20097 cb, func() uintptr { 20098 if lengthptr == uintptr(0) { 20099 return uintptr(0) 20100 } 20101 return bp + 44 20102 }())) == 0 { 20103 return 0 20104 } 20105 20106 // If a branch can match an empty string, so can the whole group. 20107 20108 if branch_return < 0 { 20109 okreturn = -1 20110 } 20111 20112 // In the real compile phase, there is some post-processing to be done. 20113 20114 if lengthptr == uintptr(0) { 20115 // If this is the first branch, the firstcu and reqcu values for the 20116 // branch become the values for the regex. 20117 20118 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch))) != OP_ALT { 20119 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 20 /* branchfirstcu */)) 20120 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 24 /* branchfirstcuflags */)) 20121 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 28 /* branchreqcu */)) 20122 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 32 /* branchreqcuflags */)) 20123 } else { 20124 // If we previously had a firstcu, but it doesn't match the new branch, 20125 // we have to abandon the firstcu for the regex, but if there was 20126 // previously no reqcu, it takes on the value of the old firstcu. 20127 20128 if firstcuflags != *(*Tuint32_t)(unsafe.Pointer(bp + 24)) || firstcu != *(*Tuint32_t)(unsafe.Pointer(bp + 20)) { 20129 if firstcuflags < DREQ_NONE { 20130 if reqcuflags >= DREQ_NONE { 20131 reqcu = firstcu 20132 reqcuflags = firstcuflags 20133 } 20134 } 20135 firstcuflags = DREQ_NONE 20136 } 20137 20138 // If we (now or from before) have no firstcu, a firstcu from the 20139 // branch becomes a reqcu if there isn't a branch reqcu. 20140 20141 if firstcuflags >= DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 24)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 32)) >= DREQ_NONE { 20142 *(*Tuint32_t)(unsafe.Pointer(bp + 28 /* branchreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 20 /* branchfirstcu */)) 20143 *(*Tuint32_t)(unsafe.Pointer(bp + 32 /* branchreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 24 /* branchfirstcuflags */)) 20144 } 20145 20146 // Now ensure that the reqcus match 20147 20148 if reqcuflags&libc.CplUint32(DREQ_VARY) != *(*Tuint32_t)(unsafe.Pointer(bp + 32))&libc.CplUint32(DREQ_VARY) || reqcu != *(*Tuint32_t)(unsafe.Pointer(bp + 28)) { 20149 reqcuflags = DREQ_NONE 20150 } else { 20151 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 28 /* branchreqcu */)) 20152 reqcuflags = reqcuflags | *(*Tuint32_t)(unsafe.Pointer(bp + 32)) // To "or" REQ_VARY if present 20153 } 20154 } 20155 } 20156 20157 // Handle reaching the end of the expression, either ')' or end of pattern. 20158 // In the real compile phase, go back through the alternative branches and 20159 // reverse the chain of offsets, with the field in the BRA item now becoming an 20160 // offset to the first alternative. If there are no alternatives, it points to 20161 // the end of the group. The length in the terminating ket is always the length 20162 // of the whole bracketed item. Return leaving the pointer at the terminating 20163 // char. 20164 20165 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16))))&0xffff0000 != DMETA_ALT { 20166 if lengthptr == uintptr(0) { 20167 var branch_length Tsize_t = Tsize_t((int32(*(*uintptr)(unsafe.Pointer(bp + 12))) - int32(last_branch)) / 1) 20168 for __ccgo := true; __ccgo; __ccgo = branch_length > Tsize_t(0) { 20169 var prev_length Tsize_t = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 2))))) 20170 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 1)) = TPCRE2_UCHAR8(branch_length >> 8) 20171 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 2)) = TPCRE2_UCHAR8(branch_length & Tsize_t(255)) 20172 branch_length = prev_length 20173 last_branch -= uintptr(branch_length) 20174 } 20175 } 20176 20177 // Fill in the ket 20178 20179 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)))) = OP_KET 20180 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int32(*(*uintptr)(unsafe.Pointer(bp + 12)))-int32(start_bracket))/1) >> 8) 20181 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int32(*(*uintptr)(unsafe.Pointer(bp + 12)))-int32(start_bracket))/1) & 255) 20182 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) += uintptr(1 + DLINK_SIZE) 20183 20184 // If it was a capturing subpattern, remove the block from the chain. 20185 20186 if capnumber > 0 { 20187 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = (*Topen_capitem)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps)).Fnext 20188 } 20189 20190 // Set values to pass back 20191 20192 *(*uintptr)(unsafe.Pointer(codeptr)) = *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) 20193 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 16 /* pptr */)) 20194 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 20195 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 20196 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 20197 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 20198 if lengthptr != uintptr(0) { 20199 if Tsize_t(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 44)) { 20200 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 20201 return 0 20202 } 20203 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 44)) 20204 } 20205 return okreturn 20206 } 20207 20208 // Another branch follows. In the pre-compile phase, we can move the code 20209 // pointer back to where it was for the start of the first branch. (That is, 20210 // pretend that each branch is the only one.) 20211 // 20212 // In the real compile phase, insert an ALT node. Its length field points back 20213 // to the previous branch while the bracket remains open. At the end the chain 20214 // is reversed. It's done like this so that the start of the bracket has a 20215 // zero offset until it is closed, making it possible to detect recursion. 20216 20217 if lengthptr != uintptr(0) { 20218 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(skipunits) 20219 *(*Tsize_t)(unsafe.Pointer(bp + 44 /* length */)) += Tsize_t(1 + DLINK_SIZE) 20220 } else { 20221 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)))) = OP_ALT 20222 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int32(*(*uintptr)(unsafe.Pointer(bp + 12)))-int32(last_branch))/1) >> 8) 20223 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int32(*(*uintptr)(unsafe.Pointer(bp + 12)))-int32(last_branch))/1) & 255) 20224 (*Tbranch_chain_8)(unsafe.Pointer(bp + 36 /* &bc */)).Fcurrent_branch = libc.AssignUintptr(&last_branch, *(*uintptr)(unsafe.Pointer(bp + 12 /* code */))) 20225 *(*uintptr)(unsafe.Pointer(bp + 12 /* code */)) += uintptr(1 + DLINK_SIZE) 20226 } 20227 20228 // Set the lookbehind length (if not in a lookbehind the value will be zero) 20229 // and then advance past the vertical bar. 20230 20231 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) & 0x0000ffff 20232 *(*uintptr)(unsafe.Pointer(bp + 16 /* pptr */)) += 4 20233 } 20234 return int32(0) 20235 // Control never reaches here 20236 } 20237 20238 // ************************************************ 20239 // 20240 // Check for anchored pattern * 20241 // 20242 20243 // Try to find out if this is an anchored regular expression. Consider each 20244 // alternative branch. If they all start with OP_SOD or OP_CIRC, or with a bracket 20245 // all of whose alternatives start with OP_SOD or OP_CIRC (recurse ad lib), then 20246 // it's anchored. However, if this is a multiline pattern, then only OP_SOD will 20247 // be found, because ^ generates OP_CIRCM in that mode. 20248 // 20249 // We can also consider a regex to be anchored if OP_SOM starts all its branches. 20250 // This is the code for \G, which means "match at start of match position, taking 20251 // into account the match offset". 20252 // 20253 // A branch is also implicitly anchored if it starts with .* and DOTALL is set, 20254 // because that will try the rest of the pattern at all possible matching points, 20255 // so there is no point trying again.... er .... 20256 // 20257 // .... except when the .* appears inside capturing parentheses, and there is a 20258 // subsequent back reference to those parentheses. We haven't enough information 20259 // to catch that case precisely. 20260 // 20261 // At first, the best we could do was to detect when .* was in capturing brackets 20262 // and the highest back reference was greater than or equal to that level. 20263 // However, by keeping a bitmap of the first 31 back references, we can catch some 20264 // of the more common cases more precisely. 20265 // 20266 // ... A second exception is when the .* appears inside an atomic group, because 20267 // this prevents the number of characters it matches from being adjusted. 20268 // 20269 // Arguments: 20270 // code points to start of the compiled pattern 20271 // bracket_map a bitmap of which brackets we are inside while testing; this 20272 // handles up to substring 31; after that we just have to take 20273 // the less precise approach 20274 // cb points to the compile data block 20275 // atomcount atomic group level 20276 // inassert TRUE if in an assertion 20277 // 20278 // Returns: TRUE or FALSE 20279 20280 func is_anchored(tls *libc.TLS, code TPCRE2_SPTR8, bracket_map Tuint32_t, cb uintptr, atomcount int32, inassert TBOOL) TBOOL { /* pcre2_compile.c:8394:1: */ 20281 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20282 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20283 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20284 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20285 20286 // Non-capturing brackets 20287 20288 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20289 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20290 return DFALSE 20291 } 20292 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20293 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20294 var new_map Tuint32_t = bracket_map | func() uint32 { 20295 if n < 32 { 20296 return uint32(1) << n 20297 } 20298 return uint32(1) 20299 }() 20300 if !(is_anchored(tls, scode, new_map, cb, atomcount, inassert) != 0) { 20301 return DFALSE 20302 } 20303 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20304 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20305 return DFALSE 20306 } 20307 } else if op == OP_COND || op == OP_SCOND { 20308 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 2)))))))) != OP_ALT { 20309 return DFALSE 20310 } 20311 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20312 return DFALSE 20313 } 20314 } else if op == OP_ONCE { 20315 if !(is_anchored(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20316 return DFALSE 20317 } 20318 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20319 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) != OP_ALLANY || bracket_map&(*Tcompile_block_8)(unsafe.Pointer(cb)).Fbackref_map != Tuint32_t(0) || atomcount > 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip != 0 || inassert != 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_NO_DOTSTAR_ANCHOR != Tuint32_t(0) { 20320 return DFALSE 20321 } 20322 } else if op != OP_SOD && op != OP_SOM && op != OP_CIRC { 20323 return DFALSE 20324 } 20325 20326 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20327 } // Loop for each alternative 20328 return DTRUE 20329 } 20330 20331 // ************************************************ 20332 // 20333 // Check for starting with ^ or .* * 20334 // 20335 20336 // This is called to find out if every branch starts with ^ or .* so that 20337 // "first char" processing can be done to speed things up in multiline 20338 // matching and for non-DOTALL patterns that start with .* (which must start at 20339 // the beginning or after \n). As in the case of is_anchored() (see above), we 20340 // have to take account of back references to capturing brackets that contain .* 20341 // because in that case we can't make the assumption. Also, the appearance of .* 20342 // inside atomic brackets or in an assertion, or in a pattern that contains *PRUNE 20343 // or *SKIP does not count, because once again the assumption no longer holds. 20344 // 20345 // Arguments: 20346 // code points to start of the compiled pattern or a group 20347 // bracket_map a bitmap of which brackets we are inside while testing; this 20348 // handles up to substring 31; after that we just have to take 20349 // the less precise approach 20350 // cb points to the compile data 20351 // atomcount atomic group level 20352 // inassert TRUE if in an assertion 20353 // 20354 // Returns: TRUE or FALSE 20355 20356 func is_startline(tls *libc.TLS, code TPCRE2_SPTR8, bracket_map uint32, cb uintptr, atomcount int32, inassert TBOOL) TBOOL { /* pcre2_compile.c:8499:1: */ 20357 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20358 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20359 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20360 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20361 20362 // If we are at the start of a conditional assertion group, *both* the 20363 // conditional assertion *and* what follows the condition must satisfy the test 20364 // for start of line. Other kinds of condition fail. Note that there may be an 20365 // auto-callout at the start of a condition. 20366 20367 if op == OP_COND { 20368 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20369 20370 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT { 20371 scode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 20372 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT_STR { 20373 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 6))))) 20374 } 20375 20376 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) { 20377 case OP_CREF: 20378 fallthrough 20379 case OP_DNCREF: 20380 fallthrough 20381 case OP_RREF: 20382 fallthrough 20383 case OP_DNRREF: 20384 fallthrough 20385 case OP_FAIL: 20386 fallthrough 20387 case OP_FALSE: 20388 fallthrough 20389 case OP_TRUE: 20390 return DFALSE 20391 fallthrough 20392 20393 default: // Assertion 20394 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20395 return DFALSE 20396 } 20397 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_ALT { 20398 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 2))))) 20399 } 20400 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20401 break 20402 } 20403 scode = first_significant_code(tls, scode, DFALSE) 20404 op = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20405 } 20406 20407 // Non-capturing brackets 20408 20409 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20410 if !(is_startline(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20411 return DFALSE 20412 } 20413 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20414 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20415 var new_map int32 = int32(bracket_map | func() uint32 { 20416 if n < 32 { 20417 return uint32(1) << n 20418 } 20419 return uint32(1) 20420 }()) 20421 if !(is_startline(tls, scode, uint32(new_map), cb, atomcount, inassert) != 0) { 20422 return DFALSE 20423 } 20424 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20425 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20426 return DFALSE 20427 } 20428 } else if op == OP_ONCE { 20429 if !(is_startline(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20430 return DFALSE 20431 } 20432 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20433 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) != OP_ANY || bracket_map&(*Tcompile_block_8)(unsafe.Pointer(cb)).Fbackref_map != uint32(0) || atomcount > 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip != 0 || inassert != 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_NO_DOTSTAR_ANCHOR != Tuint32_t(0) { 20434 return DFALSE 20435 } 20436 } else if op != OP_CIRC && op != OP_CIRCM { 20437 return DFALSE 20438 } 20439 20440 // Move on to the next alternative 20441 20442 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20443 } // Loop for each alternative 20444 return DTRUE 20445 } 20446 20447 // ************************************************ 20448 // 20449 // Scan compiled regex for recursion reference * 20450 // 20451 20452 // This function scans through a compiled pattern until it finds an instance of 20453 // OP_RECURSE. 20454 // 20455 // Arguments: 20456 // code points to start of expression 20457 // utf TRUE in UTF mode 20458 // 20459 // Returns: pointer to the opcode for OP_RECURSE, or NULL if not found 20460 20461 func find_recurse(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL) TPCRE2_SPTR8 { /* pcre2_compile.c:8621:1: */ 20462 for { 20463 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 20464 if int32(c) == OP_END { 20465 return uintptr(0) 20466 } 20467 if int32(c) == OP_RECURSE { 20468 return code 20469 } 20470 20471 // XCLASS is used for classes that cannot be represented just by a bit map. 20472 // This includes negated single high-valued characters. CALLOUT_STR is used for 20473 // callouts with string arguments. In both cases the length in the table is 20474 // zero; the actual length is stored in the compiled code. 20475 20476 if int32(c) == OP_XCLASS { 20477 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20478 } else if int32(c) == OP_CALLOUT_STR { 20479 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 20480 } else { 20481 switch int32(c) { 20482 case OP_TYPESTAR: 20483 fallthrough 20484 case OP_TYPEMINSTAR: 20485 fallthrough 20486 case OP_TYPEPLUS: 20487 fallthrough 20488 case OP_TYPEMINPLUS: 20489 fallthrough 20490 case OP_TYPEQUERY: 20491 fallthrough 20492 case OP_TYPEMINQUERY: 20493 fallthrough 20494 case OP_TYPEPOSSTAR: 20495 fallthrough 20496 case OP_TYPEPOSPLUS: 20497 fallthrough 20498 case OP_TYPEPOSQUERY: 20499 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 20500 code += uintptr(2) 20501 } 20502 break 20503 fallthrough 20504 20505 case OP_TYPEPOSUPTO: 20506 fallthrough 20507 case OP_TYPEUPTO: 20508 fallthrough 20509 case OP_TYPEMINUPTO: 20510 fallthrough 20511 case OP_TYPEEXACT: 20512 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 20513 code += uintptr(2) 20514 } 20515 break 20516 fallthrough 20517 20518 case OP_MARK: 20519 fallthrough 20520 case OP_COMMIT_ARG: 20521 fallthrough 20522 case OP_PRUNE_ARG: 20523 fallthrough 20524 case OP_SKIP_ARG: 20525 fallthrough 20526 case OP_THEN_ARG: 20527 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 20528 break 20529 } 20530 20531 // Add in the fixed length from the table 20532 20533 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 20534 20535 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may 20536 // be followed by a multi-unit character. The length in the table is a 20537 // minimum, so we have to arrange to skip the extra units. 20538 20539 if utf != 0 { 20540 switch int32(c) { 20541 case OP_CHAR: 20542 fallthrough 20543 case OP_CHARI: 20544 fallthrough 20545 case OP_NOT: 20546 fallthrough 20547 case OP_NOTI: 20548 fallthrough 20549 case OP_EXACT: 20550 fallthrough 20551 case OP_EXACTI: 20552 fallthrough 20553 case OP_NOTEXACT: 20554 fallthrough 20555 case OP_NOTEXACTI: 20556 fallthrough 20557 case OP_UPTO: 20558 fallthrough 20559 case OP_UPTOI: 20560 fallthrough 20561 case OP_NOTUPTO: 20562 fallthrough 20563 case OP_NOTUPTOI: 20564 fallthrough 20565 case OP_MINUPTO: 20566 fallthrough 20567 case OP_MINUPTOI: 20568 fallthrough 20569 case OP_NOTMINUPTO: 20570 fallthrough 20571 case OP_NOTMINUPTOI: 20572 fallthrough 20573 case OP_POSUPTO: 20574 fallthrough 20575 case OP_POSUPTOI: 20576 fallthrough 20577 case OP_NOTPOSUPTO: 20578 fallthrough 20579 case OP_NOTPOSUPTOI: 20580 fallthrough 20581 case OP_STAR: 20582 fallthrough 20583 case OP_STARI: 20584 fallthrough 20585 case OP_NOTSTAR: 20586 fallthrough 20587 case OP_NOTSTARI: 20588 fallthrough 20589 case OP_MINSTAR: 20590 fallthrough 20591 case OP_MINSTARI: 20592 fallthrough 20593 case OP_NOTMINSTAR: 20594 fallthrough 20595 case OP_NOTMINSTARI: 20596 fallthrough 20597 case OP_POSSTAR: 20598 fallthrough 20599 case OP_POSSTARI: 20600 fallthrough 20601 case OP_NOTPOSSTAR: 20602 fallthrough 20603 case OP_NOTPOSSTARI: 20604 fallthrough 20605 case OP_PLUS: 20606 fallthrough 20607 case OP_PLUSI: 20608 fallthrough 20609 case OP_NOTPLUS: 20610 fallthrough 20611 case OP_NOTPLUSI: 20612 fallthrough 20613 case OP_MINPLUS: 20614 fallthrough 20615 case OP_MINPLUSI: 20616 fallthrough 20617 case OP_NOTMINPLUS: 20618 fallthrough 20619 case OP_NOTMINPLUSI: 20620 fallthrough 20621 case OP_POSPLUS: 20622 fallthrough 20623 case OP_POSPLUSI: 20624 fallthrough 20625 case OP_NOTPOSPLUS: 20626 fallthrough 20627 case OP_NOTPOSPLUSI: 20628 fallthrough 20629 case OP_QUERY: 20630 fallthrough 20631 case OP_QUERYI: 20632 fallthrough 20633 case OP_NOTQUERY: 20634 fallthrough 20635 case OP_NOTQUERYI: 20636 fallthrough 20637 case OP_MINQUERY: 20638 fallthrough 20639 case OP_MINQUERYI: 20640 fallthrough 20641 case OP_NOTMINQUERY: 20642 fallthrough 20643 case OP_NOTMINQUERYI: 20644 fallthrough 20645 case OP_POSQUERY: 20646 fallthrough 20647 case OP_POSQUERYI: 20648 fallthrough 20649 case OP_NOTPOSQUERY: 20650 fallthrough 20651 case OP_NOTPOSQUERYI: 20652 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 20653 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 20654 } 20655 break 20656 } 20657 } 20658 } 20659 } 20660 return TPCRE2_SPTR8(0) 20661 } 20662 20663 // ************************************************ 20664 // 20665 // Check for asserted fixed first code unit * 20666 // 20667 20668 // During compilation, the "first code unit" settings from forward assertions 20669 // are discarded, because they can cause conflicts with actual literals that 20670 // follow. However, if we end up without a first code unit setting for an 20671 // unanchored pattern, it is worth scanning the regex to see if there is an 20672 // initial asserted first code unit. If all branches start with the same asserted 20673 // code unit, or with a non-conditional bracket all of whose alternatives start 20674 // with the same asserted code unit (recurse ad lib), then we return that code 20675 // unit, with the flags set to zero or REQ_CASELESS; otherwise return zero with 20676 // REQ_NONE in the flags. 20677 // 20678 // Arguments: 20679 // code points to start of compiled pattern 20680 // flags points to the first code unit flags 20681 // inassert non-zero if in an assertion 20682 // 20683 // Returns: the fixed first code unit, or 0 with REQ_NONE in flags 20684 20685 func find_firstassertedcu(tls *libc.TLS, code TPCRE2_SPTR8, flags uintptr, inassert Tuint32_t) Tuint32_t { /* pcre2_compile.c:8777:1: */ 20686 bp := tls.Alloc(4) 20687 defer tls.Free(4) 20688 20689 var c Tuint32_t = Tuint32_t(0) 20690 var cflags Tuint32_t = DREQ_NONE 20691 20692 *(*Tuint32_t)(unsafe.Pointer(flags)) = DREQ_NONE 20693 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20694 var d Tuint32_t 20695 // var dflags Tuint32_t at bp, 4 20696 20697 var xl int32 20698 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRAPOS { 20699 xl = DIMM2_SIZE 20700 } else { 20701 xl = 0 20702 } 20703 var scode TPCRE2_SPTR8 = first_significant_code(tls, code+uintptr(1)+uintptr(DLINK_SIZE)+uintptr(xl), DTRUE) 20704 var op TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(scode)) 20705 20706 switch int32(op) { 20707 default: 20708 return Tuint32_t(0) 20709 20710 case OP_BRA: 20711 fallthrough 20712 case OP_BRAPOS: 20713 fallthrough 20714 case OP_CBRA: 20715 fallthrough 20716 case OP_SCBRA: 20717 fallthrough 20718 case OP_CBRAPOS: 20719 fallthrough 20720 case OP_SCBRAPOS: 20721 fallthrough 20722 case OP_ASSERT: 20723 fallthrough 20724 case OP_ASSERT_NA: 20725 fallthrough 20726 case OP_ONCE: 20727 fallthrough 20728 case OP_SCRIPT_RUN: 20729 d = find_firstassertedcu(tls, scode, bp, inassert+func() uint32 { 20730 if int32(op) == OP_ASSERT || int32(op) == OP_ASSERT_NA { 20731 return uint32(1) 20732 } 20733 return uint32(0) 20734 }()) 20735 if *(*Tuint32_t)(unsafe.Pointer(bp)) >= DREQ_NONE { 20736 return Tuint32_t(0) 20737 } 20738 if cflags >= DREQ_NONE { 20739 c = d 20740 cflags = *(*Tuint32_t)(unsafe.Pointer(bp /* dflags */)) 20741 } else if c != d || cflags != *(*Tuint32_t)(unsafe.Pointer(bp)) { 20742 return Tuint32_t(0) 20743 } 20744 break 20745 20746 case OP_EXACT: 20747 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20748 fallthrough 20749 // Fall through 20750 20751 case OP_CHAR: 20752 fallthrough 20753 case OP_PLUS: 20754 fallthrough 20755 case OP_MINPLUS: 20756 fallthrough 20757 case OP_POSPLUS: 20758 if inassert == Tuint32_t(0) { 20759 return Tuint32_t(0) 20760 } 20761 if cflags >= DREQ_NONE { 20762 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20763 cflags = Tuint32_t(0) 20764 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20765 return Tuint32_t(0) 20766 } 20767 break 20768 20769 case OP_EXACTI: 20770 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20771 fallthrough 20772 // Fall through 20773 20774 case OP_CHARI: 20775 fallthrough 20776 case OP_PLUSI: 20777 fallthrough 20778 case OP_MINPLUSI: 20779 fallthrough 20780 case OP_POSPLUSI: 20781 if inassert == Tuint32_t(0) { 20782 return Tuint32_t(0) 20783 } 20784 20785 // If the character is more than one code unit long, we cannot set its 20786 // first code unit when matching caselessly. Later scanning may pick up 20787 // multiple code units. 20788 20789 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) >= 0x80 { 20790 return Tuint32_t(0) 20791 } 20792 20793 if cflags >= DREQ_NONE { 20794 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20795 cflags = DREQ_CASELESS 20796 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20797 return Tuint32_t(0) 20798 } 20799 break 20800 } 20801 20802 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20803 } 20804 20805 *(*Tuint32_t)(unsafe.Pointer(flags)) = cflags 20806 return c 20807 } 20808 20809 // ************************************************ 20810 // 20811 // Add an entry to the name/number table * 20812 // 20813 20814 // This function is called between compiling passes to add an entry to the 20815 // name/number table, maintaining alphabetical order. Checking for permitted 20816 // and forbidden duplicates has already been done. 20817 // 20818 // Arguments: 20819 // cb the compile data block 20820 // name the name to add 20821 // length the length of the name 20822 // groupno the group number 20823 // tablecount the count of names in the table so far 20824 // 20825 // Returns: nothing 20826 20827 func add_name_to_table(tls *libc.TLS, cb uintptr, name TPCRE2_SPTR8, length int32, groupno uint32, tablecount Tuint32_t) { /* pcre2_compile.c:8882:1: */ 20828 var i Tuint32_t 20829 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 20830 20831 for i = Tuint32_t(0); i < tablecount; i++ { 20832 var crc int32 = libc.Xmemcmp(tls, name, slot+uintptr(DIMM2_SIZE), uint32(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20833 if crc == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE+length)))) != 0 { 20834 crc = -1 20835 } // Current name is a substring 20836 20837 // Make space in the table and break the loop for an earlier name. For a 20838 // duplicate or later name, carry on. We do this for duplicates so that in the 20839 // simple case (when ?(| is not used) they are in order of their numbers. In all 20840 // cases they are in the order in which they appear in the pattern. 20841 20842 if crc < 0 { 20843 libc.Xmemmove(tls, slot+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size), slot, 20844 uint32((tablecount-i)*Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 20845 break 20846 } 20847 20848 // Continue the loop for a later or duplicate name 20849 20850 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 20851 } 20852 20853 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)) = TPCRE2_UCHAR8(groupno >> 8) 20854 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)) = TPCRE2_UCHAR8(groupno & uint32(255)) 20855 libc.Xmemcpy(tls, slot+uintptr(DIMM2_SIZE), name, uint32(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20856 20857 // Add a terminating zero and fill the rest of the slot with zeroes so that 20858 // the memory is all initialized. Otherwise valgrind moans about uninitialized 20859 // memory when saving serialized compiled patterns. 20860 20861 libc.Xmemset(tls, slot+uintptr(DIMM2_SIZE)+uintptr(length), 0, 20862 uint32((int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)-length-DIMM2_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 20863 } 20864 20865 // ************************************************ 20866 // 20867 // Skip in parsed pattern * 20868 // 20869 20870 // This function is called to skip parts of the parsed pattern when finding the 20871 // length of a lookbehind branch. It is called after (*ACCEPT) and (*FAIL) to find 20872 // the end of the branch, it is called to skip over an internal lookaround or 20873 // (DEFINE) group, and it is also called to skip to the end of a class, during 20874 // which it will never encounter nested groups (but there's no need to have 20875 // special code for that). 20876 // 20877 // When called to find the end of a branch or group, pptr must point to the first 20878 // meta code inside the branch, not the branch-starting code. In other cases it 20879 // can point to the item that causes the function to be called. 20880 // 20881 // Arguments: 20882 // pptr current pointer to skip from 20883 // skiptype PSKIP_CLASS when skipping to end of class 20884 // PSKIP_ALT when META_ALT ends the skip 20885 // PSKIP_KET when only META_KET ends the skip 20886 // 20887 // Returns: new value of pptr 20888 // NULL if META_END is reached - should never occur 20889 // or for an unknown meta value - likewise 20890 20891 func parsed_skip(tls *libc.TLS, pptr uintptr, skiptype Tuint32_t) uintptr { /* pcre2_compile.c:8950:17: */ 20892 var nestlevel Tuint32_t = Tuint32_t(0) 20893 20894 for ; ; pptr += 4 { 20895 var meta Tuint32_t = *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0xffff0000 20896 20897 switch meta { 20898 default: // Just skip over most items 20899 if meta < DMETA_END { 20900 continue 20901 } // Literal 20902 break 20903 20904 // This should never occur. 20905 20906 case DMETA_END: 20907 return uintptr(0) 20908 20909 // The data for these items is variable in length. 20910 20911 case DMETA_BACKREF: // Offset is present only if group >= 10 20912 if *(*Tuint32_t)(unsafe.Pointer(pptr))&0x0000ffff >= Tuint32_t(10) { 20913 pptr += 4 * uintptr(DSIZEOFFSET) 20914 } 20915 break 20916 20917 case DMETA_ESCAPE: // A few escapes are followed by data items. 20918 switch *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0x0000ffff { 20919 case ESC_P: 20920 fallthrough 20921 case ESC_p: 20922 pptr += 4 * uintptr(1) 20923 break 20924 20925 case ESC_g: 20926 fallthrough 20927 case ESC_k: 20928 pptr += 4 * uintptr(1+DSIZEOFFSET) 20929 break 20930 } 20931 break 20932 20933 case DMETA_MARK: 20934 fallthrough // Add the length of the name. 20935 case DMETA_COMMIT_ARG: 20936 fallthrough 20937 case DMETA_PRUNE_ARG: 20938 fallthrough 20939 case DMETA_SKIP_ARG: 20940 fallthrough 20941 case DMETA_THEN_ARG: 20942 pptr += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(pptr + 1*4))) 20943 break 20944 20945 // These are the "active" items in this loop. 20946 20947 case DMETA_CLASS_END: 20948 if skiptype == PSKIP_CLASS { 20949 return pptr 20950 } 20951 break 20952 20953 case DMETA_ATOMIC: 20954 fallthrough 20955 case DMETA_CAPTURE: 20956 fallthrough 20957 case DMETA_COND_ASSERT: 20958 fallthrough 20959 case DMETA_COND_DEFINE: 20960 fallthrough 20961 case DMETA_COND_NAME: 20962 fallthrough 20963 case DMETA_COND_NUMBER: 20964 fallthrough 20965 case DMETA_COND_RNAME: 20966 fallthrough 20967 case DMETA_COND_RNUMBER: 20968 fallthrough 20969 case DMETA_COND_VERSION: 20970 fallthrough 20971 case DMETA_LOOKAHEAD: 20972 fallthrough 20973 case DMETA_LOOKAHEADNOT: 20974 fallthrough 20975 case DMETA_LOOKAHEAD_NA: 20976 fallthrough 20977 case DMETA_LOOKBEHIND: 20978 fallthrough 20979 case DMETA_LOOKBEHINDNOT: 20980 fallthrough 20981 case DMETA_LOOKBEHIND_NA: 20982 fallthrough 20983 case DMETA_NOCAPTURE: 20984 fallthrough 20985 case DMETA_SCRIPT_RUN: 20986 nestlevel++ 20987 break 20988 20989 case DMETA_ALT: 20990 if nestlevel == Tuint32_t(0) && skiptype == PSKIP_ALT { 20991 return pptr 20992 } 20993 break 20994 20995 case DMETA_KET: 20996 if nestlevel == Tuint32_t(0) { 20997 return pptr 20998 } 20999 nestlevel-- 21000 break 21001 } 21002 21003 // The extra data item length for each meta is in a table. 21004 21005 meta = meta >> 16 & Tuint32_t(0x7fff) 21006 if uint32(meta) >= uint32(unsafe.Sizeof(meta_extra_lengths)) { 21007 return uintptr(0) 21008 } 21009 pptr += 4 * uintptr(meta_extra_lengths[meta]) 21010 } 21011 // Control never reaches here 21012 return pptr 21013 } 21014 21015 // ************************************************ 21016 // 21017 // Find length of a parsed group * 21018 // 21019 21020 // This is called for nested groups within a branch of a lookbehind whose 21021 // length is being computed. If all the branches in the nested group have the same 21022 // length, that is OK. On entry, the pointer must be at the first element after 21023 // the group initializing code. On exit it points to OP_KET. Caching is used to 21024 // improve processing speed when the same capturing group occurs many times. 21025 // 21026 // Arguments: 21027 // pptrptr pointer to pointer in the parsed pattern 21028 // isinline FALSE if a reference or recursion; TRUE for inline group 21029 // errcodeptr pointer to the errorcode 21030 // lcptr pointer to the loop counter 21031 // group number of captured group or -1 for a non-capturing group 21032 // recurses chain of recurse_check to catch mutual recursion 21033 // cb pointer to the compile data 21034 // 21035 // Returns: the group length or a negative number 21036 21037 func get_grouplength(tls *libc.TLS, pptrptr uintptr, isinline TBOOL, errcodeptr uintptr, lcptr uintptr, group int32, recurses uintptr, cb uintptr) int32 { /* pcre2_compile.c:9070:1: */ 21038 var branchlength int32 21039 var grouplength int32 21040 var groupinfo Tuint32_t 21041 grouplength = -1 21042 21043 // The cache can be used only if there is no possibility of there being two 21044 // groups with the same number. We do not need to set the end pointer for a group 21045 // that is being processed as a back reference or recursion, but we must do so for 21046 // an inline group. 21047 21048 if !(group > 0 && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21049 goto __1 21050 } 21051 21052 groupinfo = *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) 21053 if !(groupinfo&DGI_NOT_FIXED_LENGTH != Tuint32_t(0)) { 21054 goto __2 21055 } 21056 return -1 21057 __2: 21058 ; 21059 if !(groupinfo&DGI_SET_FIXED_LENGTH != Tuint32_t(0)) { 21060 goto __3 21061 } 21062 21063 if !(isinline != 0) { 21064 goto __4 21065 } 21066 *(*uintptr)(unsafe.Pointer(pptrptr)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(pptrptr)), PSKIP_KET) 21067 __4: 21068 ; 21069 return int32(groupinfo & DGI_FIXED_LENGTH_MASK) 21070 __3: 21071 ; 21072 __1: 21073 ; 21074 21075 // Scan the group. In this case we find the end pointer of necessity. 21076 21077 __5: 21078 21079 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21080 if !(branchlength < 0) { 21081 goto __8 21082 } 21083 goto ISNOTFIXED 21084 __8: 21085 ; 21086 if !(grouplength == -1) { 21087 goto __9 21088 } 21089 grouplength = branchlength 21090 goto __10 21091 __9: 21092 if !(grouplength != branchlength) { 21093 goto __11 21094 } 21095 goto ISNOTFIXED 21096 __11: 21097 ; 21098 __10: 21099 ; 21100 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pptrptr)))) == DMETA_KET) { 21101 goto __12 21102 } 21103 goto __7 21104 __12: 21105 ; 21106 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 // Skip META_ALT 21107 goto __6 21108 __6: 21109 goto __5 21110 goto __7 21111 __7: 21112 ; 21113 21114 if !(group > 0) { 21115 goto __13 21116 } 21117 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_SET_FIXED_LENGTH | uint32(grouplength) 21118 __13: 21119 ; 21120 return grouplength 21121 21122 ISNOTFIXED: 21123 if !(group > 0) { 21124 goto __14 21125 } 21126 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_NOT_FIXED_LENGTH 21127 __14: 21128 ; 21129 return -1 21130 } 21131 21132 // ************************************************ 21133 // 21134 // Find length of a parsed branch * 21135 // 21136 21137 // Return a fixed length for a branch in a lookbehind, giving an error if the 21138 // length is not fixed. On entry, *pptrptr points to the first element inside the 21139 // branch. On exit it is set to point to the ALT or KET. 21140 // 21141 // Arguments: 21142 // pptrptr pointer to pointer in the parsed pattern 21143 // errcodeptr pointer to error code 21144 // lcptr pointer to loop counter 21145 // recurses chain of recurse_check to catch mutual recursion 21146 // cb pointer to compile block 21147 // 21148 // Returns: the length, or a negative value on error 21149 21150 func get_branchlength(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) int32 { /* pcre2_compile.c:9134:1: */ 21151 bp := tls.Alloc(16) 21152 defer tls.Free(16) 21153 21154 var branchlength int32 21155 var grouplength int32 21156 var lastitemlength Tuint32_t 21157 // var pptr uintptr at bp, 4 21158 21159 var offset Tsize_t 21160 // var this_recurse Tparsed_recurse_check at bp+8, 8 21161 21162 var i int32 21163 var name TPCRE2_SPTR8 21164 var is_dupname TBOOL 21165 var ng uintptr 21166 var meta_code Tuint32_t 21167 var length Tuint32_t 21168 var r uintptr 21169 // var gptr uintptr at bp+4, 4 21170 21171 var gptrend uintptr 21172 var escape Tuint32_t 21173 var group Tuint32_t 21174 var itemlength Tuint32_t 21175 branchlength = 0 21176 lastitemlength = Tuint32_t(0) 21177 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 21178 21179 // A large and/or complex regex can take too long to process. This can happen 21180 // more often when (?| groups are present in the pattern because their length 21181 // cannot be cached. 21182 21183 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(lcptr)), 1) > 2000) { 21184 goto __1 21185 } 21186 21187 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR35 // Lookbehind is too complicated 21188 return -1 21189 __1: 21190 ; 21191 21192 // Scan the branch, accumulating the length. 21193 21194 __2: 21195 ; 21196 group = Tuint32_t(0) 21197 itemlength = Tuint32_t(0) 21198 21199 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END) { 21200 goto __5 21201 } 21202 21203 itemlength = Tuint32_t(1) 21204 goto __6 21205 __5: 21206 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 21207 case DMETA_KET: 21208 goto __8 21209 case DMETA_ALT: 21210 goto __9 21211 21212 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21213 // actual termination. 21214 21215 case DMETA_ACCEPT: 21216 goto __10 21217 case DMETA_FAIL: 21218 goto __11 21219 21220 case DMETA_MARK: 21221 goto __12 21222 case DMETA_COMMIT_ARG: 21223 goto __13 21224 case DMETA_PRUNE_ARG: 21225 goto __14 21226 case DMETA_SKIP_ARG: 21227 goto __15 21228 case DMETA_THEN_ARG: 21229 goto __16 21230 21231 case DMETA_CIRCUMFLEX: 21232 goto __17 21233 case DMETA_COMMIT: 21234 goto __18 21235 case DMETA_DOLLAR: 21236 goto __19 21237 case DMETA_PRUNE: 21238 goto __20 21239 case DMETA_SKIP: 21240 goto __21 21241 case DMETA_THEN: 21242 goto __22 21243 21244 case DMETA_OPTIONS: 21245 goto __23 21246 21247 case DMETA_BIGVALUE: 21248 goto __24 21249 21250 case DMETA_CLASS: 21251 goto __25 21252 case DMETA_CLASS_NOT: 21253 goto __26 21254 21255 case DMETA_CLASS_EMPTY_NOT: 21256 goto __27 21257 case DMETA_DOT: 21258 goto __28 21259 21260 case DMETA_CALLOUT_NUMBER: 21261 goto __29 21262 21263 case DMETA_CALLOUT_STRING: 21264 goto __30 21265 21266 // Only some escapes consume a character. Of those, \R and \X are never 21267 // allowed because they might match more than character. \C is allowed only in 21268 // 32-bit and non-UTF 8/16-bit modes. 21269 21270 case DMETA_ESCAPE: 21271 goto __31 21272 21273 // Lookaheads do not contribute to the length of this branch, but they may 21274 // contain lookbehinds within them whose lengths need to be set. 21275 21276 case DMETA_LOOKAHEAD: 21277 goto __32 21278 case DMETA_LOOKAHEADNOT: 21279 goto __33 21280 case DMETA_LOOKAHEAD_NA: 21281 goto __34 21282 21283 // A nested lookbehind does not contribute any length to this lookbehind, 21284 // but must itself be checked and have its lengths set. 21285 21286 case DMETA_LOOKBEHIND: 21287 goto __35 21288 case DMETA_LOOKBEHINDNOT: 21289 goto __36 21290 case DMETA_LOOKBEHIND_NA: 21291 goto __37 21292 21293 // Back references and recursions are handled by very similar code. At this 21294 // stage, the names generated in the parsing pass are available, but the main 21295 // name table has not yet been created. So for the named varieties, scan the 21296 // list of names in order to get the number of the first one in the pattern, 21297 // and whether or not this name is duplicated. 21298 21299 case DMETA_BACKREF_BYNAME: 21300 goto __38 21301 // Fall through 21302 21303 case DMETA_RECURSE_BYNAME: 21304 goto __39 // Duplicate name or number 21305 21306 // The offset values for back references < 10 are in a separate vector 21307 // because otherwise they would use more than two parsed pattern elements on 21308 // 64-bit systems. 21309 21310 case DMETA_BACKREF: 21311 goto __40 21312 21313 // Fall through 21314 // For groups >= 10 - picking up group twice does no harm. 21315 21316 // A true recursion implies not fixed length, but a subroutine call may 21317 // be OK. Back reference "recursions" are also failed. 21318 21319 case DMETA_RECURSE: 21320 goto __41 21321 21322 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21323 // the length of this branch. Skip from the following item to the next 21324 // unpaired ket. 21325 21326 case DMETA_COND_DEFINE: 21327 goto __42 21328 21329 // Check other nested groups - advance past the initial data for each type 21330 // and then seek a fixed length with get_grouplength(). 21331 21332 case DMETA_COND_NAME: 21333 goto __43 21334 case DMETA_COND_NUMBER: 21335 goto __44 21336 case DMETA_COND_RNAME: 21337 goto __45 21338 case DMETA_COND_RNUMBER: 21339 goto __46 21340 21341 case DMETA_COND_ASSERT: 21342 goto __47 21343 21344 case DMETA_COND_VERSION: 21345 goto __48 21346 21347 case DMETA_CAPTURE: 21348 goto __49 21349 // Fall through 21350 21351 case DMETA_ATOMIC: 21352 goto __50 21353 case DMETA_NOCAPTURE: 21354 goto __51 21355 case DMETA_SCRIPT_RUN: 21356 goto __52 21357 21358 // Exact repetition is OK; variable repetition is not. A repetition of zero 21359 // must subtract the length that has already been added. 21360 21361 case DMETA_MINMAX: 21362 goto __53 21363 case DMETA_MINMAX_PLUS: 21364 goto __54 21365 case DMETA_MINMAX_QUERY: 21366 goto __55 21367 // Fall through 21368 21369 // Any other item means this branch does not have a fixed length. 21370 21371 default: 21372 goto __56 21373 } 21374 goto __7 21375 21376 __8: 21377 __9: 21378 goto EXIT 21379 21380 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21381 // actual termination. 21382 21383 __10: 21384 __11: 21385 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_ALT) 21386 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21387 goto __57 21388 } 21389 goto PARSED_SKIP_FAILED 21390 __57: 21391 ; 21392 goto EXIT 21393 21394 __12: 21395 __13: 21396 __14: 21397 __15: 21398 __16: 21399 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))+Tuint32_t(1)) 21400 goto __7 21401 21402 __17: 21403 __18: 21404 __19: 21405 __20: 21406 __21: 21407 __22: 21408 goto __7 21409 21410 __23: 21411 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21412 goto __7 21413 21414 __24: 21415 itemlength = Tuint32_t(1) 21416 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21417 goto __7 21418 21419 __25: 21420 __26: 21421 itemlength = Tuint32_t(1) 21422 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_CLASS) 21423 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21424 goto __58 21425 } 21426 goto PARSED_SKIP_FAILED 21427 __58: 21428 ; 21429 goto __7 21430 21431 __27: 21432 __28: 21433 itemlength = Tuint32_t(1) 21434 goto __7 21435 21436 __29: 21437 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21438 goto __7 21439 21440 __30: 21441 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 21442 goto __7 21443 21444 // Only some escapes consume a character. Of those, \R and \X are never 21445 // allowed because they might match more than character. \C is allowed only in 21446 // 32-bit and non-UTF 8/16-bit modes. 21447 21448 __31: 21449 escape = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21450 if !(escape == ESC_R || escape == ESC_X) { 21451 goto __59 21452 } 21453 return -1 21454 __59: 21455 ; 21456 if !(escape > ESC_b && escape < ESC_Z) { 21457 goto __60 21458 } 21459 21460 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0) && escape == ESC_C) { 21461 goto __61 21462 } 21463 21464 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR36 21465 return -1 21466 __61: 21467 ; 21468 itemlength = Tuint32_t(1) 21469 if !(escape == ESC_p || escape == ESC_P) { 21470 goto __62 21471 } 21472 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21473 __62: 21474 ; // Skip prop data 21475 __60: 21476 ; 21477 goto __7 21478 21479 // Lookaheads do not contribute to the length of this branch, but they may 21480 // contain lookbehinds within them whose lengths need to be set. 21481 21482 __32: 21483 __33: 21484 __34: 21485 *(*int32)(unsafe.Pointer(errcodeptr)) = check_lookbehinds(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, bp, recurses, cb, lcptr) 21486 if !(*(*int32)(unsafe.Pointer(errcodeptr)) != 0) { 21487 goto __63 21488 } 21489 return -1 21490 __63: 21491 ; 21492 21493 // Ignore any qualifiers that follow a lookahead assertion. 21494 21495 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21496 case DMETA_ASTERISK: 21497 goto __65 21498 case DMETA_ASTERISK_PLUS: 21499 goto __66 21500 case DMETA_ASTERISK_QUERY: 21501 goto __67 21502 case DMETA_PLUS: 21503 goto __68 21504 case DMETA_PLUS_PLUS: 21505 goto __69 21506 case DMETA_PLUS_QUERY: 21507 goto __70 21508 case DMETA_QUERY: 21509 goto __71 21510 case DMETA_QUERY_PLUS: 21511 goto __72 21512 case DMETA_QUERY_QUERY: 21513 goto __73 21514 21515 case DMETA_MINMAX: 21516 goto __74 21517 case DMETA_MINMAX_PLUS: 21518 goto __75 21519 case DMETA_MINMAX_QUERY: 21520 goto __76 21521 21522 default: 21523 goto __77 21524 } 21525 goto __64 21526 21527 __65: 21528 __66: 21529 __67: 21530 __68: 21531 __69: 21532 __70: 21533 __71: 21534 __72: 21535 __73: 21536 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21537 goto __64 21538 21539 __74: 21540 __75: 21541 __76: 21542 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21543 goto __64 21544 21545 __77: 21546 goto __64 21547 __64: 21548 ; 21549 goto __7 21550 21551 // A nested lookbehind does not contribute any length to this lookbehind, 21552 // but must itself be checked and have its lengths set. 21553 21554 __35: 21555 __36: 21556 __37: 21557 if !!(set_lookbehind_lengths(tls, bp, errcodeptr, lcptr, recurses, cb) != 0) { 21558 goto __78 21559 } 21560 return -1 21561 __78: 21562 ; 21563 goto __7 21564 21565 // Back references and recursions are handled by very similar code. At this 21566 // stage, the names generated in the parsing pass are available, but the main 21567 // name table has not yet been created. So for the named varieties, scan the 21568 // list of names in order to get the number of the first one in the pattern, 21569 // and whether or not this name is duplicated. 21570 21571 __38: 21572 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 21573 goto __79 21574 } 21575 goto ISNOTFIXED 21576 __79: 21577 ; 21578 // Fall through 21579 21580 __39: 21581 21582 is_dupname = DFALSE 21583 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 21584 meta_code = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 21585 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 4))) 21586 21587 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) 21588 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21589 21590 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 21591 i = 0 21592 __80: 21593 if !(i < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 21594 goto __82 21595 } 21596 21597 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint32(length)) == 0) { 21598 goto __83 21599 } 21600 21601 group = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 21602 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) 21603 goto __82 21604 __83: 21605 ; 21606 goto __81 21607 __81: 21608 i++ 21609 ng += 12 21610 goto __80 21611 goto __82 21612 __82: 21613 ; 21614 21615 if !(group == Tuint32_t(0)) { 21616 goto __84 21617 } 21618 21619 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21620 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21621 return -1 21622 __84: 21623 ; 21624 21625 // A numerical back reference can be fixed length if duplicate capturing 21626 // groups are not being used. A non-duplicate named back reference can also 21627 // be handled. 21628 21629 if !(meta_code == DMETA_RECURSE_BYNAME || !(is_dupname != 0) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21630 goto __85 21631 } 21632 goto RECURSE_OR_BACKREF_LENGTH 21633 __85: 21634 ; // Handle as a numbered version. 21635 21636 goto ISNOTFIXED // Duplicate name or number 21637 21638 // The offset values for back references < 10 are in a separate vector 21639 // because otherwise they would use more than two parsed pattern elements on 21640 // 64-bit systems. 21641 21642 __40: 21643 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0) || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) != Tuint32_t(0)) { 21644 goto __86 21645 } 21646 goto ISNOTFIXED 21647 __86: 21648 ; 21649 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21650 if !(group < Tuint32_t(10)) { 21651 goto __87 21652 } 21653 21654 offset = *(*Tsize_t)(unsafe.Pointer(cb + 44 + uintptr(group)*4)) 21655 goto RECURSE_OR_BACKREF_LENGTH 21656 __87: 21657 ; 21658 21659 // Fall through 21660 // For groups >= 10 - picking up group twice does no harm. 21661 21662 // A true recursion implies not fixed length, but a subroutine call may 21663 // be OK. Back reference "recursions" are also failed. 21664 21665 __41: 21666 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21667 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) 21668 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21669 21670 RECURSE_OR_BACKREF_LENGTH: 21671 if !(group > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 21672 goto __88 21673 } 21674 21675 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21676 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21677 return -1 21678 __88: 21679 ; 21680 if !(group == Tuint32_t(0)) { 21681 goto __89 21682 } 21683 goto ISNOTFIXED 21684 __89: 21685 ; // Local recursion 21686 *(*uintptr)(unsafe.Pointer(bp + 4 /* gptr */)) = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 21687 __90: 21688 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))) != DMETA_END) { 21689 goto __92 21690 } 21691 21692 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4))))&0xffff0000 == DMETA_BIGVALUE) { 21693 goto __93 21694 } 21695 *(*uintptr)(unsafe.Pointer(bp + 4 /* gptr */)) += 4 21696 goto __94 21697 __93: 21698 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))) == DMETA_CAPTURE|group) { 21699 goto __95 21700 } 21701 goto __92 21702 __95: 21703 ; 21704 __94: 21705 ; 21706 goto __91 21707 __91: 21708 *(*uintptr)(unsafe.Pointer(bp + 4 /* gptr */)) += 4 21709 goto __90 21710 goto __92 21711 __92: 21712 ; 21713 21714 // We must start the search for the end of the group at the first meta code 21715 // inside the group. Otherwise it will be treated as an enclosed group. 21716 21717 gptrend = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp + 4))+uintptr(1)*4, PSKIP_KET) 21718 if !(gptrend == uintptr(0)) { 21719 goto __96 21720 } 21721 goto PARSED_SKIP_FAILED 21722 __96: 21723 ; 21724 if !(*(*uintptr)(unsafe.Pointer(bp)) > *(*uintptr)(unsafe.Pointer(bp + 4)) && *(*uintptr)(unsafe.Pointer(bp)) < gptrend) { 21725 goto __97 21726 } 21727 goto ISNOTFIXED 21728 __97: 21729 ; // Local recursion 21730 r = recurses 21731 __98: 21732 if !(r != uintptr(0)) { 21733 goto __100 21734 } 21735 if !((*Tparsed_recurse_check)(unsafe.Pointer(r)).Fgroupptr == *(*uintptr)(unsafe.Pointer(bp + 4))) { 21736 goto __101 21737 } 21738 goto __100 21739 __101: 21740 ; 21741 goto __99 21742 __99: 21743 r = (*Tparsed_recurse_check)(unsafe.Pointer(r)).Fprev 21744 goto __98 21745 goto __100 21746 __100: 21747 ; 21748 if !(r != uintptr(0)) { 21749 goto __102 21750 } 21751 goto ISNOTFIXED 21752 __102: 21753 ; // Mutual recursion 21754 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 8 /* &this_recurse */)).Fprev = recurses 21755 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 8 /* &this_recurse */)).Fgroupptr = *(*uintptr)(unsafe.Pointer(bp + 4 /* gptr */)) 21756 21757 // We do not need to know the position of the end of the group, that is, 21758 // gptr is not used after the call to get_grouplength(). Setting the second 21759 // argument FALSE stops it scanning for the end when the length can be found 21760 // in the cache. 21761 21762 *(*uintptr)(unsafe.Pointer(bp + 4 /* gptr */)) += 4 21763 grouplength = get_grouplength(tls, bp+4, DFALSE, errcodeptr, lcptr, int32(group), 21764 bp+8, cb) 21765 if !(grouplength < 0) { 21766 goto __103 21767 } 21768 21769 if !(*(*int32)(unsafe.Pointer(errcodeptr)) == 0) { 21770 goto __104 21771 } 21772 goto ISNOTFIXED 21773 __104: 21774 ; 21775 return -1 // Error already set 21776 __103: 21777 ; 21778 itemlength = Tuint32_t(grouplength) 21779 goto __7 21780 21781 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21782 // the length of this branch. Skip from the following item to the next 21783 // unpaired ket. 21784 21785 __42: 21786 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, PSKIP_KET) 21787 goto __7 21788 21789 // Check other nested groups - advance past the initial data for each type 21790 // and then seek a fixed length with get_grouplength(). 21791 21792 __43: 21793 __44: 21794 __45: 21795 __46: 21796 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2+DSIZEOFFSET) 21797 goto CHECK_GROUP 21798 21799 __47: 21800 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21801 goto CHECK_GROUP 21802 21803 __48: 21804 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(4) 21805 goto CHECK_GROUP 21806 21807 __49: 21808 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21809 // Fall through 21810 21811 __50: 21812 __51: 21813 __52: 21814 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21815 CHECK_GROUP: 21816 grouplength = get_grouplength(tls, bp, DTRUE, errcodeptr, lcptr, int32(group), 21817 recurses, cb) 21818 if !(grouplength < 0) { 21819 goto __105 21820 } 21821 return -1 21822 __105: 21823 ; 21824 itemlength = Tuint32_t(grouplength) 21825 goto __7 21826 21827 // Exact repetition is OK; variable repetition is not. A repetition of zero 21828 // must subtract the length that has already been added. 21829 21830 __53: 21831 __54: 21832 __55: 21833 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) { 21834 goto __106 21835 } 21836 21837 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21838 case Tuint32_t(0): 21839 goto __108 21840 21841 case Tuint32_t(1): 21842 goto __109 21843 21844 default: 21845 goto __110 21846 } 21847 goto __107 21848 21849 __108: 21850 branchlength = int32(Tuint32_t(branchlength) - lastitemlength) 21851 goto __107 21852 21853 __109: 21854 itemlength = Tuint32_t(0) 21855 goto __107 21856 21857 __110: // Check for integer overflow 21858 if !(lastitemlength != Tuint32_t(0) && Tuint32_t(0x7fffffff)/lastitemlength < *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))-Tuint32_t(1)) { 21859 goto __111 21860 } 21861 21862 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 // Integer overflow; lookbehind too big 21863 return -1 21864 __111: 21865 ; 21866 itemlength = (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) - Tuint32_t(1)) * lastitemlength 21867 goto __107 21868 __107: 21869 ; 21870 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21871 goto __7 21872 __106: 21873 ; 21874 // Fall through 21875 21876 // Any other item means this branch does not have a fixed length. 21877 21878 __56: 21879 ISNOTFIXED: 21880 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 // Not fixed length 21881 return -1 21882 __7: 21883 ; 21884 __6: 21885 ; 21886 21887 // Add the item length to the branchlength, checking for integer overflow and 21888 // for the branch length exceeding the limit. 21889 21890 if !(0x7fffffff-branchlength < int32(itemlength) || libc.AssignAddInt32(&branchlength, int32(itemlength)) > 65535) { 21891 goto __112 21892 } 21893 21894 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 21895 return -1 21896 __112: 21897 ; 21898 21899 // Save this item length for use if the next item is a quantifier. 21900 21901 lastitemlength = itemlength 21902 goto __3 21903 __3: 21904 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21905 goto __2 21906 goto __4 21907 __4: 21908 ; 21909 21910 EXIT: 21911 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 21912 return branchlength 21913 21914 PARSED_SKIP_FAILED: 21915 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR90 21916 return -1 21917 } 21918 21919 // ************************************************ 21920 // 21921 // Set lengths in a lookbehind * 21922 // 21923 21924 // This function is called for each lookbehind, to set the lengths in its 21925 // branches. An error occurs if any branch does not have a fixed length that is 21926 // less than the maximum (65535). On exit, the pointer must be left on the final 21927 // ket. 21928 // 21929 // The function also maintains the max_lookbehind value. Any lookbehind branch 21930 // that contains a nested lookbehind may actually look further back than the 21931 // length of the branch. The additional amount is passed back from 21932 // get_branchlength() as an "extra" value. 21933 // 21934 // Arguments: 21935 // pptrptr pointer to pointer in the parsed pattern 21936 // errcodeptr pointer to error code 21937 // lcptr pointer to loop counter 21938 // recurses chain of recurse_check to catch mutual recursion 21939 // cb pointer to compile block 21940 // 21941 // Returns: TRUE if all is well 21942 // FALSE otherwise, with error code and offset set 21943 21944 func set_lookbehind_lengths(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:9545:1: */ 21945 var offset Tsize_t 21946 var branchlength int32 21947 var bptr uintptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21948 21949 { 21950 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 2*4))) 21951 } 21952 // Offset for error messages 21953 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(DSIZEOFFSET) * 4 21954 21955 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(bptr)) == DMETA_ALT { 21956 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 21957 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21958 if branchlength < 0 { 21959 // The errorcode and offset may already be set from a nested lookbehind. 21960 if *(*int32)(unsafe.Pointer(errcodeptr)) == 0 { 21961 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 21962 } 21963 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset == libc.CplUint32(Tsize_t(0)) { 21964 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21965 } 21966 return DFALSE 21967 } 21968 if branchlength > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind { 21969 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = branchlength 21970 } 21971 *(*Tuint32_t)(unsafe.Pointer(bptr)) |= Tuint32_t(branchlength) // branchlength never more than 65535 21972 bptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21973 } 21974 21975 return DTRUE 21976 } 21977 21978 // ************************************************ 21979 // 21980 // Check parsed pattern lookbehinds * 21981 // 21982 21983 // This function is called at the end of parsing a pattern if any lookbehinds 21984 // were encountered. It scans the parsed pattern for them, calling 21985 // set_lookbehind_lengths() for each one. At the start, the errorcode is zero and 21986 // the error offset is marked unset. The enables the functions above not to 21987 // override settings from deeper nestings. 21988 // 21989 // This function is called recursively from get_branchlength() for lookaheads in 21990 // order to process any lookbehinds that they may contain. It stops when it hits a 21991 // non-nested closing parenthesis in this case, returning a pointer to it. 21992 // 21993 // Arguments 21994 // pptr points to where to start (start of pattern or start of lookahead) 21995 // retptr if not NULL, return the ket pointer here 21996 // recurses chain of recurse_check to catch mutual recursion 21997 // cb points to the compile block 21998 // lcptr points to loop counter 21999 // 22000 // Returns: 0 on success, or an errorcode (cb->erroroffset will be set) 22001 22002 func check_lookbehinds(tls *libc.TLS, pptr uintptr, retptr uintptr, recurses uintptr, cb uintptr, lcptr uintptr) int32 { /* pcre2_compile.c:9602:1: */ 22003 bp := tls.Alloc(8) 22004 defer tls.Free(8) 22005 *(*uintptr)(unsafe.Pointer(bp)) = pptr 22006 22007 *(*int32)(unsafe.Pointer(bp + 4 /* errorcode */)) = 0 22008 var nestlevel int32 = 0 22009 22010 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = libc.CplUint32(Tsize_t(0)) 22011 22012 for ; *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != DMETA_END; *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 { 22013 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END { 22014 continue 22015 } // Literal 22016 22017 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 22018 default: 22019 return ERR70 // Unrecognized meta code 22020 22021 case DMETA_ESCAPE: 22022 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))-DMETA_ESCAPE == ESC_P || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))-DMETA_ESCAPE == ESC_p { 22023 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22024 } 22025 break 22026 22027 case DMETA_KET: 22028 if libc.PreDecInt32(&nestlevel, 1) < 0 { 22029 if retptr != uintptr(0) { 22030 *(*uintptr)(unsafe.Pointer(retptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 22031 } 22032 return 0 22033 } 22034 break 22035 22036 case DMETA_ATOMIC: 22037 fallthrough 22038 case DMETA_CAPTURE: 22039 fallthrough 22040 case DMETA_COND_ASSERT: 22041 fallthrough 22042 case DMETA_LOOKAHEAD: 22043 fallthrough 22044 case DMETA_LOOKAHEADNOT: 22045 fallthrough 22046 case DMETA_LOOKAHEAD_NA: 22047 fallthrough 22048 case DMETA_NOCAPTURE: 22049 fallthrough 22050 case DMETA_SCRIPT_RUN: 22051 nestlevel++ 22052 break 22053 22054 case DMETA_ACCEPT: 22055 fallthrough 22056 case DMETA_ALT: 22057 fallthrough 22058 case DMETA_ASTERISK: 22059 fallthrough 22060 case DMETA_ASTERISK_PLUS: 22061 fallthrough 22062 case DMETA_ASTERISK_QUERY: 22063 fallthrough 22064 case DMETA_BACKREF: 22065 fallthrough 22066 case DMETA_CIRCUMFLEX: 22067 fallthrough 22068 case DMETA_CLASS: 22069 fallthrough 22070 case DMETA_CLASS_EMPTY: 22071 fallthrough 22072 case DMETA_CLASS_EMPTY_NOT: 22073 fallthrough 22074 case DMETA_CLASS_END: 22075 fallthrough 22076 case DMETA_CLASS_NOT: 22077 fallthrough 22078 case DMETA_COMMIT: 22079 fallthrough 22080 case DMETA_DOLLAR: 22081 fallthrough 22082 case DMETA_DOT: 22083 fallthrough 22084 case DMETA_FAIL: 22085 fallthrough 22086 case DMETA_PLUS: 22087 fallthrough 22088 case DMETA_PLUS_PLUS: 22089 fallthrough 22090 case DMETA_PLUS_QUERY: 22091 fallthrough 22092 case DMETA_PRUNE: 22093 fallthrough 22094 case DMETA_QUERY: 22095 fallthrough 22096 case DMETA_QUERY_PLUS: 22097 fallthrough 22098 case DMETA_QUERY_QUERY: 22099 fallthrough 22100 case DMETA_RANGE_ESCAPED: 22101 fallthrough 22102 case DMETA_RANGE_LITERAL: 22103 fallthrough 22104 case DMETA_SKIP: 22105 fallthrough 22106 case DMETA_THEN: 22107 break 22108 22109 case DMETA_RECURSE: 22110 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22111 break 22112 22113 case DMETA_BACKREF_BYNAME: 22114 fallthrough 22115 case DMETA_RECURSE_BYNAME: 22116 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22117 break 22118 22119 case DMETA_COND_DEFINE: 22120 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22121 nestlevel++ 22122 break 22123 22124 case DMETA_COND_NAME: 22125 fallthrough 22126 case DMETA_COND_NUMBER: 22127 fallthrough 22128 case DMETA_COND_RNAME: 22129 fallthrough 22130 case DMETA_COND_RNUMBER: 22131 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22132 nestlevel++ 22133 break 22134 22135 case DMETA_COND_VERSION: 22136 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22137 nestlevel++ 22138 break 22139 22140 case DMETA_CALLOUT_STRING: 22141 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 22142 break 22143 22144 case DMETA_BIGVALUE: 22145 fallthrough 22146 case DMETA_OPTIONS: 22147 fallthrough 22148 case DMETA_POSIX: 22149 fallthrough 22150 case DMETA_POSIX_NEG: 22151 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22152 break 22153 22154 case DMETA_MINMAX: 22155 fallthrough 22156 case DMETA_MINMAX_QUERY: 22157 fallthrough 22158 case DMETA_MINMAX_PLUS: 22159 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 22160 break 22161 22162 case DMETA_CALLOUT_NUMBER: 22163 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22164 break 22165 22166 case DMETA_MARK: 22167 fallthrough 22168 case DMETA_COMMIT_ARG: 22169 fallthrough 22170 case DMETA_PRUNE_ARG: 22171 fallthrough 22172 case DMETA_SKIP_ARG: 22173 fallthrough 22174 case DMETA_THEN_ARG: 22175 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(Tuint32_t(1)+*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))) 22176 break 22177 22178 case DMETA_LOOKBEHIND: 22179 fallthrough 22180 case DMETA_LOOKBEHINDNOT: 22181 fallthrough 22182 case DMETA_LOOKBEHIND_NA: 22183 if !(set_lookbehind_lengths(tls, bp, bp+4, lcptr, recurses, cb) != 0) { 22184 return *(*int32)(unsafe.Pointer(bp + 4 /* errorcode */)) 22185 } 22186 break 22187 } 22188 } 22189 22190 return 0 22191 } 22192 22193 // ************************************************ 22194 // 22195 // External function to compile a pattern * 22196 // 22197 22198 // This function reads a regular expression in the form of a string and returns 22199 // a pointer to a block of store holding a compiled version of the expression. 22200 // 22201 // Arguments: 22202 // pattern the regular expression 22203 // patlen the length of the pattern, or PCRE2_ZERO_TERMINATED 22204 // options option bits 22205 // errorptr pointer to errorcode 22206 // erroroffset pointer to error offset 22207 // ccontext points to a compile context or is NULL 22208 // 22209 // Returns: pointer to compiled data block, or NULL on error, 22210 // with errorcode and erroroffset set 22211 22212 func Xpcre2_compile_8(tls *libc.TLS, pattern TPCRE2_SPTR8, patlen Tsize_t, options Tuint32_t, errorptr uintptr, erroroffset uintptr, ccontext uintptr) uintptr { /* pcre2_compile.c:9761:27: */ 22213 bp := tls.Alloc(17652) 22214 defer tls.Free(17652) 22215 22216 var utf TBOOL // Set TRUE for UTF mode 22217 var ucp TBOOL // Set TRUE for UCP mode 22218 // var has_lookbehind TBOOL at bp+17548, 4 22219 // Set TRUE if a lookbehind is found 22220 var zero_terminated TBOOL 22221 _ = zero_terminated // Set TRUE for zero-terminated pattern 22222 var re uintptr // What we will return 22223 // var cb Tcompile_block_8 at bp+17360, 188 22224 // "Static" compile-time data 22225 var tables uintptr // Char tables base pointer 22226 22227 // var code uintptr at bp+17556, 4 22228 // Current pointer in compiled code 22229 var codestart TPCRE2_SPTR8 // Start of compiled code 22230 var ptr TPCRE2_SPTR8 // Current pointer in pattern 22231 // var pptr uintptr at bp+17560, 4 22232 // Current pointer in parsed pattern 22233 22234 // var length Tsize_t at bp+17584, 4 22235 // Allow for final END opcode 22236 var usedlength Tsize_t // Actual length used 22237 var re_blocksize Tsize_t // Size of memory block 22238 var big32count Tsize_t // 32-bit literals >= 0x80000000 22239 var parsed_size_needed Tsize_t // Needed for parsed pattern 22240 22241 // var firstcuflags Tuint32_t at bp+17572, 4 22242 22243 // var reqcuflags Tuint32_t at bp+17580, 4 22244 // Type of first/req code unit 22245 // var firstcu Tuint32_t at bp+17568, 4 22246 22247 // var reqcu Tuint32_t at bp+17576, 4 22248 // Value of first/req code unit 22249 var setflags Tuint32_t // NL and BSR set flags 22250 22251 var skipatstart Tuint32_t // When checking (*UTF) etc 22252 var limit_heap Tuint32_t 22253 var limit_match Tuint32_t // Unset match limits 22254 var limit_depth Tuint32_t 22255 var newline int32 // Unset; can be set by the pattern 22256 var bsr int32 // Unset; can be set by the pattern 22257 // var errorcode int32 at bp+17564, 4 22258 // Initialize to avoid compiler warn 22259 var regexrc int32 // Return from compile 22260 22261 var i Tuint32_t // Local loop counter 22262 22263 // Comments at the head of this file explain about these variables. 22264 22265 // var stack_groupinfo [256]Tuint32_t at bp+12000, 1024 22266 22267 // var stack_parsed_pattern [1024]Tuint32_t at bp+13264, 4096 22268 22269 // var named_groups [20]Tnamed_group_8 at bp+13024, 240 22270 22271 // The workspace is used in different ways in the different compiling phases. 22272 // It needs to be 16-bit aligned for the preliminary parsing scan. 22273 22274 // var c16workspace [3000]Tuint32_t at bp, 12000 22275 22276 var cworkspace uintptr 22277 var c Tuint32_t 22278 var pp Tuint32_t 22279 var p uintptr 22280 var heap_parsed_pattern uintptr 22281 // var loopcount int32 at bp+17552, 4 22282 22283 var ng uintptr 22284 var search_from TPCRE2_SPTR8 22285 var p1 int32 22286 var groupnumber int32 22287 var rcode uintptr 22288 var rgroup TPCRE2_SPTR8 22289 var ccount uint32 22290 var start int32 22291 // var rc [8]Trecurse_cache at bp+17588, 64 22292 22293 var temp uintptr 22294 var minminlength int32 22295 *(*TBOOL)(unsafe.Pointer(bp + 17548 /* has_lookbehind */)) = DFALSE 22296 re = uintptr(0) 22297 *(*Tsize_t)(unsafe.Pointer(bp + 17584 /* length */)) = Tsize_t(1) 22298 big32count = Tsize_t(0) 22299 setflags = Tuint32_t(0) 22300 limit_heap = 4294967295 22301 limit_match = 4294967295 22302 limit_depth = 4294967295 22303 newline = 0 22304 bsr = 0 22305 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = 0 22306 cworkspace = bp /* c16workspace */ 22307 22308 // -------------- Check arguments and set up the pattern ----------------- 22309 22310 // There must be error code and offset pointers. 22311 22312 if !(errorptr == uintptr(0) || erroroffset == uintptr(0)) { 22313 goto __1 22314 } 22315 return uintptr(0) 22316 __1: 22317 ; 22318 *(*int32)(unsafe.Pointer(errorptr)) = ERR0 22319 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(0) 22320 22321 // There must be a pattern! 22322 22323 if !(pattern == uintptr(0)) { 22324 goto __2 22325 } 22326 22327 *(*int32)(unsafe.Pointer(errorptr)) = ERR16 22328 return uintptr(0) 22329 __2: 22330 ; 22331 22332 // A NULL compile context means "use a default context" 22333 22334 if !(ccontext == uintptr(0)) { 22335 goto __3 22336 } 22337 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 22338 __3: 22339 ; 22340 22341 // PCRE2_MATCH_INVALID_UTF implies UTF 22342 22343 if !(options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 22344 goto __4 22345 } 22346 options = options | DPCRE2_UTF 22347 __4: 22348 ; 22349 22350 // Check that all undefined public option bits are zero. 22351 22352 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_AUTO_CALLOUT|DPCRE2_CASELESS|DPCRE2_ENDANCHORED|DPCRE2_FIRSTLINE|DPCRE2_LITERAL|DPCRE2_MATCH_INVALID_UTF|DPCRE2_NO_START_OPTIMIZE|DPCRE2_NO_UTF_CHECK|DPCRE2_USE_OFFSET_LIMIT|DPCRE2_UTF|DPCRE2_ALLOW_EMPTY_CLASS|DPCRE2_ALT_BSUX|DPCRE2_ALT_CIRCUMFLEX|DPCRE2_ALT_VERBNAMES|DPCRE2_DOLLAR_ENDONLY|DPCRE2_DOTALL|DPCRE2_DUPNAMES|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE|DPCRE2_MATCH_UNSET_BACKREF|DPCRE2_MULTILINE|DPCRE2_NEVER_BACKSLASH_C|DPCRE2_NEVER_UCP|DPCRE2_NEVER_UTF|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_NO_AUTO_POSSESS|DPCRE2_NO_DOTSTAR_ANCHOR|DPCRE2_UCP|DPCRE2_UNGREEDY) != Tuint32_t(0) || (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&libc.CplUint32(DPCRE2_EXTRA_MATCH_LINE|DPCRE2_EXTRA_MATCH_WORD|DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES|DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL|DPCRE2_EXTRA_ESCAPED_CR_IS_LF|DPCRE2_EXTRA_ALT_BSUX|DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK) != Tuint32_t(0)) { 22353 goto __5 22354 } 22355 22356 *(*int32)(unsafe.Pointer(errorptr)) = ERR17 22357 return uintptr(0) 22358 __5: 22359 ; 22360 22361 if !(options&DPCRE2_LITERAL != Tuint32_t(0) && (options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_AUTO_CALLOUT|DPCRE2_CASELESS|DPCRE2_ENDANCHORED|DPCRE2_FIRSTLINE|DPCRE2_LITERAL|DPCRE2_MATCH_INVALID_UTF|DPCRE2_NO_START_OPTIMIZE|DPCRE2_NO_UTF_CHECK|DPCRE2_USE_OFFSET_LIMIT|DPCRE2_UTF) != Tuint32_t(0) || (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&libc.CplUint32(DPCRE2_EXTRA_MATCH_LINE|DPCRE2_EXTRA_MATCH_WORD) != Tuint32_t(0))) { 22362 goto __6 22363 } 22364 22365 *(*int32)(unsafe.Pointer(errorptr)) = ERR92 22366 return uintptr(0) 22367 __6: 22368 ; 22369 22370 // A zero-terminated pattern is indicated by the special length value 22371 // PCRE2_ZERO_TERMINATED. Check for an overlong pattern. 22372 22373 if !(libc.AssignInt32(&zero_terminated, libc.Bool32(patlen == libc.CplUint32(Tsize_t(0)))) != 0) { 22374 goto __7 22375 } 22376 patlen = X_pcre2_strlen_8(tls, pattern) 22377 __7: 22378 ; 22379 22380 if !(patlen > (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length) { 22381 goto __8 22382 } 22383 22384 *(*int32)(unsafe.Pointer(errorptr)) = ERR88 22385 return uintptr(0) 22386 __8: 22387 ; 22388 22389 // From here on, all returns from this function should end up going via the 22390 // EXIT label. 22391 22392 // ------------ Initialize the "static" compile data -------------- 22393 22394 if (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables != uintptr(0) { 22395 tables = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables 22396 } else { 22397 tables = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) 22398 } 22399 22400 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Flcc = tables + uintptr(Dlcc_offset) // Individual 22401 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ffcc = tables + uintptr(Dfcc_offset) // character 22402 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fcbits = tables + uintptr(Dcbits_offset) // tables 22403 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fctypes = tables + uintptr(Dcbits_offset+Dcbit_length) 22404 22405 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fassert_depth = Tuint16_t(0) 22406 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fbracount = Tuint32_t(0) 22407 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fcx = ccontext 22408 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fdupnames = DFALSE 22409 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fend_pattern = pattern + uintptr(patlen) 22410 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ferroroffset = Tsize_t(0) 22411 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fexternal_flags = Tuint32_t(0) 22412 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fexternal_options = options 22413 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fgroupinfo = bp + 12000 /* &stack_groupinfo[0] */ 22414 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fhad_recurse = DFALSE 22415 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Flastcapture = Tuint32_t(0) 22416 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fmax_lookbehind = 0 22417 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fname_entry_size = Tuint16_t(0) 22418 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fname_table = uintptr(0) 22419 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnamed_groups = bp + 13024 /* &named_groups[0] */ 22420 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnamed_group_list_size = Tuint32_t(DNAMED_GROUP_LIST_SIZE) 22421 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnames_found = Tuint16_t(0) 22422 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fopen_caps = uintptr(0) 22423 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparens_depth = Tuint16_t(0) 22424 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparsed_pattern = bp + 13264 /* &stack_parsed_pattern[0] */ 22425 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22426 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fstart_code = cworkspace 22427 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fstart_pattern = pattern 22428 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fstart_workspace = cworkspace 22429 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fworkspace_size = Tsize_t(3000 * DLINK_SIZE) 22430 22431 // Maximum back reference and backref bitmap. The bitmap records up to 31 back 22432 // references to help in deciding whether (.*) can be treated as anchored or not. 22433 22434 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ftop_backref = Tuint32_t(0) 22435 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fbackref_map = Tuint32_t(0) 22436 22437 // Escape sequences \1 to \9 are always back references, but as they are only 22438 // two characters long, only two elements can be used in the parsed_pattern 22439 // vector. The first contains the reference, and we'd like to use the second to 22440 // record the offset in the pattern, so that forward references to non-existent 22441 // groups can be diagnosed later with an offset. However, on 64-bit systems, 22442 // PCRE2_SIZE won't fit. Instead, we have a vector of offsets for the first 22443 // occurrence of \1 to \9, indexed by the second parsed_pattern value. All other 22444 // references have enough space for the offset to be put into the parsed pattern. 22445 22446 i = Tuint32_t(0) 22447 __9: 22448 if !(i < Tuint32_t(10)) { 22449 goto __11 22450 } 22451 *(*Tsize_t)(unsafe.Pointer(bp + 17360 + 44 + uintptr(i)*4)) = libc.CplUint32(Tsize_t(0)) 22452 goto __10 22453 __10: 22454 i++ 22455 goto __9 22456 goto __11 22457 __11: 22458 ; 22459 22460 // --------------- Start looking at the pattern --------------- 22461 22462 // Unless PCRE2_LITERAL is set, check for global one-time option settings at 22463 // the start of the pattern, and remember the offset to the actual regex. With 22464 // valgrind support, make the terminator of a zero-terminated pattern 22465 // inaccessible. This catches bugs that would otherwise only show up for 22466 // non-zero-terminated patterns. 22467 22468 ptr = pattern 22469 skipatstart = Tuint32_t(0) 22470 22471 if !(options&DPCRE2_LITERAL == Tuint32_t(0)) { 22472 goto __12 22473 } 22474 22475 __13: 22476 if !(patlen-Tsize_t(skipatstart) >= Tsize_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart)))) == '\050' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart+Tuint32_t(1))))) == '\052') { 22477 goto __14 22478 } 22479 22480 i = Tuint32_t(0) 22481 __15: 22482 if !(uint32(i) < uint32(unsafe.Sizeof(pso_list))/uint32(unsafe.Sizeof(Tpso{}))) { 22483 goto __17 22484 } 22485 22486 p = uintptr(unsafe.Pointer(&pso_list)) + uintptr(i)*12 22487 22488 if !(patlen-Tsize_t(skipatstart)-Tsize_t(2) >= Tsize_t((*Tpso)(unsafe.Pointer(p)).Flength) && X_pcre2_strncmp_c8_8(tls, ptr+uintptr(skipatstart)+uintptr(2), (*Tpso)(unsafe.Pointer(p)).Fname, 22489 uint32((*Tpso)(unsafe.Pointer(p)).Flength)) == 0) { 22490 goto __18 22491 } 22492 22493 skipatstart = skipatstart + Tuint32_t(int32((*Tpso)(unsafe.Pointer(p)).Flength)+2) 22494 switch int32((*Tpso)(unsafe.Pointer(p)).Ftype) { 22495 case PSO_OPT: 22496 goto __20 22497 22498 case PSO_FLG: 22499 goto __21 22500 22501 case PSO_NL: 22502 goto __22 22503 22504 case PSO_BSR: 22505 goto __23 22506 22507 case PSO_LIMM: 22508 goto __24 22509 case PSO_LIMD: 22510 goto __25 22511 case PSO_LIMH: 22512 goto __26 22513 } 22514 goto __19 22515 22516 __20: 22517 *(*Tuint32_t)(unsafe.Pointer(bp + 17360 + 108)) |= (*Tpso)(unsafe.Pointer(p)).Fvalue 22518 goto __19 22519 22520 __21: 22521 setflags = setflags | (*Tpso)(unsafe.Pointer(p)).Fvalue 22522 goto __19 22523 22524 __22: 22525 newline = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22526 setflags = setflags | Tuint32_t(DPCRE2_NL_SET) 22527 goto __19 22528 22529 __23: 22530 bsr = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22531 setflags = setflags | Tuint32_t(DPCRE2_BSR_SET) 22532 goto __19 22533 22534 __24: 22535 __25: 22536 __26: 22537 c = Tuint32_t(0) 22538 pp = skipatstart 22539 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22540 goto __27 22541 } 22542 22543 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR60 22544 ptr += TPCRE2_SPTR8(pp) 22545 goto HAD_EARLY_ERROR 22546 __27: 22547 ; 22548 __28: 22549 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22550 goto __29 22551 } 22552 22553 if !(c > 4294967295/uint32(10)-uint32(1)) { 22554 goto __30 22555 } 22556 goto __29 22557 __30: 22558 ; // Integer overflow 22559 c = c*Tuint32_t(10) + Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1)))))-'\060') 22560 goto __28 22561 __29: 22562 ; 22563 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1))))) != '\051') { 22564 goto __31 22565 } 22566 22567 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR60 22568 ptr += TPCRE2_SPTR8(pp) 22569 goto HAD_EARLY_ERROR 22570 __31: 22571 ; 22572 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMH) { 22573 goto __32 22574 } 22575 limit_heap = c 22576 goto __33 22577 __32: 22578 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMM) { 22579 goto __34 22580 } 22581 limit_match = c 22582 goto __35 22583 __34: 22584 limit_depth = c 22585 __35: 22586 ; 22587 __33: 22588 ; 22589 skipatstart = skipatstart + (pp - skipatstart) 22590 goto __19 22591 __19: 22592 ; 22593 goto __17 // Out of the table scan loop 22594 __18: 22595 ; 22596 goto __16 22597 __16: 22598 i++ 22599 goto __15 22600 goto __17 22601 __17: 22602 ; 22603 if !(uint32(i) >= uint32(unsafe.Sizeof(pso_list))/uint32(unsafe.Sizeof(Tpso{}))) { 22604 goto __36 22605 } 22606 goto __14 22607 __36: 22608 ; // Out of pso loop 22609 goto __13 22610 __14: 22611 ; 22612 __12: 22613 ; 22614 22615 // End of pattern-start options; advance to start of real regex. 22616 22617 ptr += TPCRE2_SPTR8(skipatstart) 22618 22619 // Can't support UTF or UCP if PCRE2 was built without Unicode support. 22620 22621 // Check UTF. We have the original options in 'options', with that value as 22622 // modified by (*UTF) etc in cb->external_options. The extra option 22623 // PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not permitted in UTF-16 mode because the 22624 // surrogate code points cannot be represented in UTF-16. 22625 22626 utf = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 22627 if !(utf != 0) { 22628 goto __37 22629 } 22630 22631 if !(options&DPCRE2_NEVER_UTF != Tuint32_t(0)) { 22632 goto __38 22633 } 22634 22635 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR74 22636 goto HAD_EARLY_ERROR 22637 __38: 22638 ; 22639 if !(options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) && libc.AssignPtrInt32(bp+17564, X_pcre2_valid_utf_8(tls, pattern, patlen, erroroffset)) != 0) { 22640 goto __39 22641 } 22642 goto HAD_ERROR 22643 __39: 22644 ; // Offset was set by valid_utf() 22645 22646 __37: 22647 ; 22648 22649 // Check UCP lockout. 22650 22651 ucp = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 22652 if !(ucp != 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fexternal_options&DPCRE2_NEVER_UCP != Tuint32_t(0)) { 22653 goto __40 22654 } 22655 22656 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR75 22657 goto HAD_EARLY_ERROR 22658 __40: 22659 ; 22660 22661 // Process the BSR setting. 22662 22663 if !(bsr == 0) { 22664 goto __41 22665 } 22666 bsr = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention) 22667 __41: 22668 ; 22669 22670 // Process the newline setting. 22671 22672 if !(newline == 0) { 22673 goto __42 22674 } 22675 newline = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention) 22676 __42: 22677 ; 22678 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 22679 switch newline { 22680 case DPCRE2_NEWLINE_CR: 22681 goto __44 22682 22683 case DPCRE2_NEWLINE_LF: 22684 goto __45 22685 22686 case DPCRE2_NEWLINE_NUL: 22687 goto __46 22688 22689 case DPCRE2_NEWLINE_CRLF: 22690 goto __47 22691 22692 case DPCRE2_NEWLINE_ANY: 22693 goto __48 22694 22695 case DPCRE2_NEWLINE_ANYCRLF: 22696 goto __49 22697 22698 default: 22699 goto __50 22700 } 22701 goto __43 22702 22703 __44: 22704 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnllen = Tuint32_t(1) 22705 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17360 + 160)) = TPCRE2_UCHAR8('\015') 22706 goto __43 22707 22708 __45: 22709 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnllen = Tuint32_t(1) 22710 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17360 + 160)) = TPCRE2_UCHAR8('\012') 22711 goto __43 22712 22713 __46: 22714 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnllen = Tuint32_t(1) 22715 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17360 + 160)) = TPCRE2_UCHAR8(0) 22716 goto __43 22717 22718 __47: 22719 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnllen = Tuint32_t(2) 22720 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17360 + 160)) = TPCRE2_UCHAR8('\015') 22721 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17360 + 160 + 1)) = TPCRE2_UCHAR8('\012') 22722 goto __43 22723 22724 __48: 22725 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANY) 22726 goto __43 22727 22728 __49: 22729 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 22730 goto __43 22731 22732 __50: 22733 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR56 22734 goto HAD_EARLY_ERROR 22735 __43: 22736 ; 22737 22738 // Pre-scan the pattern to do two things: (1) Discover the named groups and 22739 // their numerical equivalents, so that this information is always available for 22740 // the remaining processing. (2) At the same time, parse the pattern and put a 22741 // processed version into the parsed_pattern vector. This has escapes interpreted 22742 // and comments removed (amongst other things). 22743 // 22744 // In all but one case, when PCRE2_AUTO_CALLOUT is not set, the number of unsigned 22745 // 32-bit ints in the parsed pattern is bounded by the length of the pattern plus 22746 // one (for the terminator) plus four if PCRE2_EXTRA_WORD or PCRE2_EXTRA_LINE is 22747 // set. The exceptional case is when running in 32-bit, non-UTF mode, when literal 22748 // characters greater than META_END (0x80000000) have to be coded as two units. In 22749 // this case, therefore, we scan the pattern to check for such values. 22750 22751 // Ensure that the parsed pattern buffer is big enough. When PCRE2_AUTO_CALLOUT 22752 // is set we have to assume a numerical callout (4 elements) for each character 22753 // plus one at the end. This is overkill, but memory is plentiful these days. For 22754 // many smaller patterns the vector on the stack (which was set up above) can be 22755 // used. 22756 22757 parsed_size_needed = patlen - Tsize_t(skipatstart) + big32count 22758 22759 if !((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&(DPCRE2_EXTRA_MATCH_WORD|DPCRE2_EXTRA_MATCH_LINE) != Tuint32_t(0)) { 22760 goto __51 22761 } 22762 parsed_size_needed = parsed_size_needed + Tsize_t(4) 22763 __51: 22764 ; 22765 22766 if !(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) { 22767 goto __52 22768 } 22769 parsed_size_needed = (parsed_size_needed + Tsize_t(1)) * Tsize_t(5) 22770 __52: 22771 ; 22772 22773 if !(parsed_size_needed >= Tsize_t(DPARSED_PATTERN_DEFAULT_SIZE)) { 22774 goto __53 22775 } 22776 22777 heap_parsed_pattern = (*struct { 22778 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22779 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22780 (parsed_size_needed+Tsize_t(1))*Tsize_t(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22781 if !(heap_parsed_pattern == uintptr(0)) { 22782 goto __54 22783 } 22784 22785 *(*int32)(unsafe.Pointer(errorptr)) = ERR21 22786 goto EXIT 22787 __54: 22788 ; 22789 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparsed_pattern = heap_parsed_pattern 22790 __53: 22791 ; 22792 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fparsed_pattern + uintptr(parsed_size_needed)*4 + uintptr(1)*4 22793 22794 // Do the parsing scan. 22795 22796 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = parse_regex(tls, ptr, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fexternal_options, bp+17548, bp+17360) 22797 if !(*(*int32)(unsafe.Pointer(bp + 17564)) != 0) { 22798 goto __55 22799 } 22800 goto HAD_CB_ERROR 22801 __55: 22802 ; 22803 22804 // Workspace is needed to remember information about numbered groups: whether a 22805 // group can match an empty string and what its fixed length is. This is done to 22806 // avoid the possibility of recursive references causing very long compile times 22807 // when checking these features. Unnumbered groups do not have this exposure since 22808 // they cannot be referenced. We use an indexed vector for this purpose. If there 22809 // are sufficiently few groups, the default vector on the stack, as set up above, 22810 // can be used. Otherwise we have to get/free a special vector. The vector must be 22811 // initialized to zero. 22812 22813 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fbracount >= Tuint32_t(DGROUPINFO_DEFAULT_SIZE)) { 22814 goto __56 22815 } 22816 22817 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fgroupinfo = (*struct { 22818 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22819 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22820 uint32((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fbracount+Tuint32_t(1))*uint32(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22821 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fgroupinfo == uintptr(0)) { 22822 goto __57 22823 } 22824 22825 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR21 22826 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ferroroffset = Tsize_t(0) 22827 goto HAD_CB_ERROR 22828 __57: 22829 ; 22830 __56: 22831 ; 22832 libc.Xmemset(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fgroupinfo, 0, uint32((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fbracount+Tuint32_t(1))*uint32(unsafe.Sizeof(Tuint32_t(0)))) 22833 22834 // If there were any lookbehinds, scan the parsed pattern to figure out their 22835 // lengths. 22836 22837 if !(*(*TBOOL)(unsafe.Pointer(bp + 17548)) != 0) { 22838 goto __58 22839 } 22840 22841 *(*int32)(unsafe.Pointer(bp + 17552 /* loopcount */)) = 0 22842 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = check_lookbehinds(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fparsed_pattern, uintptr(0), uintptr(0), bp+17360, bp+17552) 22843 if !(*(*int32)(unsafe.Pointer(bp + 17564)) != 0) { 22844 goto __59 22845 } 22846 goto HAD_CB_ERROR 22847 __59: 22848 ; 22849 __58: 22850 ; 22851 22852 // For debugging, there is a function that shows the parsed data vector. 22853 22854 // For debugging capturing information this code can be enabled. 22855 22856 // Pretend to compile the pattern while actually just accumulating the amount 22857 // of memory required in the 'length' variable. This behaviour is triggered by 22858 // passing a non-NULL final argument to compile_regex(). We pass a block of 22859 // workspace (cworkspace) for it to compile parts of the pattern into; the 22860 // compiled code is discarded when it is no longer needed, so hopefully this 22861 // workspace will never overflow, though there is a test for its doing so. 22862 // 22863 // On error, errorcode will be set non-zero, so we don't need to look at the 22864 // result of the function. The initial options have been put into the cb block, 22865 // but we still have to pass a separate options variable (the first argument) 22866 // because the options may change as the pattern is processed. 22867 22868 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ferroroffset = patlen // For any subsequent errors that do not set it 22869 *(*uintptr)(unsafe.Pointer(bp + 17560 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparsed_pattern 22870 *(*uintptr)(unsafe.Pointer(bp + 17556 /* code */)) = cworkspace 22871 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17556 /* code */)))) = OP_BRA 22872 22873 compile_regex(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fexternal_options, bp+17556, bp+17560, bp+17564, uint32(0), bp+17568, 22874 bp+17572, bp+17576, bp+17580, uintptr(0), bp+17360, bp+17584) 22875 22876 if !(*(*int32)(unsafe.Pointer(bp + 17564)) != 0) { 22877 goto __60 22878 } 22879 goto HAD_CB_ERROR 22880 __60: 22881 ; // Offset is in cb.erroroffset 22882 22883 // This should be caught in compile_regex(), but just in case... 22884 22885 if !(*(*Tsize_t)(unsafe.Pointer(bp + 17584)) > Tsize_t(int32(1)<<16)) { 22886 goto __61 22887 } 22888 22889 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR20 22890 goto HAD_CB_ERROR 22891 __61: 22892 ; 22893 22894 // Compute the size of, and then get and initialize, the data block for storing 22895 // the compiled pattern and names table. Integer overflow should no longer be 22896 // possible because nowadays we limit the maximum value of cb.names_found and 22897 // cb.name_entry_size. 22898 22899 re_blocksize = uint32(unsafe.Sizeof(Tpcre2_real_code_8{})) + (*(*Tsize_t)(unsafe.Pointer(bp + 17584))+Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fnames_found)*Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fname_entry_size))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8) 22900 re = (*struct { 22901 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22902 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, re_blocksize, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22903 if !(re == uintptr(0)) { 22904 goto __62 22905 } 22906 22907 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR21 22908 goto HAD_CB_ERROR 22909 __62: 22910 ; 22911 22912 // The compiler may put padding at the end of the pcre2_real_code structure in 22913 // order to round it up to a multiple of 4 or 8 bytes. This means that when a 22914 // compiled pattern is copied (for example, when serialized) undefined bytes are 22915 // read, and this annoys debuggers such as valgrind. To avoid this, we explicitly 22916 // write to the last 8 bytes of the structure before setting the fields. 22917 22918 libc.Xmemset(tls, re+uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{})))-uintptr(8), 0, uint32(8)) 22919 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl 22920 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables = tables 22921 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fexecutable_jit = uintptr(0) 22922 libc.Xmemset(tls, re+20, 0, uint32(32)*uint32(unsafe.Sizeof(Tuint8_t(0)))) 22923 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize = re_blocksize 22924 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number = DMAGIC_NUMBER 22925 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options = options 22926 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fexternal_options 22927 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options 22928 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags = Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) | (*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fexternal_flags | setflags 22929 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap = limit_heap 22930 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match = limit_match 22931 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth = limit_depth 22932 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(0) 22933 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = Tuint32_t(0) 22934 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention = Tuint16_t(bsr) 22935 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention = Tuint16_t(newline) 22936 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t(0) 22937 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(0) 22938 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t(0) 22939 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t(0) 22940 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fname_entry_size 22941 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnames_found 22942 22943 // The basic block is immediately followed by the name table, and the compiled 22944 // code follows after that. 22945 22946 codestart = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)) 22947 22948 // Update the compile data block for the actual compile. The starting points of 22949 // the name/number translation table and of the code are passed around in the 22950 // compile data block. The start/end pattern and initial options are already set 22951 // from the pre-compile phase, as is the name_entry_size field. 22952 22953 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparens_depth = Tuint16_t(0) 22954 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fassert_depth = Tuint16_t(0) 22955 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Flastcapture = Tuint32_t(0) 22956 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fname_table = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) 22957 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fstart_code = codestart 22958 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22959 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fhad_accept = DFALSE 22960 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fhad_pruneorskip = DFALSE 22961 (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fopen_caps = uintptr(0) 22962 22963 // If any named groups were found, create the name/number table from the list 22964 // created in the pre-pass. 22965 22966 if !(int32((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fnames_found) > 0) { 22967 goto __63 22968 } 22969 22970 ng = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fnamed_groups 22971 i = Tuint32_t(0) 22972 __64: 22973 if !(i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fnames_found)) { 22974 goto __66 22975 } 22976 add_name_to_table(tls, bp+17360, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber, i) 22977 goto __65 22978 __65: 22979 i++ 22980 ng += 12 22981 goto __64 22982 goto __66 22983 __66: 22984 ; 22985 __63: 22986 ; 22987 22988 // Set up a starting, non-extracting bracket, then compile the expression. On 22989 // error, errorcode will be set non-zero, so we don't need to look at the result 22990 // of the function here. 22991 22992 *(*uintptr)(unsafe.Pointer(bp + 17560 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fparsed_pattern 22993 *(*uintptr)(unsafe.Pointer(bp + 17556 /* code */)) = codestart 22994 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17556 /* code */)))) = OP_BRA 22995 regexrc = compile_regex(tls, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options, bp+17556, bp+17560, bp+17564, uint32(0), 22996 bp+17568, bp+17572, bp+17576, bp+17580, uintptr(0), bp+17360, uintptr(0)) 22997 if !(regexrc < 0) { 22998 goto __67 22999 } 23000 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_MATCH_EMPTY) 23001 __67: 23002 ; 23003 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fbracount) 23004 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Ftop_backref) 23005 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17360 /* &cb */)).Fmax_lookbehind) 23006 23007 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fhad_accept != 0) { 23008 goto __68 23009 } 23010 23011 *(*Tuint32_t)(unsafe.Pointer(bp + 17576 /* reqcu */)) = Tuint32_t(0) // Must disable after (*ACCEPT) 23012 *(*Tuint32_t)(unsafe.Pointer(bp + 17580 /* reqcuflags */)) = DREQ_NONE 23013 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_HASACCEPT) // Disables minimum length 23014 __68: 23015 ; 23016 23017 // Fill in the final opcode and check for disastrous overflow. If no overflow, 23018 // but the estimated length exceeds the really used length, adjust the value of 23019 // re->blocksize, and if valgrind support is configured, mark the extra allocated 23020 // memory as unaddressable, so that any out-of-bound reads can be detected. 23021 23022 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 17556 /* code */)), 1))) = OP_END 23023 usedlength = Tsize_t((int32(*(*uintptr)(unsafe.Pointer(bp + 17556))) - int32(codestart)) / 1) 23024 if !(usedlength > *(*Tsize_t)(unsafe.Pointer(bp + 17584))) { 23025 goto __69 23026 } 23027 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR23 23028 goto __70 23029 __69: 23030 23031 *(*Tsize_t)(unsafe.Pointer(re + 52)) -= (*(*Tsize_t)(unsafe.Pointer(bp + 17584)) - usedlength) * Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8) 23032 __70: 23033 ; 23034 23035 // Scan the pattern for recursion/subroutine calls and convert the group 23036 // numbers into offsets. Maintain a small cache so that repeated groups containing 23037 // recursions are efficiently handled. 23038 23039 if !(*(*int32)(unsafe.Pointer(bp + 17564)) == 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fhad_recurse != 0) { 23040 goto __71 23041 } 23042 23043 ccount = uint32(0) 23044 start = DRSCAN_CACHE_SIZE 23045 23046 rcode = find_recurse(tls, codestart, utf) 23047 __72: 23048 if !(rcode != uintptr(0)) { 23049 goto __74 23050 } 23051 23052 groupnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2))))) 23053 if !(groupnumber == 0) { 23054 goto __75 23055 } 23056 rgroup = codestart 23057 goto __76 23058 __75: 23059 23060 search_from = codestart 23061 rgroup = uintptr(0) 23062 i = Tuint32_t(0) 23063 p1 = start 23064 __77: 23065 if !(i < ccount) { 23066 goto __79 23067 } 23068 23069 if !(groupnumber == (*Trecurse_cache)(unsafe.Pointer(bp+17588+uintptr(p1)*8)).Fgroupnumber) { 23070 goto __80 23071 } 23072 23073 rgroup = (*Trecurse_cache)(unsafe.Pointer(bp + 17588 + uintptr(p1)*8)).Fgroup 23074 goto __79 23075 __80: 23076 ; 23077 23078 // Group n+1 must always start to the right of group n, so we can save 23079 // search time below when the new group number is greater than any of the 23080 // previously found groups. 23081 23082 if !(groupnumber > (*Trecurse_cache)(unsafe.Pointer(bp+17588+uintptr(p1)*8)).Fgroupnumber) { 23083 goto __81 23084 } 23085 search_from = (*Trecurse_cache)(unsafe.Pointer(bp + 17588 + uintptr(p1)*8)).Fgroup 23086 __81: 23087 ; 23088 goto __78 23089 __78: 23090 i++ 23091 p1 = (p1 + 1) & 7 23092 goto __77 23093 goto __79 23094 __79: 23095 ; 23096 23097 if !(rgroup == uintptr(0)) { 23098 goto __82 23099 } 23100 23101 rgroup = X_pcre2_find_bracket_8(tls, search_from, utf, groupnumber) 23102 if !(rgroup == uintptr(0)) { 23103 goto __83 23104 } 23105 23106 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR53 23107 goto __74 23108 __83: 23109 ; 23110 if !(libc.PreDecInt32(&start, 1) < 0) { 23111 goto __84 23112 } 23113 start = DRSCAN_CACHE_SIZE - 1 23114 __84: 23115 ; 23116 (*Trecurse_cache)(unsafe.Pointer(bp + 17588 + uintptr(start)*8)).Fgroupnumber = groupnumber 23117 (*Trecurse_cache)(unsafe.Pointer(bp + 17588 + uintptr(start)*8)).Fgroup = rgroup 23118 if !(ccount < uint32(DRSCAN_CACHE_SIZE)) { 23119 goto __85 23120 } 23121 ccount++ 23122 __85: 23123 ; 23124 __82: 23125 ; 23126 __76: 23127 ; 23128 23129 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)) = TPCRE2_UCHAR8((int32(rgroup) - int32(codestart)) / 1 >> 8) 23130 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2)) = TPCRE2_UCHAR8((int32(rgroup) - int32(codestart)) / 1 & 255) 23131 goto __73 23132 __73: 23133 rcode = find_recurse(tls, rcode+uintptr(1)+uintptr(DLINK_SIZE), utf) 23134 goto __72 23135 goto __74 23136 __74: 23137 ; 23138 __71: 23139 ; 23140 23141 // In rare debugging situations we sometimes need to look at the compiled code 23142 // at this stage. 23143 23144 // Unless disabled, check whether any single character iterators can be 23145 // auto-possessified. The function overwrites the appropriate opcode values, so 23146 // the type of the pointer must be cast. NOTE: the intermediate variable "temp" is 23147 // used in this code because at least one compiler gives a warning about loss of 23148 // "const" attribute if the cast (PCRE2_UCHAR *)codestart is used directly in the 23149 // function call. 23150 23151 if !(*(*int32)(unsafe.Pointer(bp + 17564)) == 0 && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_AUTO_POSSESS == Tuint32_t(0)) { 23152 goto __86 23153 } 23154 23155 temp = codestart 23156 if !(X_pcre2_auto_possessify_8(tls, temp, bp+17360) != 0) { 23157 goto __87 23158 } 23159 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR80 23160 __87: 23161 ; 23162 __86: 23163 ; 23164 23165 // Failed to compile, or error while post-processing. 23166 23167 if !(*(*int32)(unsafe.Pointer(bp + 17564)) != 0) { 23168 goto __88 23169 } 23170 goto HAD_CB_ERROR 23171 __88: 23172 ; 23173 23174 // Successful compile. If the anchored option was not passed, set it if 23175 // we can determine that the pattern is anchored by virtue of ^ characters or \A 23176 // or anything else, such as starting with non-atomic .* when DOTALL is set and 23177 // there are no occurrences of *PRUNE or *SKIP (though there is an option to 23178 // disable this case). 23179 23180 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_anchored(tls, codestart, uint32(0), bp+17360, 0, DFALSE) != 0) { 23181 goto __89 23182 } 23183 *(*Tuint32_t)(unsafe.Pointer(re + 64)) |= DPCRE2_ANCHORED 23184 __89: 23185 ; 23186 23187 // Set up the first code unit or startline flag, the required code unit, and 23188 // then study the pattern. This code need not be obeyed if PCRE2_NO_START_OPTIMIZE 23189 // is set, as the data it would create will not be used. Note that a first code 23190 // unit (but not the startline flag) is useful for anchored patterns because it 23191 // can still give a quick "no match" and also avoid searching for a last code 23192 // unit. 23193 23194 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 23195 goto __90 23196 } 23197 23198 minminlength = 0 // For minimal minlength from first/required CU 23199 23200 // If we do not have a first code unit, see if there is one that is asserted 23201 // (these are not saved during the compile because they can cause conflicts with 23202 // actual literals that follow). 23203 23204 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17572)) >= DREQ_NONE) { 23205 goto __91 23206 } 23207 *(*Tuint32_t)(unsafe.Pointer(bp + 17568 /* firstcu */)) = find_firstassertedcu(tls, codestart, bp+17572, uint32(0)) 23208 __91: 23209 ; 23210 23211 // Save the data for a first code unit. The existence of one means the 23212 // minimum length must be at least 1. 23213 23214 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17572)) < DREQ_NONE) { 23215 goto __92 23216 } 23217 23218 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17568 /* firstcu */)) 23219 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_FIRSTSET) 23220 minminlength++ 23221 23222 // Handle caseless first code units. 23223 23224 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17572))&DREQ_CASELESS != Tuint32_t(0)) { 23225 goto __94 23226 } 23227 23228 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17568)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17568)) < Tuint32_t(255)) { 23229 goto __95 23230 } 23231 23232 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17568)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17568))) { 23233 goto __97 23234 } 23235 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23236 __97: 23237 ; 23238 goto __96 23239 __95: 23240 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17568)))+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17568)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17568)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17568))) { 23241 goto __98 23242 } 23243 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23244 __98: 23245 ; 23246 __96: 23247 ; 23248 __94: 23249 ; 23250 goto __93 23251 __92: 23252 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_startline(tls, codestart, uint32(0), bp+17360, 0, DFALSE) != 0) { 23253 goto __99 23254 } 23255 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_STARTLINE) 23256 __99: 23257 ; 23258 __93: 23259 ; 23260 23261 // Handle the "required code unit", if one is set. In the UTF case we can 23262 // increment the minimum minimum length only if we are sure this really is a 23263 // different character and not a non-starting code unit of the first character, 23264 // because the minimum length count is in characters, not code units. 23265 23266 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17580)) < DREQ_NONE) { 23267 goto __100 23268 } 23269 23270 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17572)) >= DREQ_NONE || *(*Tuint32_t)(unsafe.Pointer(bp + 17568))&Tuint32_t(0x80) == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17576))&Tuint32_t(0x80) == Tuint32_t(0)) { 23271 goto __101 23272 } /* Req is ASCII */ 23273 23274 minminlength++ 23275 __101: 23276 ; 23277 23278 // In the case of an anchored pattern, set up the value only if it follows 23279 // a variable length item in the pattern. 23280 23281 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17580))&DREQ_VARY != Tuint32_t(0)) { 23282 goto __102 23283 } 23284 23285 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17576 /* reqcu */)) 23286 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_LASTSET) 23287 23288 // Handle caseless required code units as for first code units (above). 23289 23290 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17580))&DREQ_CASELESS != Tuint32_t(0)) { 23291 goto __103 23292 } 23293 23294 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17576)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17576)) < Tuint32_t(255)) { 23295 goto __104 23296 } 23297 23298 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17576)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17576))) { 23299 goto __106 23300 } 23301 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23302 __106: 23303 ; 23304 goto __105 23305 __104: 23306 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17576)))+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17576)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17576)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17576))) { 23307 goto __107 23308 } 23309 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23310 __107: 23311 ; 23312 __105: 23313 ; 23314 __103: 23315 ; 23316 __102: 23317 ; 23318 __100: 23319 ; 23320 23321 // Study the compiled pattern to set up information such as a bitmap of 23322 // starting code units and a minimum matching length. 23323 23324 if !(X_pcre2_study_8(tls, re) != 0) { 23325 goto __108 23326 } 23327 23328 *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) = ERR31 23329 goto HAD_CB_ERROR 23330 __108: 23331 ; 23332 23333 // If study() set a bitmap of starting code units, it implies a minimum 23334 // length of at least one. 23335 23336 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) && minminlength == 0) { 23337 goto __109 23338 } 23339 minminlength = 1 23340 __109: 23341 ; 23342 23343 // If the minimum length set (or not set) by study() is less than the minimum 23344 // implied by required code units, override it. 23345 23346 if !(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) < minminlength) { 23347 goto __110 23348 } 23349 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(minminlength) 23350 __110: 23351 ; 23352 __90: 23353 ; // End of start-of-match optimizations. 23354 23355 // Control ends up here in all cases. When running under valgrind, make a 23356 // pattern's terminating zero defined again. If memory was obtained for the parsed 23357 // version of the pattern, free it before returning. Also free the list of named 23358 // groups if a larger one had to be obtained, and likewise the group information 23359 // vector. 23360 23361 EXIT: 23362 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fparsed_pattern != bp+13264) { 23363 goto __111 23364 } 23365 (*struct { 23366 f func(*libc.TLS, uintptr, uintptr) 23367 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fparsed_pattern, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23368 __111: 23369 ; 23370 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 23371 goto __112 23372 } 23373 (*struct { 23374 f func(*libc.TLS, uintptr, uintptr) 23375 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fnamed_groups, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23376 __112: 23377 ; 23378 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Fgroupinfo != bp+12000) { 23379 goto __113 23380 } 23381 (*struct { 23382 f func(*libc.TLS, uintptr, uintptr) 23383 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17360 /* &cb */)).Fgroupinfo, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23384 __113: 23385 ; 23386 return re // Will be NULL after an error 23387 23388 // Errors discovered in parse_regex() set the offset value in the compile 23389 // block. Errors discovered before it is called must compute it from the ptr 23390 // value. After parse_regex() is called, the offset in the compile block is set to 23391 // the end of the pattern, but certain errors in compile_regex() may reset it if 23392 // an offset is available in the parsed pattern. 23393 23394 HAD_CB_ERROR: 23395 ptr = pattern + uintptr((*Tcompile_block_8)(unsafe.Pointer(bp+17360)).Ferroroffset) 23396 23397 HAD_EARLY_ERROR: 23398 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int32(ptr) - int32(pattern)) / 1) 23399 23400 HAD_ERROR: 23401 *(*int32)(unsafe.Pointer(errorptr)) = *(*int32)(unsafe.Pointer(bp + 17564 /* errorcode */)) 23402 Xpcre2_code_free_8(tls, re) 23403 re = uintptr(0) 23404 goto EXIT 23405 return uintptr(0) 23406 } 23407 23408 // End of pcre2_compile.c 23409 23410 // ************************************************ 23411 // 23412 // Perl-Compatible Regular Expressions * 23413 // 23414 23415 // PCRE is a library of functions to support regular expressions whose syntax 23416 // and semantics are as close as possible to those of the Perl 5 language. 23417 // 23418 // Written by Philip Hazel 23419 // Original API code Copyright (c) 1997-2012 University of Cambridge 23420 // New API code Copyright (c) 2016-2020 University of Cambridge 23421 // 23422 // ----------------------------------------------------------------------------- 23423 // Redistribution and use in source and binary forms, with or without 23424 // modification, are permitted provided that the following conditions are met: 23425 // 23426 // * Redistributions of source code must retain the above copyright notice, 23427 // this list of conditions and the following disclaimer. 23428 // 23429 // * Redistributions in binary form must reproduce the above copyright 23430 // notice, this list of conditions and the following disclaimer in the 23431 // documentation and/or other materials provided with the distribution. 23432 // 23433 // * Neither the name of the University of Cambridge nor the names of its 23434 // contributors may be used to endorse or promote products derived from 23435 // this software without specific prior written permission. 23436 // 23437 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23438 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23439 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23440 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23441 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23442 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23443 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23444 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23445 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23446 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 23447 // POSSIBILITY OF SUCH DAMAGE. 23448 // ----------------------------------------------------------------------------- 23449 23450 // src/config.h. Generated from config.h.in by configure. 23451 // src/config.h.in. Generated from configure.ac by autoheader. 23452 23453 // PCRE2 is written in Standard C, but there are a few non-standard things it 23454 // can cope with, allowing it to run on SunOS4 and other "close to standard" 23455 // systems. 23456 // 23457 // In environments that support the GNU autotools, config.h.in is converted into 23458 // config.h by the "configure" script. In environments that use CMake, 23459 // config-cmake.in is converted into config.h. If you are going to build PCRE2 "by 23460 // hand" without using "configure" or CMake, you should copy the distributed 23461 // config.h.generic to config.h, and edit the macro definitions to be the way you 23462 // need them. You must then add -DHAVE_CONFIG_H to all of your compile commands, 23463 // so that config.h is included at the start of every source. 23464 // 23465 // Alternatively, you can avoid editing by using -D on the compiler command line 23466 // to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H, 23467 // but if you do, default values will be taken from config.h for non-boolean 23468 // macros that are not defined on the command line. 23469 // 23470 // Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be 23471 // defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All 23472 // such macros are listed as a commented #undef in config.h.generic. Macros such 23473 // as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are 23474 // surrounded by #ifndef/#endif lines so that the value can be overridden by -D. 23475 // 23476 // PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if 23477 // HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make 23478 // sure both macros are undefined; an emulation function will then be used. 23479 23480 // By default, the \R escape sequence matches any Unicode line ending 23481 // character or sequence of characters. If BSR_ANYCRLF is defined (to any 23482 // value), this is changed so that backslash-R matches only CR, LF, or CRLF. 23483 // The build-time default can be overridden by the user of PCRE2 at runtime. 23484 // 23485 // #undef BSR_ANYCRLF 23486 23487 // Define to any value to disable the use of the z and t modifiers in 23488 // formatting settings such as %zu or %td (this is rarely needed). 23489 // #undef DISABLE_PERCENT_ZT 23490 23491 // If you are compiling for a system that uses EBCDIC instead of ASCII 23492 // character codes, define this macro to any value. When EBCDIC is set, PCRE2 23493 // assumes that all input strings are in EBCDIC. If you do not define this 23494 // macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It 23495 // is not possible to build a version of PCRE2 that supports both EBCDIC and 23496 // UTF-8/16/32. 23497 // #undef EBCDIC 23498 23499 // In an EBCDIC environment, define this macro to any value to arrange for the 23500 // NL character to be 0x25 instead of the default 0x15. NL plays the role that 23501 // LF does in an ASCII/Unicode environment. 23502 // #undef EBCDIC_NL25 23503 23504 // Define this if your compiler supports __attribute__((uninitialized)) 23505 // #undef HAVE_ATTRIBUTE_UNINITIALIZED 23506 23507 // Define to 1 if you have the `bcopy' function. 23508 23509 // Define to 1 if you have the <bzlib.h> header file. 23510 23511 // Define to 1 if you have the <dirent.h> header file. 23512 23513 // Define to 1 if you have the <dlfcn.h> header file. 23514 23515 // Define to 1 if you have the <editline/readline.h> header file. 23516 // #undef HAVE_EDITLINE_READLINE_H 23517 23518 // Define to 1 if you have the <edit/readline/readline.h> header file. 23519 // #undef HAVE_EDIT_READLINE_READLINE_H 23520 23521 // Define to 1 if you have the <inttypes.h> header file. 23522 23523 // Define to 1 if you have the <limits.h> header file. 23524 23525 // Define to 1 if you have the `memfd_create' function. 23526 23527 // Define to 1 if you have the `memmove' function. 23528 23529 // Define to 1 if you have the <minix/config.h> header file. 23530 // #undef HAVE_MINIX_CONFIG_H 23531 23532 // Define to 1 if you have the `mkostemp' function. 23533 23534 // Define if you have POSIX threads libraries and header files. 23535 // #undef HAVE_PTHREAD 23536 23537 // Have PTHREAD_PRIO_INHERIT. 23538 // #undef HAVE_PTHREAD_PRIO_INHERIT 23539 23540 // Define to 1 if you have the <readline.h> header file. 23541 // #undef HAVE_READLINE_H 23542 23543 // Define to 1 if you have the <readline/history.h> header file. 23544 // #undef HAVE_READLINE_HISTORY_H 23545 23546 // Define to 1 if you have the <readline/readline.h> header file. 23547 // #undef HAVE_READLINE_READLINE_H 23548 23549 // Define to 1 if you have the `realpath' function. 23550 23551 // Define to 1 if you have the `secure_getenv' function. 23552 23553 // Define to 1 if you have the <stdint.h> header file. 23554 23555 // Define to 1 if you have the <stdio.h> header file. 23556 23557 // Define to 1 if you have the <stdlib.h> header file. 23558 23559 // Define to 1 if you have the `strerror' function. 23560 23561 // Define to 1 if you have the <strings.h> header file. 23562 23563 // Define to 1 if you have the <string.h> header file. 23564 23565 // Define to 1 if you have the <sys/stat.h> header file. 23566 23567 // Define to 1 if you have the <sys/types.h> header file. 23568 23569 // Define to 1 if you have the <sys/wait.h> header file. 23570 23571 // Define to 1 if you have the <unistd.h> header file. 23572 23573 // Define to 1 if the compiler supports simple visibility declarations. 23574 23575 // Define to 1 if you have the <wchar.h> header file. 23576 23577 // Define to 1 if you have the <windows.h> header file. 23578 // #undef HAVE_WINDOWS_H 23579 23580 // Define to 1 if you have the <zlib.h> header file. 23581 23582 // This limits the amount of memory that may be used while matching a pattern. 23583 // It applies to both pcre2_match() and pcre2_dfa_match(). It does not apply 23584 // to JIT matching. The value is in kibibytes (units of 1024 bytes). 23585 23586 // The value of LINK_SIZE determines the number of bytes used to store links 23587 // as offsets within the compiled regex. The default is 2, which allows for 23588 // compiled patterns up to 65535 code units long. This covers the vast 23589 // majority of cases. However, PCRE2 can also be compiled to use 3 or 4 bytes 23590 // instead. This allows for longer patterns in extreme cases. 23591 23592 // Define to the sub-directory where libtool stores uninstalled libraries. 23593 23594 // The value of MATCH_LIMIT determines the default number of times the 23595 // pcre2_match() function can record a backtrack position during a single 23596 // matching attempt. The value is also used to limit a loop counter in 23597 // pcre2_dfa_match(). There is a runtime interface for setting a different 23598 // limit. The limit exists in order to catch runaway regular expressions that 23599 // take for ever to determine that they do not match. The default is set very 23600 // large so that it does not accidentally catch legitimate cases. 23601 23602 // The above limit applies to all backtracks, whether or not they are nested. 23603 // In some environments it is desirable to limit the nesting of backtracking 23604 // (that is, the depth of tree that is searched) more strictly, in order to 23605 // restrict the maximum amount of heap memory that is used. The value of 23606 // MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it 23607 // must be less than the value of MATCH_LIMIT. The default is to use the same 23608 // value as MATCH_LIMIT. There is a runtime method for setting a different 23609 // limit. In the case of pcre2_dfa_match(), this limit controls the depth of 23610 // the internal nested function calls that are used for pattern recursions, 23611 // lookarounds, and atomic groups. 23612 23613 // This limit is parameterized just in case anybody ever wants to change it. 23614 // Care must be taken if it is increased, because it guards against integer 23615 // overflow caused by enormously large patterns. 23616 23617 // This limit is parameterized just in case anybody ever wants to change it. 23618 // Care must be taken if it is increased, because it guards against integer 23619 // overflow caused by enormously large patterns. 23620 23621 // Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. 23622 // #undef NEVER_BACKSLASH_C 23623 23624 // The value of NEWLINE_DEFAULT determines the default newline character 23625 // sequence. PCRE2 client programs can override this by selecting other values 23626 // at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 23627 // (ANYCRLF), and 6 (NUL). 23628 23629 // Name of package 23630 23631 // Define to the address where bug reports for this package should be sent. 23632 23633 // Define to the full name of this package. 23634 23635 // Define to the full name and version of this package. 23636 23637 // Define to the one symbol short name of this package. 23638 23639 // Define to the home page for this package. 23640 23641 // Define to the version of this package. 23642 23643 // The value of PARENS_NEST_LIMIT specifies the maximum depth of nested 23644 // parentheses (of any kind) in a pattern. This limits the amount of system 23645 // stack that is used while compiling a pattern. 23646 23647 // The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by 23648 // pcre2grep to hold parts of the file it is searching. The buffer will be 23649 // expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing 23650 // very long lines. The actual amount of memory used by pcre2grep is three 23651 // times this number, because it allows for the buffering of "before" and 23652 // "after" lines. 23653 23654 // The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer 23655 // used by pcre2grep to hold parts of the file it is searching. The actual 23656 // amount of memory used by pcre2grep is three times this number, because it 23657 // allows for the buffering of "before" and "after" lines. 23658 23659 // to make a symbol visible 23660 23661 // to make a symbol visible 23662 23663 // Define to any value to include debugging code. 23664 // #undef PCRE2_DEBUG 23665 23666 // to make a symbol visible 23667 23668 // If you are compiling for a system other than a Unix-like system or 23669 // Win32, and it needs some magic to be inserted before the definition 23670 // of a function that is exported by the library, define this macro to 23671 // contain the relevant magic. If you do not define this macro, a suitable 23672 // __declspec value is used for Windows systems; in other environments 23673 // "extern" is used for a C compiler and "extern C" for a C++ compiler. 23674 // This macro apears at the start of every exported function that is part 23675 // of the external API. It does not appear on functions that are "external" 23676 // in the C sense, but which are internal to the library. 23677 23678 // Define to any value if linking statically (TODO: make nice with Libtool) 23679 23680 // Define to necessary symbol if this constant uses a non-standard name on 23681 // your system. 23682 // #undef PTHREAD_CREATE_JOINABLE 23683 23684 // Define to any non-zero number to enable support for SELinux compatible 23685 // executable memory allocator in JIT. Note that this will have no effect 23686 // unless SUPPORT_JIT is also defined. 23687 // #undef SLJIT_PROT_EXECUTABLE_ALLOCATOR 23688 23689 // Define to 1 if all of the C90 standard headers exist (not just the ones 23690 // required in a freestanding environment). This macro is provided for 23691 // backward compatibility; new code need not use it. 23692 23693 // Define to any value to enable support for Just-In-Time compiling. 23694 // #undef SUPPORT_JIT 23695 23696 // Define to any value to allow pcre2grep to be linked with libbz2, so that it 23697 // is able to handle .bz2 files. 23698 // #undef SUPPORT_LIBBZ2 23699 23700 // Define to any value to allow pcre2test to be linked with libedit. 23701 // #undef SUPPORT_LIBEDIT 23702 23703 // Define to any value to allow pcre2test to be linked with libreadline. 23704 // #undef SUPPORT_LIBREADLINE 23705 23706 // Define to any value to allow pcre2grep to be linked with libz, so that it 23707 // is able to handle .gz files. 23708 // #undef SUPPORT_LIBZ 23709 23710 // Define to any value to enable callout script support in pcre2grep. 23711 23712 // Define to any value to enable fork support in pcre2grep callout scripts. 23713 // This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also defined. 23714 // 23715 23716 // Define to any value to enable JIT support in pcre2grep. Note that this will 23717 // have no effect unless SUPPORT_JIT is also defined. 23718 // #undef SUPPORT_PCRE2GREP_JIT 23719 23720 // Define to any value to enable the 16 bit PCRE2 library. 23721 // #undef SUPPORT_PCRE2_16 23722 23723 // Define to any value to enable the 32 bit PCRE2 library. 23724 // #undef SUPPORT_PCRE2_32 23725 23726 // Define to any value to enable the 8 bit PCRE2 library. 23727 23728 // Define to any value to enable support for Unicode and UTF encoding. This 23729 // will work even in an EBCDIC environment, but it is incompatible with the 23730 // EBCDIC macro. That is, PCRE2 can support *either* EBCDIC code *or* 23731 // ASCII/Unicode, but not both at once. 23732 23733 // Define to any value for valgrind support to find invalid memory reads. 23734 // #undef SUPPORT_VALGRIND 23735 23736 // Enable extensions on AIX 3, Interix. 23737 // Enable general extensions on macOS. 23738 // Enable general extensions on Solaris. 23739 // Enable GNU extensions on systems that have them. 23740 // Enable X/Open compliant socket functions that do not require linking 23741 // with -lxnet on HP-UX 11.11. 23742 // Identify the host operating system as Minix. 23743 // This macro does not affect the system headers' behavior. 23744 // A future release of Autoconf may stop defining this macro. 23745 // # undef _MINIX 23746 // Enable general extensions on NetBSD. 23747 // Enable NetBSD compatibility extensions on Minix. 23748 // Enable OpenBSD compatibility extensions on NetBSD. 23749 // Oddly enough, this does nothing on OpenBSD. 23750 // Define to 1 if needed for POSIX-compatible behavior. 23751 // # undef _POSIX_SOURCE 23752 // Define to 2 if needed for POSIX-compatible behavior. 23753 // # undef _POSIX_1_SOURCE 23754 // Enable POSIX-compatible threading on Solaris. 23755 // Enable extensions specified by ISO/IEC TS 18661-5:2014. 23756 // Enable extensions specified by ISO/IEC TS 18661-1:2014. 23757 // Enable extensions specified by ISO/IEC TS 18661-2:2015. 23758 // Enable extensions specified by ISO/IEC TS 18661-4:2015. 23759 // Enable extensions specified by ISO/IEC TS 18661-3:2015. 23760 // Enable extensions specified by ISO/IEC TR 24731-2:2010. 23761 // Enable extensions specified by ISO/IEC 24747:2009. 23762 // Enable extensions on HP NonStop. 23763 // Enable X/Open extensions. Define to 500 only if necessary 23764 // to make mbstate_t available. 23765 // # undef _XOPEN_SOURCE 23766 23767 // Version number of package 23768 23769 // Define to empty if `const' does not conform to ANSI C. 23770 // #undef const 23771 23772 // Define to the type of a signed integer type of width exactly 64 bits if 23773 // such a type exists and the standard includes do not define it. 23774 // #undef int64_t 23775 23776 // Define to `unsigned int' if <sys/types.h> does not define. 23777 // #undef size_t 23778 23779 // Save the configured link size, which is in bytes. In 16-bit and 32-bit modes 23780 // its value gets changed by pcre2_intmodedep.h (included by pcre2_internal.h) to 23781 // be in code units. 23782 23783 var configured_link_size int32 = DLINK_SIZE /* pcre2_config.c:49:12 */ 23784 23785 // This function is needed only when memmove() is not available. 23786 23787 // End of pcre2_internal.h 23788 23789 // These macros are the standard way of turning unquoted text into C strings. 23790 // They allow macros like PCRE2_MAJOR to be defined without quotes, which is 23791 // convenient for user programs that want to test their values. 23792 23793 // ************************************************ 23794 // 23795 // Return info about what features are configured * 23796 // 23797 23798 // If where is NULL, the length of memory required is returned. 23799 // 23800 // Arguments: 23801 // what what information is required 23802 // where where to put the information 23803 // 23804 // Returns: 0 if a numerical value is returned 23805 // >= 0 if a string value 23806 // PCRE2_ERROR_BADOPTION if "where" not recognized 23807 // or JIT target requested when JIT not enabled 23808 23809 func Xpcre2_config_8(tls *libc.TLS, what Tuint32_t, where uintptr) int32 { /* pcre2_config.c:78:1: */ 23810 if where == uintptr(0) { 23811 switch what { 23812 default: 23813 return -34 23814 fallthrough 23815 23816 case Tuint32_t(DPCRE2_CONFIG_BSR): 23817 fallthrough 23818 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23819 fallthrough 23820 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23821 fallthrough 23822 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23823 fallthrough 23824 case Tuint32_t(DPCRE2_CONFIG_JIT): 23825 fallthrough 23826 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23827 fallthrough 23828 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23829 fallthrough 23830 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23831 fallthrough 23832 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23833 fallthrough 23834 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23835 fallthrough 23836 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23837 fallthrough // Obsolete 23838 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23839 fallthrough 23840 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23841 return int32(unsafe.Sizeof(Tuint32_t(0))) 23842 fallthrough 23843 23844 // These are handled below 23845 23846 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23847 fallthrough 23848 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23849 fallthrough 23850 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23851 break 23852 } 23853 } 23854 23855 switch what { 23856 default: 23857 return -34 23858 23859 case Tuint32_t(DPCRE2_CONFIG_BSR): 23860 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPCRE2_BSR_UNICODE) 23861 break 23862 23863 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23864 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0 + 23865 1) 23866 break 23867 23868 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23869 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23870 break 23871 23872 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23873 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DHEAP_LIMIT) 23874 break 23875 23876 case Tuint32_t(DPCRE2_CONFIG_JIT): 23877 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23878 break 23879 23880 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23881 return -34 23882 23883 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23884 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(configured_link_size) 23885 break 23886 23887 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23888 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23889 break 23890 23891 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23892 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DNEWLINE_DEFAULT) 23893 break 23894 23895 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23896 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23897 break 23898 23899 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23900 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPARENS_NEST_LIMIT) 23901 break 23902 23903 // This is now obsolete. The stack is no longer used via recursion for 23904 // handling backtracking in pcre2_match(). 23905 23906 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23907 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23908 break 23909 23910 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23911 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(Dcbits_offset + Dcbit_length + 256) 23912 break 23913 23914 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23915 { 23916 var v uintptr = X_pcre2_unicode_version_8 23917 return int32(Tsize_t(1) + func() uint32 { 23918 if where == uintptr(0) { 23919 return libc.Xstrlen(tls, v) 23920 } 23921 return X_pcre2_strcpy_c8_8(tls, where, v) 23922 }()) 23923 23924 } 23925 break 23926 23927 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23928 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(1) 23929 break 23930 23931 // The hackery in setting "v" below is to cope with the case when 23932 // PCRE2_PRERELEASE is set to an empty string (which it is for real releases). 23933 // If the second alternative is used in this case, it does not leave a space 23934 // before the date. On the other hand, if all four macros are put into a single 23935 // XSTRING when PCRE2_PRERELEASE is not empty, an unwanted space is inserted. 23936 // There are problems using an "obvious" approach like this: 23937 // 23938 // XSTRING(PCRE2_MAJOR) "." XSTRING(PCRE_MINOR) 23939 // XSTRING(PCRE2_PRERELEASE) " " XSTRING(PCRE_DATE) 23940 // 23941 // because, when PCRE2_PRERELEASE is empty, this leads to an attempted expansion 23942 // of STRING(). The C standard states: "If (before argument substitution) any 23943 // argument consists of no preprocessing tokens, the behavior is undefined." It 23944 // turns out the gcc treats this case as a single empty string - which is what 23945 // we really want - but Visual C grumbles about the lack of an argument for the 23946 // macro. Unfortunately, both are within their rights. As there seems to be no 23947 // way to test for a macro's value being empty at compile time, we have to 23948 // resort to a runtime test. 23949 23950 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23951 { 23952 var v uintptr 23953 if int32(*(*int8)(unsafe.Pointer(ts + 630 + 1))) == 0 { 23954 v = ts + 632 /* "10.40 2022-04-14" */ 23955 } else { 23956 v = ts + 649 /* "10.402022-04-14" */ 23957 } 23958 return int32(Tsize_t(1) + func() uint32 { 23959 if where == uintptr(0) { 23960 return libc.Xstrlen(tls, v) 23961 } 23962 return X_pcre2_strcpy_c8_8(tls, where, v) 23963 }()) 23964 23965 } 23966 } 23967 23968 return 0 23969 } 23970 23971 // End of pcre2_config.c 23972 23973 // This function is needed only when memmove() is not available. 23974 23975 // End of pcre2_internal.h 23976 23977 // ************************************************ 23978 // 23979 // Default malloc/free functions * 23980 // 23981 23982 // Ignore the "user data" argument in each case. 23983 23984 func default_malloc(tls *libc.TLS, size Tsize_t, data uintptr) uintptr { /* pcre2_context.c:56:13: */ 23985 _ = data 23986 return libc.Xmalloc(tls, size) 23987 } 23988 23989 func default_free(tls *libc.TLS, block uintptr, data uintptr) { /* pcre2_context.c:63:13: */ 23990 _ = data 23991 libc.Xfree(tls, block) 23992 } 23993 23994 // ************************************************ 23995 // 23996 // Get a block and save memory control * 23997 // 23998 23999 // This internal function is called to get a block of memory in which the 24000 // memory control data is to be stored at the start for future use. 24001 // 24002 // Arguments: 24003 // size amount of memory required 24004 // memctl pointer to a memctl block or NULL 24005 // 24006 // Returns: pointer to memory or NULL on failure 24007 24008 func X_pcre2_memctl_malloc_8(tls *libc.TLS, size Tsize_t, memctl uintptr) uintptr { /* pcre2_context.c:85:13: */ 24009 var newmemctl uintptr 24010 var yield uintptr 24011 if memctl == uintptr(0) { 24012 yield = libc.Xmalloc(tls, size) 24013 } else { 24014 yield = (*struct { 24015 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24016 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, size, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 24017 } 24018 if yield == uintptr(0) { 24019 return uintptr(0) 24020 } 24021 newmemctl = yield 24022 if memctl == uintptr(0) { 24023 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmalloc = *(*uintptr)(unsafe.Pointer(&struct { 24024 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24025 }{default_malloc})) 24026 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Ffree = *(*uintptr)(unsafe.Pointer(&struct { 24027 f func(*libc.TLS, uintptr, uintptr) 24028 }{default_free})) 24029 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmemory_data = uintptr(0) 24030 } else { 24031 *(*Tpcre2_memctl)(unsafe.Pointer(newmemctl)) = *(*Tpcre2_memctl)(unsafe.Pointer(memctl)) 24032 } 24033 return yield 24034 } 24035 24036 // ************************************************ 24037 // 24038 // Create and initialize contexts * 24039 // 24040 24041 // Initializing for compile and match contexts is done in separate, private 24042 // functions so that these can be called from functions such as pcre2_compile() 24043 // when an external context is not supplied. The initializing functions have an 24044 // option to set up default memory management. 24045 24046 func Xpcre2_general_context_create_8(tls *libc.TLS, private_malloc uintptr, private_free uintptr, memory_data uintptr) uintptr { /* pcre2_context.c:114:38: */ 24047 var gcontext uintptr 24048 if private_malloc == uintptr(0) { 24049 private_malloc = *(*uintptr)(unsafe.Pointer(&struct { 24050 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24051 }{default_malloc})) 24052 } 24053 if private_free == uintptr(0) { 24054 private_free = *(*uintptr)(unsafe.Pointer(&struct { 24055 f func(*libc.TLS, uintptr, uintptr) 24056 }{default_free})) 24057 } 24058 gcontext = (*struct { 24059 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24060 })(unsafe.Pointer(&struct{ uintptr }{private_malloc})).f(tls, uint32(unsafe.Sizeof(Tpcre2_real_general_context_8{})), memory_data) 24061 if gcontext == uintptr(0) { 24062 return uintptr(0) 24063 } 24064 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc = private_malloc 24065 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree = private_free 24066 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data = memory_data 24067 return gcontext 24068 } 24069 24070 // A default compile context is set up to save having to initialize at run time 24071 // when no context is supplied to the compile function. 24072 24073 var X_pcre2_default_compile_context_8 = Tpcre2_compile_context_8{ 24074 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Stack guard data 24075 Ftables: 0, // Character tables 24076 Fmax_pattern_length: libc.CplUint32(Tsize_t(0)), 24077 Fbsr_convention: Tuint16_t(DPCRE2_BSR_UNICODE), // Backslash R default 24078 Fnewline_convention: Tuint16_t(DNEWLINE_DEFAULT), // Newline convention 24079 Fparens_nest_limit: Tuint32_t(DPARENS_NEST_LIMIT)} /* pcre2_context.c:133:29 */ 24080 24081 // Extra options 24082 24083 // The create function copies the default into the new memory, but must 24084 // override the default memory handling functions if a gcontext was provided. 24085 24086 func Xpcre2_compile_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:147:38: */ 24087 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24088 uint32(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), gcontext) 24089 if ccontext == uintptr(0) { 24090 return uintptr(0) 24091 } 24092 *(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_compile_context_8 24093 if gcontext != uintptr(0) { 24094 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24095 } 24096 return ccontext 24097 } 24098 24099 // A default match context is set up to save having to initialize at run time 24100 // when no context is supplied to a match function. 24101 24102 var X_pcre2_default_match_context_8 = Tpcre2_match_context_8{ 24103 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Substitute callout data 24104 Foffset_limit: libc.CplUint32(Tsize_t(0)), 24105 Fheap_limit: Tuint32_t(DHEAP_LIMIT), 24106 Fmatch_limit: Tuint32_t(DMATCH_LIMIT), 24107 Fdepth_limit: Tuint32_t(DMATCH_LIMIT)} /* pcre2_context.c:163:27 */ 24108 24109 // The create function copies the default into the new memory, but must 24110 // override the default memory handling functions if a gcontext was provided. 24111 24112 func Xpcre2_match_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:181:36: */ 24113 var mcontext uintptr = X_pcre2_memctl_malloc_8(tls, 24114 uint32(unsafe.Sizeof(Tpcre2_real_match_context_8{})), gcontext) 24115 if mcontext == uintptr(0) { 24116 return uintptr(0) 24117 } 24118 *(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)) = X_pcre2_default_match_context_8 24119 if gcontext != uintptr(0) { 24120 *(*Tpcre2_memctl)(unsafe.Pointer(mcontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24121 } 24122 return mcontext 24123 } 24124 24125 // A default convert context is set up to save having to initialize at run time 24126 // when no context is supplied to the convert function. 24127 24128 var X_pcre2_default_convert_context_8 = Tpcre2_convert_context_8{ 24129 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Default memory handling 24130 Fglob_separator: Tuint32_t('\057'), // Default path separator 24131 Fglob_escape: Tuint32_t('\134'), // Default escape character 24132 } /* pcre2_context.c:197:29 */ 24133 24134 // The create function copies the default into the new memory, but must 24135 // override the default memory handling functions if a gcontext was provided. 24136 24137 func Xpcre2_convert_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:211:38: */ 24138 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24139 uint32(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), gcontext) 24140 if ccontext == uintptr(0) { 24141 return uintptr(0) 24142 } 24143 *(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_convert_context_8 24144 if gcontext != uintptr(0) { 24145 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24146 } 24147 return ccontext 24148 } 24149 24150 // ************************************************ 24151 // 24152 // Context copy functions * 24153 // 24154 24155 func Xpcre2_general_context_copy_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:228:38: */ 24156 var new uintptr = (*struct { 24157 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24158 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint32(unsafe.Sizeof(Tpcre2_real_general_context_8{})), 24159 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 24160 if new == uintptr(0) { 24161 return uintptr(0) 24162 } 24163 libc.Xmemcpy(tls, new, gcontext, uint32(unsafe.Sizeof(Tpcre2_real_general_context_8{}))) 24164 return new 24165 } 24166 24167 func Xpcre2_compile_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:240:38: */ 24168 var new uintptr = (*struct { 24169 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24170 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint32(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), 24171 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24172 if new == uintptr(0) { 24173 return uintptr(0) 24174 } 24175 libc.Xmemcpy(tls, new, ccontext, uint32(unsafe.Sizeof(Tpcre2_real_compile_context_8{}))) 24176 return new 24177 } 24178 24179 func Xpcre2_match_context_copy_8(tls *libc.TLS, mcontext uintptr) uintptr { /* pcre2_context.c:252:36: */ 24180 var new uintptr = (*struct { 24181 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24182 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmalloc})).f(tls, uint32(unsafe.Sizeof(Tpcre2_real_match_context_8{})), 24183 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmemory_data) 24184 if new == uintptr(0) { 24185 return uintptr(0) 24186 } 24187 libc.Xmemcpy(tls, new, mcontext, uint32(unsafe.Sizeof(Tpcre2_real_match_context_8{}))) 24188 return new 24189 } 24190 24191 func Xpcre2_convert_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:265:38: */ 24192 var new uintptr = (*struct { 24193 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24194 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint32(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), 24195 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24196 if new == uintptr(0) { 24197 return uintptr(0) 24198 } 24199 libc.Xmemcpy(tls, new, ccontext, uint32(unsafe.Sizeof(Tpcre2_real_convert_context_8{}))) 24200 return new 24201 } 24202 24203 // ************************************************ 24204 // 24205 // Context free functions * 24206 // 24207 24208 func Xpcre2_general_context_free_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_context.c:282:1: */ 24209 if gcontext != uintptr(0) { 24210 (*struct { 24211 f func(*libc.TLS, uintptr, uintptr) 24212 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree})).f(tls, gcontext, (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 24213 } 24214 } 24215 24216 func Xpcre2_compile_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:290:1: */ 24217 if ccontext != uintptr(0) { 24218 (*struct { 24219 f func(*libc.TLS, uintptr, uintptr) 24220 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, ccontext, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24221 } 24222 } 24223 24224 func Xpcre2_match_context_free_8(tls *libc.TLS, mcontext uintptr) { /* pcre2_context.c:298:1: */ 24225 if mcontext != uintptr(0) { 24226 (*struct { 24227 f func(*libc.TLS, uintptr, uintptr) 24228 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Ffree})).f(tls, mcontext, (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmemory_data) 24229 } 24230 } 24231 24232 func Xpcre2_convert_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:306:1: */ 24233 if ccontext != uintptr(0) { 24234 (*struct { 24235 f func(*libc.TLS, uintptr, uintptr) 24236 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, ccontext, (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24237 } 24238 } 24239 24240 // ************************************************ 24241 // 24242 // Set values in contexts * 24243 // 24244 24245 // All these functions return 0 for success or PCRE2_ERROR_BADDATA if invalid 24246 // data is given. Only some of the functions are able to test the validity of the 24247 // data. 24248 24249 // ------------ Compile context ------------ 24250 24251 func Xpcre2_set_character_tables_8(tls *libc.TLS, ccontext uintptr, tables uintptr) int32 { /* pcre2_context.c:325:1: */ 24252 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables = tables 24253 return 0 24254 } 24255 24256 func Xpcre2_set_bsr_8(tls *libc.TLS, ccontext uintptr, value Tuint32_t) int32 { /* pcre2_context.c:333:1: */ 24257 switch value { 24258 case Tuint32_t(DPCRE2_BSR_ANYCRLF): 24259 fallthrough 24260 case Tuint32_t(DPCRE2_BSR_UNICODE): 24261 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention = Tuint16_t(value) 24262 return 0 24263 24264 default: 24265 return -29 24266 } 24267 return int32(0) 24268 } 24269 24270 func Xpcre2_set_max_pattern_length_8(tls *libc.TLS, ccontext uintptr, length Tsize_t) int32 { /* pcre2_context.c:348:1: */ 24271 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length = length 24272 return 0 24273 } 24274 24275 func Xpcre2_set_newline_8(tls *libc.TLS, ccontext uintptr, newline Tuint32_t) int32 { /* pcre2_context.c:355:1: */ 24276 switch newline { 24277 case Tuint32_t(DPCRE2_NEWLINE_CR): 24278 fallthrough 24279 case Tuint32_t(DPCRE2_NEWLINE_LF): 24280 fallthrough 24281 case Tuint32_t(DPCRE2_NEWLINE_CRLF): 24282 fallthrough 24283 case Tuint32_t(DPCRE2_NEWLINE_ANY): 24284 fallthrough 24285 case Tuint32_t(DPCRE2_NEWLINE_ANYCRLF): 24286 fallthrough 24287 case Tuint32_t(DPCRE2_NEWLINE_NUL): 24288 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention = Tuint16_t(newline) 24289 return 0 24290 24291 default: 24292 return -29 24293 } 24294 return int32(0) 24295 } 24296 24297 func Xpcre2_set_parens_nest_limit_8(tls *libc.TLS, ccontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:374:1: */ 24298 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fparens_nest_limit = limit 24299 return 0 24300 } 24301 24302 func Xpcre2_set_compile_extra_options_8(tls *libc.TLS, ccontext uintptr, options Tuint32_t) int32 { /* pcre2_context.c:381:1: */ 24303 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options = options 24304 return 0 24305 } 24306 24307 func Xpcre2_set_compile_recursion_guard_8(tls *libc.TLS, ccontext uintptr, guard uintptr, user_data uintptr) int32 { /* pcre2_context.c:388:1: */ 24308 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard = guard 24309 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard_data = user_data 24310 return 0 24311 } 24312 24313 // ------------ Match context ------------ 24314 24315 func Xpcre2_set_callout_8(tls *libc.TLS, mcontext uintptr, callout uintptr, callout_data uintptr) int32 { /* pcre2_context.c:400:1: */ 24316 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout = callout 24317 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data = callout_data 24318 return 0 24319 } 24320 24321 func Xpcre2_set_substitute_callout_8(tls *libc.TLS, mcontext uintptr, substitute_callout uintptr, substitute_callout_data uintptr) int32 { /* pcre2_context.c:409:1: */ 24322 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout = substitute_callout 24323 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data = substitute_callout_data 24324 return 0 24325 } 24326 24327 func Xpcre2_set_heap_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:419:1: */ 24328 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit = limit 24329 return 0 24330 } 24331 24332 func Xpcre2_set_match_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:426:1: */ 24333 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit = limit 24334 return 0 24335 } 24336 24337 func Xpcre2_set_depth_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:433:1: */ 24338 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit = limit 24339 return 0 24340 } 24341 24342 func Xpcre2_set_offset_limit_8(tls *libc.TLS, mcontext uintptr, limit Tsize_t) int32 { /* pcre2_context.c:440:1: */ 24343 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit = limit 24344 return 0 24345 } 24346 24347 // This function became obsolete at release 10.30. It is kept as a synonym for 24348 // backwards compatibility. 24349 24350 func Xpcre2_set_recursion_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:450:1: */ 24351 return Xpcre2_set_depth_limit_8(tls, mcontext, limit) 24352 } 24353 24354 func Xpcre2_set_recursion_memory_management_8(tls *libc.TLS, mcontext uintptr, mymalloc uintptr, myfree uintptr, mydata uintptr) int32 { /* pcre2_context.c:456:1: */ 24355 _ = mcontext 24356 _ = mymalloc 24357 _ = myfree 24358 _ = mydata 24359 return 0 24360 } 24361 24362 // ------------ Convert context ------------ 24363 24364 func Xpcre2_set_glob_separator_8(tls *libc.TLS, ccontext uintptr, separator Tuint32_t) int32 { /* pcre2_context.c:470:1: */ 24365 if separator != Tuint32_t('\057') && separator != Tuint32_t('\134') && separator != Tuint32_t('\056') { 24366 return -29 24367 } 24368 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator = separator 24369 return 0 24370 } 24371 24372 func Xpcre2_set_glob_escape_8(tls *libc.TLS, ccontext uintptr, escape Tuint32_t) int32 { /* pcre2_context.c:479:1: */ 24373 if escape > Tuint32_t(255) || escape != Tuint32_t(0) && !(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(escape))*2)))&int32(_ISpunct) != 0) { 24374 return -29 24375 } 24376 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape = escape 24377 return 0 24378 } 24379 24380 // End of pcre2_context.c 24381 24382 // Macro to add a character string to the output buffer, checking for overflow. 24383 24384 // Literals that must be escaped: \ ? * + | . ^ $ { } [ ] ( ) 24385 24386 var pcre2_escaped_literals uintptr = ts + 665 /* "\\?*+|.^${}[]()" */ /* pcre2_convert.c:87:19 */ 24387 24388 // Recognized escaped metacharacters in POSIX basic patterns. 24389 24390 var posix_meta_escapes uintptr = ts + 680 /* "(){}123456789" */ /* pcre2_convert.c:96:19 */ 24391 24392 // ************************************************ 24393 // 24394 // Convert a POSIX pattern * 24395 // 24396 24397 // This function handles both basic and extended POSIX patterns. 24398 // 24399 // Arguments: 24400 // pattype the pattern type 24401 // pattern the pattern 24402 // plength length in code units 24403 // utf TRUE if UTF 24404 // use_buffer where to put the output 24405 // use_length length of use_buffer 24406 // bufflenptr where to put the used length 24407 // dummyrun TRUE if a dummy run 24408 // ccontext the convert context 24409 // 24410 // Returns: 0 => success 24411 // !0 => error code 24412 24413 func convert_posix(tls *libc.TLS, pattype Tuint32_t, pattern TPCRE2_SPTR8, plength Tsize_t, utf TBOOL, use_buffer uintptr, use_length Tsize_t, bufflenptr uintptr, dummyrun TBOOL, ccontext uintptr) int32 { /* pcre2_convert.c:125:1: */ 24414 var s uintptr 24415 var posix TPCRE2_SPTR8 24416 var p uintptr 24417 var pp uintptr 24418 var endp uintptr // Allow for trailing zero 24419 var convlength Tsize_t 24420 var bracount Tuint32_t 24421 var posix_state Tuint32_t 24422 var lastspecial Tuint32_t 24423 var extended TBOOL 24424 var nextisliteral TBOOL 24425 var c Tuint32_t 24426 var sc Tuint32_t 24427 var clength int32 24428 posix = pattern 24429 p = use_buffer 24430 pp = p 24431 endp = p + uintptr(use_length) - uintptr(1) 24432 convlength = Tsize_t(0) 24433 bracount = Tuint32_t(0) 24434 posix_state = POSIX_START_REGEX 24435 lastspecial = Tuint32_t(0) 24436 extended = libc.Bool32(pattype&DPCRE2_CONVERT_POSIX_EXTENDED != Tuint32_t(0)) 24437 nextisliteral = DFALSE 24438 24439 _ = utf // Not used when Unicode not supported 24440 _ = ccontext // Not currently used 24441 24442 // Initialize default for error offset as end of input. 24443 24444 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = plength 24445 s = ts + 694 24446 __1: 24447 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24448 goto __3 24449 } 24450 if !(p >= endp) { 24451 goto __4 24452 } 24453 return -48 24454 __4: 24455 ; 24456 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24457 goto __2 24458 __2: 24459 s++ 24460 goto __1 24461 goto __3 24462 __3: 24463 ; 24464 24465 // Now scan the input. 24466 24467 __5: 24468 if !(plength > Tsize_t(0)) { 24469 goto __6 24470 } 24471 clength = 1 24472 24473 // Add in the length of the last item, then, if in the dummy run, pull the 24474 // pointer back to the start of the (temporary) buffer and then remember the 24475 // start of the next item. 24476 24477 convlength = convlength + Tsize_t((int32(p)-int32(pp))/1) 24478 if !(dummyrun != 0) { 24479 goto __7 24480 } 24481 p = use_buffer 24482 __7: 24483 ; 24484 pp = p 24485 24486 // Pick up the next character 24487 24488 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) 24489 if !(utf != 0 && c >= 0xc0) { 24490 goto __8 24491 } 24492 if !(c&0x20 == Tuint32_t(0)) { 24493 goto __9 24494 } 24495 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f 24496 clength++ 24497 goto __10 24498 __9: 24499 if !(c&0x10 == Tuint32_t(0)) { 24500 goto __11 24501 } 24502 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f 24503 clength = clength + 2 24504 goto __12 24505 __11: 24506 if !(c&0x08 == Tuint32_t(0)) { 24507 goto __13 24508 } 24509 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f 24510 clength = clength + 3 24511 goto __14 24512 __13: 24513 if !(c&0x04 == Tuint32_t(0)) { 24514 goto __15 24515 } 24516 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 4)))&0x3f 24517 clength = clength + 4 24518 goto __16 24519 __15: 24520 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 5)))&0x3f 24521 clength = clength + 5 24522 __16: 24523 ; 24524 __14: 24525 ; 24526 __12: 24527 ; 24528 __10: 24529 ; 24530 __8: 24531 ; 24532 24533 posix += TPCRE2_SPTR8(clength) 24534 plength = plength - Tsize_t(clength) 24535 24536 if nextisliteral != 0 { 24537 sc = uint32(0) 24538 } else { 24539 sc = c 24540 } 24541 nextisliteral = DFALSE 24542 24543 // Handle a character within a class. 24544 24545 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 24546 goto __17 24547 } 24548 24549 if !(c == Tuint32_t('\135')) { 24550 goto __19 24551 } 24552 24553 s = ts + 701 24554 __21: 24555 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24556 goto __23 24557 } 24558 if !(p >= endp) { 24559 goto __24 24560 } 24561 return -48 24562 __24: 24563 ; 24564 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24565 goto __22 24566 __22: 24567 s++ 24568 goto __21 24569 goto __23 24570 __23: 24571 ; 24572 24573 posix_state = POSIX_NOT_BRACKET 24574 goto __20 24575 __19: 24576 24577 switch posix_state { 24578 case POSIX_CLASS_STARTED: 24579 goto __26 24580 // Fall through 24581 24582 case POSIX_CLASS_NOT_STARTED: 24583 goto __27 24584 24585 case POSIX_CLASS_STARTING: 24586 goto __28 24587 } 24588 goto __25 24589 24590 __26: 24591 if !(c <= Tuint32_t(127) && int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISlower) != 0) { 24592 goto __29 24593 } 24594 goto __25 24595 __29: 24596 ; // Remain in started state 24597 posix_state = POSIX_CLASS_NOT_STARTED 24598 if !(c == Tuint32_t('\072') && plength > Tsize_t(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24599 goto __30 24600 } 24601 24602 s = ts + 703 24603 __31: 24604 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24605 goto __33 24606 } 24607 if !(p >= endp) { 24608 goto __34 24609 } 24610 return -48 24611 __34: 24612 ; 24613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24614 goto __32 24615 __32: 24616 s++ 24617 goto __31 24618 goto __33 24619 __33: 24620 ; 24621 24622 plength-- 24623 posix++ 24624 goto __5 // With next character after :] 24625 __30: 24626 ; 24627 // Fall through 24628 24629 __27: 24630 if !(c == Tuint32_t('\133')) { 24631 goto __35 24632 } 24633 posix_state = POSIX_CLASS_STARTING 24634 __35: 24635 ; 24636 goto __25 24637 24638 __28: 24639 if !(c == Tuint32_t('\072')) { 24640 goto __36 24641 } 24642 posix_state = POSIX_CLASS_STARTED 24643 __36: 24644 ; 24645 goto __25 24646 __25: 24647 ; 24648 24649 if !(c == Tuint32_t('\134')) { 24650 goto __37 24651 } 24652 s = ts + 706 24653 __38: 24654 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24655 goto __40 24656 } 24657 if !(p >= endp) { 24658 goto __41 24659 } 24660 return -48 24661 __41: 24662 ; 24663 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24664 goto __39 24665 __39: 24666 s++ 24667 goto __38 24668 goto __40 24669 __40: 24670 ; 24671 __37: 24672 ; 24673 24674 if !(p+uintptr(clength) > endp) { 24675 goto __42 24676 } 24677 return -48 24678 __42: 24679 ; 24680 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint32(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 24681 p += uintptr(clength) 24682 __20: 24683 ; 24684 goto __18 24685 __17: 24686 switch sc { 24687 case Tuint32_t('\133'): 24688 goto __44 24689 24690 case Tuint32_t('\134'): 24691 goto __45 24692 24693 case Tuint32_t('\051'): 24694 goto __46 24695 24696 case Tuint32_t('\050'): 24697 goto __47 24698 // Fall through 24699 24700 case Tuint32_t('\077'): 24701 goto __48 24702 case Tuint32_t('\053'): 24703 goto __49 24704 case Tuint32_t('\173'): 24705 goto __50 24706 case Tuint32_t('\175'): 24707 goto __51 24708 case Tuint32_t('\174'): 24709 goto __52 24710 // Fall through 24711 24712 case Tuint32_t('\056'): 24713 goto __53 24714 case Tuint32_t('\044'): 24715 goto __54 24716 24717 case Tuint32_t('\052'): 24718 goto __55 // Ignore second and subsequent asterisks 24719 24720 case Tuint32_t('\136'): 24721 goto __56 24722 // Fall through 24723 24724 default: 24725 goto __57 24726 } 24727 goto __43 24728 24729 __44: 24730 s = ts + 708 24731 __58: 24732 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24733 goto __60 24734 } 24735 if !(p >= endp) { 24736 goto __61 24737 } 24738 return -48 24739 __61: 24740 ; 24741 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24742 goto __59 24743 __59: 24744 s++ 24745 goto __58 24746 goto __60 24747 __60: 24748 ; 24749 24750 // Handle start of "normal" character classes 24751 24752 posix_state = POSIX_CLASS_NOT_STARTED 24753 24754 // Handle ^ and ] as first characters 24755 24756 if !(plength > Tsize_t(0)) { 24757 goto __62 24758 } 24759 24760 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\136') { 24761 goto __63 24762 } 24763 24764 posix++ 24765 plength-- 24766 s = ts + 710 24767 __64: 24768 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24769 goto __66 24770 } 24771 if !(p >= endp) { 24772 goto __67 24773 } 24774 return -48 24775 __67: 24776 ; 24777 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24778 goto __65 24779 __65: 24780 s++ 24781 goto __64 24782 goto __66 24783 __66: 24784 ; 24785 24786 __63: 24787 ; 24788 if !(plength > Tsize_t(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24789 goto __68 24790 } 24791 24792 posix++ 24793 plength-- 24794 s = ts + 701 24795 __69: 24796 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24797 goto __71 24798 } 24799 if !(p >= endp) { 24800 goto __72 24801 } 24802 return -48 24803 __72: 24804 ; 24805 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24806 goto __70 24807 __70: 24808 s++ 24809 goto __69 24810 goto __71 24811 __71: 24812 ; 24813 24814 __68: 24815 ; 24816 __62: 24817 ; 24818 goto __43 24819 24820 __45: 24821 if !(plength == Tsize_t(0)) { 24822 goto __73 24823 } 24824 return DPCRE2_ERROR_END_BACKSLASH 24825 __73: 24826 ; 24827 if !(extended != 0) { 24828 goto __74 24829 } 24830 nextisliteral = DTRUE 24831 goto __75 24832 __74: 24833 24834 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) < 127 && libc.Xstrchr(tls, posix_meta_escapes, int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix)))) != uintptr(0)) { 24835 goto __76 24836 } 24837 24838 if !(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))))*2)))&int32(_ISdigit) != 0) { 24839 goto __78 24840 } 24841 s = ts + 706 24842 __79: 24843 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24844 goto __81 24845 } 24846 if !(p >= endp) { 24847 goto __82 24848 } 24849 return -48 24850 __82: 24851 ; 24852 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24853 goto __80 24854 __80: 24855 s++ 24856 goto __79 24857 goto __81 24858 __81: 24859 ; 24860 __78: 24861 ; 24862 24863 if !(p+uintptr(1) > endp) { 24864 goto __83 24865 } 24866 return -48 24867 __83: 24868 ; 24869 lastspecial = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&p, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&posix, 1))))) 24870 plength-- 24871 goto __77 24872 __76: 24873 nextisliteral = DTRUE 24874 __77: 24875 ; 24876 __75: 24877 ; 24878 goto __43 24879 24880 __46: 24881 if !(!(extended != 0) || bracount == Tuint32_t(0)) { 24882 goto __84 24883 } 24884 goto ESCAPE_LITERAL 24885 __84: 24886 ; 24887 bracount-- 24888 goto COPY_SPECIAL 24889 24890 __47: 24891 bracount++ 24892 // Fall through 24893 24894 __48: 24895 __49: 24896 __50: 24897 __51: 24898 __52: 24899 if !!(extended != 0) { 24900 goto __85 24901 } 24902 goto ESCAPE_LITERAL 24903 __85: 24904 ; 24905 // Fall through 24906 24907 __53: 24908 __54: 24909 posix_state = POSIX_NOT_BRACKET 24910 COPY_SPECIAL: 24911 lastspecial = c 24912 if !(p+uintptr(1) > endp) { 24913 goto __86 24914 } 24915 return -48 24916 __86: 24917 ; 24918 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(c) 24919 goto __43 24920 24921 __55: 24922 if !(lastspecial != Tuint32_t('\052')) { 24923 goto __87 24924 } 24925 24926 if !(!(extended != 0) && (posix_state < POSIX_NOT_BRACKET || lastspecial == Tuint32_t('\050'))) { 24927 goto __88 24928 } 24929 goto ESCAPE_LITERAL 24930 __88: 24931 ; 24932 goto COPY_SPECIAL 24933 __87: 24934 ; 24935 goto __43 // Ignore second and subsequent asterisks 24936 24937 __56: 24938 if !(extended != 0) { 24939 goto __89 24940 } 24941 goto COPY_SPECIAL 24942 __89: 24943 ; 24944 if !(posix_state == POSIX_START_REGEX || lastspecial == Tuint32_t('\050')) { 24945 goto __90 24946 } 24947 24948 posix_state = POSIX_ANCHORED 24949 goto COPY_SPECIAL 24950 __90: 24951 ; 24952 // Fall through 24953 24954 __57: 24955 if !(c < Tuint32_t(128) && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0)) { 24956 goto __91 24957 } 24958 24959 ESCAPE_LITERAL: 24960 s = ts + 706 24961 __92: 24962 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24963 goto __94 24964 } 24965 if !(p >= endp) { 24966 goto __95 24967 } 24968 return -48 24969 __95: 24970 ; 24971 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24972 goto __93 24973 __93: 24974 s++ 24975 goto __92 24976 goto __94 24977 __94: 24978 ; 24979 24980 __91: 24981 ; 24982 lastspecial = Tuint32_t(0xff) // Indicates nothing special 24983 if !(p+uintptr(clength) > endp) { 24984 goto __96 24985 } 24986 return -48 24987 __96: 24988 ; 24989 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint32(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 24990 p += uintptr(clength) 24991 posix_state = POSIX_NOT_BRACKET 24992 goto __43 24993 __43: 24994 ; 24995 __18: 24996 ; 24997 goto __5 24998 __6: 24999 ; 25000 25001 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 25002 goto __97 25003 } 25004 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25005 __97: 25006 ; 25007 convlength = convlength + Tsize_t((int32(p)-int32(pp))/1) // Final segment 25008 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = convlength 25009 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(0) 25010 return 0 25011 } 25012 25013 // ************************************************ 25014 // 25015 // Convert a glob pattern * 25016 // 25017 25018 // Context for writing the output into a buffer. 25019 25020 type Spcre2_output_context = struct { 25021 Foutput uintptr 25022 Foutput_end TPCRE2_SPTR8 25023 Foutput_size Tsize_t 25024 Fout_str [8]Tuint8_t 25025 } /* pcre2_convert.c:369:9 */ 25026 25027 // ************************************************ 25028 // 25029 // Convert a glob pattern * 25030 // 25031 25032 // Context for writing the output into a buffer. 25033 25034 type Tpcre2_output_context = Spcre2_output_context /* pcre2_convert.c:374:3 */ 25035 25036 // Write a character into the output. 25037 // 25038 // Arguments: 25039 // out output context 25040 // chr the next character 25041 25042 func convert_glob_write(tls *libc.TLS, out uintptr, chr TPCRE2_UCHAR8) { /* pcre2_convert.c:385:1: */ 25043 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size++ 25044 25045 if (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput < (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end { 25046 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput, 1))) = chr 25047 } 25048 } 25049 25050 // Write a string into the output. 25051 // 25052 // Arguments: 25053 // out output context 25054 // length length of out->out_str 25055 25056 func convert_glob_write_str(tls *libc.TLS, out uintptr, length Tsize_t) { /* pcre2_convert.c:402:1: */ 25057 var out_str uintptr = out + 12 /* &.out_str */ 25058 var output uintptr = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput 25059 var output_end TPCRE2_SPTR8 = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end 25060 var output_size Tsize_t = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size 25061 25062 for __ccgo := true; __ccgo; __ccgo = libc.PreDecUint32(&length, 1) != Tsize_t(0) { 25063 output_size++ 25064 25065 if output < output_end { 25066 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&output, 1))) = *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&out_str, 1))) 25067 } 25068 } 25069 25070 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput = output 25071 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size = output_size 25072 } 25073 25074 // Prints the separator into the output. 25075 // 25076 // Arguments: 25077 // out output context 25078 // separator glob separator 25079 // with_escape backslash is needed before separator 25080 25081 func convert_glob_print_separator(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:432:1: */ 25082 if with_escape != 0 { 25083 convert_glob_write(tls, out, uint8('\134')) 25084 } 25085 25086 convert_glob_write(tls, out, separator) 25087 } 25088 25089 // Prints a wildcard into the output. 25090 // 25091 // Arguments: 25092 // out output context 25093 // separator glob separator 25094 // with_escape backslash is needed before separator 25095 25096 func convert_glob_print_wildcard(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:451:1: */ 25097 *(*Tuint8_t)(unsafe.Pointer(out + 12)) = Tuint8_t('\133') 25098 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 1)) = Tuint8_t('\136') 25099 convert_glob_write_str(tls, out, uint32(2)) 25100 25101 convert_glob_print_separator(tls, out, separator, with_escape) 25102 25103 convert_glob_write(tls, out, uint8('\135')) 25104 } 25105 25106 // Parse a posix class. 25107 // 25108 // Arguments: 25109 // from starting point of scanning the range 25110 // pattern_end end of pattern 25111 // out output context 25112 // 25113 // Returns: >0 => class index 25114 // 0 => malformed class 25115 25116 func convert_glob_parse_class(tls *libc.TLS, from uintptr, pattern_end TPCRE2_SPTR8, out uintptr) int32 { /* pcre2_convert.c:476:1: */ 25117 var start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) + uintptr(1) 25118 var pattern TPCRE2_SPTR8 = start 25119 var class_ptr uintptr 25120 var c TPCRE2_UCHAR8 25121 var class_index int32 25122 25123 for 1 != 0 { 25124 if pattern >= pattern_end { 25125 return 0 25126 } 25127 25128 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))) 25129 25130 if int32(c) < '\141' || int32(c) > '\172' { 25131 break 25132 } 25133 } 25134 25135 if int32(c) != '\072' || pattern >= pattern_end || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25136 return 0 25137 } 25138 25139 class_ptr = posix_classes 25140 class_index = 1 25141 25142 for 1 != 0 { 25143 if int32(*(*int8)(unsafe.Pointer(class_ptr))) == 0 { 25144 return 0 25145 } 25146 25147 pattern = start 25148 25149 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == int32(TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(class_ptr)))) { 25150 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25151 pattern += uintptr(2) 25152 start -= uintptr(2) 25153 25154 for __ccgo := true; __ccgo; __ccgo = start < pattern { 25155 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&start, 1)))) 25156 } 25157 25158 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25159 return class_index 25160 } 25161 pattern++ 25162 class_ptr++ 25163 } 25164 25165 for int32(*(*int8)(unsafe.Pointer(class_ptr))) != '\072' { 25166 class_ptr++ 25167 } 25168 class_ptr++ 25169 class_index++ 25170 } 25171 return int32(0) 25172 } 25173 25174 var posix_classes uintptr = ts + 712 /* "alnum:alpha:asci..." */ /* pcre2_convert.c:479:19 */ 25175 25176 // Checks whether the character is in the class. 25177 // 25178 // Arguments: 25179 // class_index class index 25180 // c character 25181 // 25182 // Returns: !0 => character is found in the class 25183 // 0 => otherwise 25184 25185 func convert_glob_char_in_class(tls *libc.TLS, class_index int32, c TPCRE2_UCHAR8) TBOOL { /* pcre2_convert.c:542:1: */ 25186 switch class_index { 25187 case 1: 25188 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalnum) 25189 case 2: 25190 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalpha) 25191 case 3: 25192 return 1 25193 case 4: 25194 return libc.Bool32(int32(c) == '\011' || int32(c) == '\040') 25195 case 5: 25196 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_IScntrl) 25197 case 6: 25198 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISdigit) 25199 case 7: 25200 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISgraph) 25201 case 8: 25202 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISlower) 25203 case 9: 25204 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISprint) 25205 case 10: 25206 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISpunct) 25207 case 11: 25208 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISspace) 25209 case 12: 25210 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISupper) 25211 case 13: 25212 return libc.Bool32(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISalnum) != 0 || int32(c) == '\137') 25213 default: 25214 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISxdigit) 25215 } 25216 return TBOOL(0) 25217 } 25218 25219 // Parse a range of characters. 25220 // 25221 // Arguments: 25222 // from starting point of scanning the range 25223 // pattern_end end of pattern 25224 // out output context 25225 // separator glob separator 25226 // with_escape backslash is needed before separator 25227 // 25228 // Returns: 0 => success 25229 // !0 => error code 25230 25231 func convert_glob_parse_range(tls *libc.TLS, from uintptr, pattern_end TPCRE2_SPTR8, out uintptr, utf TBOOL, separator TPCRE2_UCHAR8, with_escape TBOOL, escape TPCRE2_UCHAR8, no_wildsep TBOOL) int32 { /* pcre2_convert.c:577:1: */ 25232 var is_negative TBOOL = DFALSE 25233 var separator_seen TBOOL = DFALSE 25234 var has_prev_c TBOOL 25235 var pattern TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25236 var char_start TPCRE2_SPTR8 = uintptr(0) 25237 var c Tuint32_t 25238 var prev_c Tuint32_t 25239 var len int32 25240 var class_index int32 25241 25242 _ = utf // Avoid compiler warning. 25243 25244 if pattern >= pattern_end { 25245 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25246 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25247 } 25248 25249 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\041' || 25250 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\136' { 25251 pattern++ 25252 25253 if pattern >= pattern_end { 25254 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25255 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25256 } 25257 25258 is_negative = DTRUE 25259 25260 *(*Tuint8_t)(unsafe.Pointer(out + 12)) = Tuint8_t('\133') 25261 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 1)) = Tuint8_t('\136') 25262 len = 2 25263 25264 if !(no_wildsep != 0) { 25265 if with_escape != 0 { 25266 *(*Tuint8_t)(unsafe.Pointer(out + 12 + uintptr(len))) = Tuint8_t('\134') 25267 len++ 25268 } 25269 *(*Tuint8_t)(unsafe.Pointer(out + 12 + uintptr(len))) = separator 25270 } 25271 25272 convert_glob_write_str(tls, out, uint32(len+1)) 25273 } else { 25274 convert_glob_write(tls, out, uint8('\133')) 25275 } 25276 25277 has_prev_c = DFALSE 25278 prev_c = Tuint32_t(0) 25279 25280 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\135' { 25281 *(*Tuint8_t)(unsafe.Pointer(out + 12)) = Tuint8_t('\134') 25282 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 1)) = Tuint8_t('\135') 25283 convert_glob_write_str(tls, out, uint32(2)) 25284 has_prev_c = DTRUE 25285 prev_c = Tuint32_t('\135') 25286 pattern++ 25287 } 25288 25289 for pattern < pattern_end { 25290 char_start = pattern 25291 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25292 if utf != 0 && c >= 0xc0 { 25293 if c&0x20 == Tuint32_t(0) { 25294 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25295 } else if c&0x10 == Tuint32_t(0) { 25296 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25297 pattern += uintptr(2) 25298 } else if c&0x08 == Tuint32_t(0) { 25299 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25300 pattern += uintptr(3) 25301 } else if c&0x04 == Tuint32_t(0) { 25302 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25303 pattern += uintptr(4) 25304 } else { 25305 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25306 pattern += uintptr(5) 25307 } 25308 } 25309 25310 if c == Tuint32_t('\135') { 25311 convert_glob_write(tls, out, uint8(c)) 25312 25313 if !(is_negative != 0) && !(no_wildsep != 0) && separator_seen != 0 { 25314 *(*Tuint8_t)(unsafe.Pointer(out + 12)) = Tuint8_t('\050') 25315 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 1)) = Tuint8_t('\077') 25316 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 2)) = Tuint8_t('\074') 25317 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 3)) = Tuint8_t('\041') 25318 convert_glob_write_str(tls, out, uint32(4)) 25319 25320 convert_glob_print_separator(tls, out, separator, with_escape) 25321 convert_glob_write(tls, out, uint8('\051')) 25322 } 25323 25324 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25325 return 0 25326 } 25327 25328 if pattern >= pattern_end { 25329 break 25330 } 25331 25332 if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25333 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25334 class_index = convert_glob_parse_class(tls, from, pattern_end, out) 25335 25336 if class_index != 0 { 25337 pattern = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25338 25339 has_prev_c = DFALSE 25340 prev_c = Tuint32_t(0) 25341 25342 if !(is_negative != 0) && convert_glob_char_in_class(tls, class_index, separator) != 0 { 25343 separator_seen = DTRUE 25344 } 25345 continue 25346 } 25347 } else if c == Tuint32_t('\055') && has_prev_c != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25348 convert_glob_write(tls, out, uint8('\055')) 25349 25350 char_start = pattern 25351 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25352 if utf != 0 && c >= 0xc0 { 25353 if c&0x20 == Tuint32_t(0) { 25354 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25355 } else if c&0x10 == Tuint32_t(0) { 25356 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25357 pattern += uintptr(2) 25358 } else if c&0x08 == Tuint32_t(0) { 25359 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25360 pattern += uintptr(3) 25361 } else if c&0x04 == Tuint32_t(0) { 25362 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25363 pattern += uintptr(4) 25364 } else { 25365 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25366 pattern += uintptr(5) 25367 } 25368 } 25369 25370 if pattern >= pattern_end { 25371 break 25372 } 25373 25374 if int32(escape) != 0 && c == Tuint32_t(escape) { 25375 char_start = pattern 25376 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25377 if utf != 0 && c >= 0xc0 { 25378 if c&0x20 == Tuint32_t(0) { 25379 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25380 } else if c&0x10 == Tuint32_t(0) { 25381 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25382 pattern += uintptr(2) 25383 } else if c&0x08 == Tuint32_t(0) { 25384 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25385 pattern += uintptr(3) 25386 } else if c&0x04 == Tuint32_t(0) { 25387 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25388 pattern += uintptr(4) 25389 } else { 25390 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25391 pattern += uintptr(5) 25392 } 25393 } 25394 25395 } else if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25396 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25397 return -64 25398 } 25399 25400 if prev_c > c { 25401 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25402 return -64 25403 } 25404 25405 if prev_c < Tuint32_t(separator) && Tuint32_t(separator) < c { 25406 separator_seen = DTRUE 25407 } 25408 25409 has_prev_c = DFALSE 25410 prev_c = Tuint32_t(0) 25411 } else { 25412 if int32(escape) != 0 && c == Tuint32_t(escape) { 25413 char_start = pattern 25414 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25415 if utf != 0 && c >= 0xc0 { 25416 if c&0x20 == Tuint32_t(0) { 25417 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25418 } else if c&0x10 == Tuint32_t(0) { 25419 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25420 pattern += uintptr(2) 25421 } else if c&0x08 == Tuint32_t(0) { 25422 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25423 pattern += uintptr(3) 25424 } else if c&0x04 == Tuint32_t(0) { 25425 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25426 pattern += uintptr(4) 25427 } else { 25428 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25429 pattern += uintptr(5) 25430 } 25431 } 25432 25433 if pattern >= pattern_end { 25434 break 25435 } 25436 } 25437 25438 has_prev_c = DTRUE 25439 prev_c = c 25440 } 25441 25442 if c == Tuint32_t('\133') || c == Tuint32_t('\135') || c == Tuint32_t('\134') || c == Tuint32_t('\055') { 25443 convert_glob_write(tls, out, uint8('\134')) 25444 } 25445 25446 if c == Tuint32_t(separator) { 25447 separator_seen = DTRUE 25448 } 25449 25450 for __ccgo := true; __ccgo; __ccgo = char_start < pattern { 25451 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&char_start, 1)))) 25452 } 25453 } 25454 25455 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25456 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25457 } 25458 25459 // Prints a (*COMMIT) into the output. 25460 // 25461 // Arguments: 25462 // out output context 25463 25464 func convert_glob_print_commit(tls *libc.TLS, out uintptr) { /* pcre2_convert.c:754:1: */ 25465 *(*Tuint8_t)(unsafe.Pointer(out + 12)) = Tuint8_t('\050') 25466 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 1)) = Tuint8_t('\052') 25467 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 2)) = Tuint8_t('\103') 25468 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 3)) = Tuint8_t('\117') 25469 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 4)) = Tuint8_t('\115') 25470 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 5)) = Tuint8_t('\115') 25471 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 6)) = Tuint8_t('\111') 25472 *(*Tuint8_t)(unsafe.Pointer(out + 12 + 7)) = Tuint8_t('\124') 25473 convert_glob_write_str(tls, out, uint32(8)) 25474 convert_glob_write(tls, out, uint8('\051')) 25475 } 25476 25477 // Bash glob converter. 25478 // 25479 // Arguments: 25480 // pattype the pattern type 25481 // pattern the pattern 25482 // plength length in code units 25483 // utf TRUE if UTF 25484 // use_buffer where to put the output 25485 // use_length length of use_buffer 25486 // bufflenptr where to put the used length 25487 // dummyrun TRUE if a dummy run 25488 // ccontext the convert context 25489 // 25490 // Returns: 0 => success 25491 // !0 => error code 25492 25493 func convert_glob(tls *libc.TLS, options Tuint32_t, pattern TPCRE2_SPTR8, plength Tsize_t, utf TBOOL, use_buffer uintptr, use_length Tsize_t, bufflenptr uintptr, dummyrun TBOOL, ccontext uintptr) int32 { /* pcre2_convert.c:787:1: */ 25494 bp := tls.Alloc(24) 25495 defer tls.Free(24) 25496 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) = pattern 25497 25498 // var out Tpcre2_output_context at bp, 20 25499 25500 var pattern_start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */)) 25501 var pattern_end TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) + uintptr(plength) 25502 var separator TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator) 25503 var escape TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape) 25504 var c TPCRE2_UCHAR8 25505 var no_wildsep TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR != Tuint32_t(0)) 25506 var no_starstar TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_STARSTAR != Tuint32_t(0)) 25507 var in_atomic TBOOL = DFALSE 25508 var after_starstar TBOOL = DFALSE 25509 var no_slash_z TBOOL = DFALSE 25510 var with_escape TBOOL 25511 var is_start TBOOL 25512 var after_separator TBOOL 25513 var result int32 = 0 25514 25515 _ = utf // Avoid compiler warning. 25516 25517 if utf != 0 && (int32(separator) >= 128 || int32(escape) >= 128) { 25518 // Currently only ASCII characters are supported. 25519 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t(0) 25520 return -64 25521 } 25522 25523 with_escape = libc.Bool32(libc.Xstrchr(tls, pcre2_escaped_literals, int32(separator)) != uintptr(0)) 25524 25525 // Initialize default for error offset as end of input. 25526 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput = use_buffer 25527 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_end = use_buffer + uintptr(use_length) 25528 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_size = Tsize_t(0) 25529 25530 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\050') 25531 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25532 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\163') 25533 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 3)) = Tuint8_t('\051') 25534 convert_glob_write_str(tls, bp, uint32(4)) 25535 25536 is_start = DTRUE 25537 25538 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == '\052' { 25539 if no_wildsep != 0 { 25540 is_start = DFALSE 25541 } else if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) + 1))) == '\052' { 25542 is_start = DFALSE 25543 } 25544 } 25545 25546 if is_start != 0 { 25547 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\134') 25548 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\101') 25549 convert_glob_write_str(tls, bp, uint32(2)) 25550 } 25551 25552 for *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end { 25553 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */)), 1))) 25554 25555 if int32(c) == '\052' { 25556 is_start = libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) == pattern_start+uintptr(1)) 25557 25558 if in_atomic != 0 { 25559 convert_glob_write(tls, bp, uint8('\051')) 25560 in_atomic = DFALSE 25561 } 25562 25563 if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == '\052' { 25564 after_separator = libc.Bool32(is_start != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) + libc.UintptrFromInt32(-2)))) == int32(separator)) 25565 25566 for __ccgo := true; __ccgo; __ccgo = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == '\052' { 25567 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */))++ 25568 } 25569 25570 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) >= pattern_end { 25571 no_slash_z = DTRUE 25572 break 25573 } 25574 25575 after_starstar = DTRUE 25576 25577 if after_separator != 0 && int32(escape) != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == int32(escape) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) + 1))) == int32(separator) { 25578 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */))++ 25579 } 25580 25581 if is_start != 0 { 25582 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) != int32(separator) { 25583 continue 25584 } 25585 25586 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\050') 25587 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25588 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\072') 25589 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 3)) = Tuint8_t('\134') 25590 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 4)) = Tuint8_t('\101') 25591 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 5)) = Tuint8_t('\174') 25592 convert_glob_write_str(tls, bp, uint32(6)) 25593 25594 convert_glob_print_separator(tls, bp, separator, with_escape) 25595 convert_glob_write(tls, bp, uint8('\051')) 25596 25597 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */))++ 25598 continue 25599 } 25600 25601 convert_glob_print_commit(tls, bp) 25602 25603 if !(after_separator != 0) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) != int32(separator) { 25604 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\056') 25605 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\052') 25606 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\077') 25607 convert_glob_write_str(tls, bp, uint32(3)) 25608 continue 25609 } 25610 25611 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\050') 25612 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25613 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\072') 25614 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 3)) = Tuint8_t('\056') 25615 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 4)) = Tuint8_t('\052') 25616 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 5)) = Tuint8_t('\077') 25617 25618 convert_glob_write_str(tls, bp, uint32(6)) 25619 25620 convert_glob_print_separator(tls, bp, separator, with_escape) 25621 25622 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\051') 25623 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25624 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\077') 25625 convert_glob_write_str(tls, bp, uint32(3)) 25626 25627 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */))++ 25628 continue 25629 } 25630 25631 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == '\052' { 25632 for __ccgo1 := true; __ccgo1; __ccgo1 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))))) == '\052' { 25633 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */))++ 25634 } 25635 } 25636 25637 if no_wildsep != 0 { 25638 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) >= pattern_end { 25639 no_slash_z = DTRUE 25640 break 25641 } 25642 25643 // Start check must be after the end check. 25644 if is_start != 0 { 25645 continue 25646 } 25647 } 25648 25649 if !(is_start != 0) { 25650 if after_starstar != 0 { 25651 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\050') 25652 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25653 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 2)) = Tuint8_t('\076') 25654 convert_glob_write_str(tls, bp, uint32(3)) 25655 in_atomic = DTRUE 25656 } else { 25657 convert_glob_print_commit(tls, bp) 25658 } 25659 } 25660 25661 if no_wildsep != 0 { 25662 convert_glob_write(tls, bp, uint8('\056')) 25663 } else { 25664 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25665 } 25666 25667 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\052') 25668 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\077') 25669 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) >= pattern_end { 25670 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\053') 25671 } 25672 convert_glob_write_str(tls, bp, uint32(2)) 25673 continue 25674 } 25675 25676 if int32(c) == '\077' { 25677 if no_wildsep != 0 { 25678 convert_glob_write(tls, bp, uint8('\056')) 25679 } else { 25680 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25681 } 25682 continue 25683 } 25684 25685 if int32(c) == '\133' { 25686 result = convert_glob_parse_range(tls, bp+20, pattern_end, 25687 bp, utf, separator, with_escape, escape, no_wildsep) 25688 if result != 0 { 25689 break 25690 } 25691 continue 25692 } 25693 25694 if int32(escape) != 0 && int32(c) == int32(escape) { 25695 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20)) >= pattern_end { 25696 result = -64 25697 break 25698 } 25699 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20 /* pattern */)), 1))) 25700 } 25701 25702 if int32(c) < 128 && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0) { 25703 convert_glob_write(tls, bp, uint8('\134')) 25704 } 25705 25706 convert_glob_write(tls, bp, c) 25707 } 25708 25709 if result == 0 { 25710 if !(no_slash_z != 0) { 25711 *(*Tuint8_t)(unsafe.Pointer(bp + 12)) = Tuint8_t('\134') 25712 *(*Tuint8_t)(unsafe.Pointer(bp + 12 + 1)) = Tuint8_t('\172') 25713 convert_glob_write_str(tls, bp, uint32(2)) 25714 } 25715 25716 if in_atomic != 0 { 25717 convert_glob_write(tls, bp, uint8('\051')) 25718 } 25719 25720 convert_glob_write(tls, bp, uint8(0)) 25721 25722 if !(dummyrun != 0) && (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size != Tsize_t((int32((*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput)-int32(use_buffer))/1) { 25723 result = -48 25724 } 25725 } 25726 25727 if result != 0 { 25728 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 20))) - int32(pattern_start)) / 1) 25729 return result 25730 } 25731 25732 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size - Tsize_t(1) 25733 return 0 25734 } 25735 25736 // ************************************************ 25737 // 25738 // Convert pattern * 25739 // 25740 25741 // This is the external-facing function for converting other forms of pattern 25742 // into PCRE2 regular expression patterns. On error, the bufflenptr argument is 25743 // used to return an offset in the original pattern. 25744 // 25745 // Arguments: 25746 // pattern the input pattern 25747 // plength length of input, or PCRE2_ZERO_TERMINATED 25748 // options options bits 25749 // buffptr pointer to pointer to output buffer 25750 // bufflenptr pointer to length of output buffer 25751 // ccontext convert context or NULL 25752 // 25753 // Returns: 0 for success, else an error code (+ve or -ve) 25754 25755 func Xpcre2_pattern_convert_8(tls *libc.TLS, pattern TPCRE2_SPTR8, plength Tsize_t, options Tuint32_t, buffptr uintptr, bufflenptr uintptr, ccontext uintptr) int32 { /* pcre2_convert.c:1057:1: */ 25756 bp := tls.Alloc(104) 25757 defer tls.Free(104) 25758 25759 var i int32 25760 var rc int32 25761 // var dummy_buffer [100]TPCRE2_UCHAR8 at bp, 100 25762 25763 var use_buffer uintptr = bp /* dummy_buffer */ 25764 var use_length Tsize_t = Tsize_t(DDUMMY_BUFFER_SIZE) 25765 var utf TBOOL = libc.Bool32(options&DPCRE2_CONVERT_UTF != Tuint32_t(0)) 25766 var pattype Tuint32_t = options & (DPCRE2_CONVERT_GLOB | DPCRE2_CONVERT_POSIX_BASIC | DPCRE2_CONVERT_POSIX_EXTENDED) 25767 25768 if pattern == uintptr(0) || bufflenptr == uintptr(0) { 25769 return -51 25770 } 25771 25772 if options&libc.CplUint32(DPCRE2_CONVERT_UTF|DPCRE2_CONVERT_NO_UTF_CHECK|DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR|DPCRE2_CONVERT_GLOB_NO_STARSTAR|(DPCRE2_CONVERT_GLOB|DPCRE2_CONVERT_POSIX_BASIC|DPCRE2_CONVERT_POSIX_EXTENDED)) != Tuint32_t(0) || pattype&(^pattype+Tuint32_t(1)) != pattype || pattype == Tuint32_t(0) { 25773 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t(0) // Error offset 25774 return -34 25775 } 25776 25777 if plength == libc.CplUint32(Tsize_t(0)) { 25778 plength = X_pcre2_strlen_8(tls, pattern) 25779 } 25780 if ccontext == uintptr(0) { 25781 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) 25782 } 25783 25784 // Check UTF if required. 25785 25786 if utf != 0 && options&DPCRE2_CONVERT_NO_UTF_CHECK == Tuint32_t(0) { 25787 // var erroroffset Tsize_t at bp+100, 4 25788 25789 rc = X_pcre2_valid_utf_8(tls, pattern, plength, bp+100) 25790 if rc != 0 { 25791 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = *(*Tsize_t)(unsafe.Pointer(bp + 100 /* erroroffset */)) 25792 return rc 25793 } 25794 } 25795 25796 // If buffptr is not NULL, and what it points to is not NULL, we are being 25797 // provided with a buffer and a length, so set them as the buffer to use. 25798 25799 if buffptr != uintptr(0) && *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { 25800 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25801 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) 25802 } 25803 25804 // Call an individual converter, either just once (if a buffer was provided or 25805 // just the length is needed), or twice (if a memory allocation is required). 25806 25807 for i = 0; i < 2; i++ { 25808 var allocated uintptr 25809 var dummyrun TBOOL = libc.Bool32(buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) == uintptr(0)) 25810 25811 switch pattype { 25812 case DPCRE2_CONVERT_GLOB: 25813 rc = convert_glob(tls, options&libc.CplUint32(DPCRE2_CONVERT_GLOB), pattern, plength, utf, 25814 use_buffer, use_length, bufflenptr, dummyrun, ccontext) 25815 break 25816 25817 case DPCRE2_CONVERT_POSIX_BASIC: 25818 fallthrough 25819 case DPCRE2_CONVERT_POSIX_EXTENDED: 25820 rc = convert_posix(tls, pattype, pattern, plength, utf, use_buffer, use_length, 25821 bufflenptr, dummyrun, ccontext) 25822 break 25823 25824 default: 25825 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t(0) // Error offset 25826 return -44 25827 } 25828 25829 if rc != 0 || buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { // Buffer was provided or allocated 25830 return rc 25831 } 25832 25833 // Allocate memory for the buffer, with hidden space for an allocator at 25834 // the start. The next time round the loop runs the conversion for real. 25835 25836 allocated = X_pcre2_memctl_malloc_8(tls, uint32(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bufflenptr))+Tsize_t(1))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH), ccontext) 25837 if allocated == uintptr(0) { 25838 return -48 25839 } 25840 *(*uintptr)(unsafe.Pointer(buffptr)) = allocated + uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 25841 25842 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25843 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) + Tsize_t(1) 25844 } 25845 25846 // Control should never get here. 25847 25848 return -44 25849 } 25850 25851 // ************************************************ 25852 // 25853 // Free converted pattern * 25854 // 25855 25856 // This frees a converted pattern that was put in newly-allocated memory. 25857 // 25858 // Argument: the converted pattern 25859 // Returns: nothing 25860 25861 func Xpcre2_converted_pattern_free_8(tls *libc.TLS, converted uintptr) { /* pcre2_convert.c:1172:1: */ 25862 if converted != uintptr(0) { 25863 var memctl uintptr = converted - uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 25864 (*struct { 25865 f func(*libc.TLS, uintptr, uintptr) 25866 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 25867 } 25868 } 25869 25870 // End of pcre2_convert.c 25871 25872 // This function is needed only when memmove() is not available. 25873 25874 // End of pcre2_internal.h 25875 25876 // ************************************************ 25877 // 25878 // Code parameters and static tables * 25879 // 25880 25881 // These are offsets that are used to turn the OP_TYPESTAR and friends opcodes 25882 // into others, under special conditions. A gap of 20 between the blocks should be 25883 // enough. The resulting opcodes don't have to be less than 256 because they are 25884 // never stored, so we push them well clear of the normal opcodes. 25885 25886 // This table identifies those opcodes that are followed immediately by a 25887 // character that is to be tested in some way. This makes it possible to 25888 // centralize the loading of these characters. In the case of Type * etc, the 25889 // "character" is the opcode for \D, \d, \S, \s, \W, or \w, which will always be a 25890 // small value. Non-zero values in the table are the offsets from the opcode where 25891 // the character is to be found. ***NOTE*** If the start of this table is 25892 // modified, the three tables that follow must also be modified. 25893 25894 var coptable = [168]Tuint8_t{ 25895 Tuint8_t(0), // End 25896 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \A, \G, \K, \B, \b 25897 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \D, \d, \S, \s, \W, \w 25898 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Any, AllAny, Anybyte 25899 Tuint8_t(0), Tuint8_t(0), // \P, \p 25900 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \R, \H, \h, \V, \v 25901 Tuint8_t(0), // \X 25902 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 25903 Tuint8_t(1), // Char 25904 Tuint8_t(1), // Chari 25905 Tuint8_t(1), // not 25906 Tuint8_t(1), // noti 25907 // Positive single-char repeats 25908 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 25909 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25910 Tuint8_t(1 + DIMM2_SIZE), 25911 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25912 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 25913 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25914 Tuint8_t(1 + DIMM2_SIZE), 25915 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25916 // Negative single-char repeats - only for chars < 256 25917 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 25918 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25919 Tuint8_t(1 + DIMM2_SIZE), 25920 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25921 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *I, *?I, +I, +?I, ?I, ??I 25922 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25923 Tuint8_t(1 + DIMM2_SIZE), 25924 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25925 // Positive type repeats 25926 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 25927 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25928 Tuint8_t(1 + DIMM2_SIZE), 25929 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25930 // Character class & ref repeats 25931 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // *, *?, +, +?, ?, ?? 25932 Tuint8_t(0), Tuint8_t(0), // CRRANGE, CRMINRANGE 25933 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Possessive *+, ++, ?+, CRPOSRANGE 25934 Tuint8_t(0), // CLASS 25935 Tuint8_t(0), // NCLASS 25936 Tuint8_t(0), // XCLASS - variable length 25937 Tuint8_t(0), // REF 25938 Tuint8_t(0), // REFI 25939 Tuint8_t(0), // DNREF 25940 Tuint8_t(0), // DNREFI 25941 Tuint8_t(0), // RECURSE 25942 Tuint8_t(0), // CALLOUT 25943 Tuint8_t(0), // CALLOUT_STR 25944 Tuint8_t(0), // Alt 25945 Tuint8_t(0), // Ket 25946 Tuint8_t(0), // KetRmax 25947 Tuint8_t(0), // KetRmin 25948 Tuint8_t(0), // KetRpos 25949 Tuint8_t(0), // Reverse 25950 Tuint8_t(0), // Assert 25951 Tuint8_t(0), // Assert not 25952 Tuint8_t(0), // Assert behind 25953 Tuint8_t(0), // Assert behind not 25954 Tuint8_t(0), // NA assert 25955 Tuint8_t(0), // NA assert behind 25956 Tuint8_t(0), // ONCE 25957 Tuint8_t(0), // SCRIPT_RUN 25958 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 25959 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 25960 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 25961 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 25962 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 25963 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 25964 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 25965 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 25966 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 25967 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 25968 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 25969 } /* pcre2_dfa_match.c:116:22 */ 25970 25971 // This table identifies those opcodes that inspect a character. It is used to 25972 // remember the fact that a character could have been inspected when the end of 25973 // the subject is reached. ***NOTE*** If the start of this table is modified, the 25974 // two tables that follow must also be modified. 25975 25976 var poptable = [168]Tuint8_t{ 25977 Tuint8_t(0), // End 25978 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), // \A, \G, \K, \B, \b 25979 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \D, \d, \S, \s, \W, \w 25980 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Any, AllAny, Anybyte 25981 Tuint8_t(1), Tuint8_t(1), // \P, \p 25982 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \R, \H, \h, \V, \v 25983 Tuint8_t(1), // \X 25984 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 25985 Tuint8_t(1), // Char 25986 Tuint8_t(1), // Chari 25987 Tuint8_t(1), // not 25988 Tuint8_t(1), // noti 25989 // Positive single-char repeats 25990 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 25991 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto, minupto, exact 25992 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+, ++, ?+, upto+ 25993 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 25994 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto I, minupto I, exact I 25995 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+I, ++I, ?+I, upto+I 25996 // Negative single-char repeats - only for chars < 256 25997 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 25998 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto, minupto, exact 25999 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+, ++, ?+, upto+ 26000 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *I, *?I, +I, +?I, ?I, ??I 26001 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto I, minupto I, exact I 26002 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+I, ++I, ?+I, upto+I 26003 // Positive type repeats 26004 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 26005 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type upto, minupto, exact 26006 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *+, ++, ?+, upto+ 26007 // Character class & ref repeats 26008 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 26009 Tuint8_t(1), Tuint8_t(1), // CRRANGE, CRMINRANGE 26010 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Possessive *+, ++, ?+, CRPOSRANGE 26011 Tuint8_t(1), // CLASS 26012 Tuint8_t(1), // NCLASS 26013 Tuint8_t(1), // XCLASS - variable length 26014 Tuint8_t(0), // REF 26015 Tuint8_t(0), // REFI 26016 Tuint8_t(0), // DNREF 26017 Tuint8_t(0), // DNREFI 26018 Tuint8_t(0), // RECURSE 26019 Tuint8_t(0), // CALLOUT 26020 Tuint8_t(0), // CALLOUT_STR 26021 Tuint8_t(0), // Alt 26022 Tuint8_t(0), // Ket 26023 Tuint8_t(0), // KetRmax 26024 Tuint8_t(0), // KetRmin 26025 Tuint8_t(0), // KetRpos 26026 Tuint8_t(0), // Reverse 26027 Tuint8_t(0), // Assert 26028 Tuint8_t(0), // Assert not 26029 Tuint8_t(0), // Assert behind 26030 Tuint8_t(0), // Assert behind not 26031 Tuint8_t(0), // NA assert 26032 Tuint8_t(0), // NA assert behind 26033 Tuint8_t(0), // ONCE 26034 Tuint8_t(0), // SCRIPT_RUN 26035 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 26036 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 26037 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 26038 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 26039 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 26040 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 26041 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 26042 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 26043 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 26044 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 26045 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 26046 } /* pcre2_dfa_match.c:198:22 */ 26047 26048 // These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W, 26049 // and \w 26050 26051 var toptable1 = [14]Tuint8_t{ 26052 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26053 Tuint8_t(Dctype_digit), Tuint8_t(Dctype_digit), 26054 Tuint8_t(Dctype_space), Tuint8_t(Dctype_space), 26055 Tuint8_t(Dctype_word), Tuint8_t(Dctype_word), 26056 Tuint8_t(0), Tuint8_t(0), // OP_ANY, OP_ALLANY 26057 } /* pcre2_dfa_match.c:273:22 */ 26058 26059 var toptable2 = [14]Tuint8_t{ 26060 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26061 Tuint8_t(Dctype_digit), Tuint8_t(0), 26062 Tuint8_t(Dctype_space), Tuint8_t(0), 26063 Tuint8_t(Dctype_word), Tuint8_t(0), 26064 Tuint8_t(1), Tuint8_t(1), // OP_ANY, OP_ALLANY 26065 } /* pcre2_dfa_match.c:281:22 */ 26066 26067 // Structure for holding data about a particular state, which is in effect the 26068 // current data for an active path through the match tree. It must consist 26069 // entirely of ints because the working vector we are passed, and which we put 26070 // these structures in, is a vector of ints. 26071 26072 type Sstateblock = struct { 26073 Foffset int32 26074 Fcount int32 26075 Fdata int32 26076 } /* pcre2_dfa_match.c:295:9 */ 26077 26078 // Structure for holding data about a particular state, which is in effect the 26079 // current data for an active path through the match tree. It must consist 26080 // entirely of ints because the working vector we are passed, and which we put 26081 // these structures in, is a vector of ints. 26082 26083 type Tstateblock = Sstateblock /* pcre2_dfa_match.c:299:3 */ 26084 26085 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26086 // local working space and output vectors that were created on the stack. This has 26087 // caused issues for some patterns, especially in small-stack environments such as 26088 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26089 // this is too small, heap memory is used, up to the heap_limit. The main 26090 // parameters are all numbers of ints because the workspace is a vector of ints. 26091 // 26092 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26093 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26094 // finding the minimum heap requirement for a match. 26095 26096 // This structure is at the start of each workspace block. 26097 26098 type SRWS_anchor = struct { 26099 Fnext uintptr 26100 Fsize Tuint32_t 26101 Ffree Tuint32_t 26102 } /* pcre2_dfa_match.c:324:9 */ 26103 26104 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26105 // local working space and output vectors that were created on the stack. This has 26106 // caused issues for some patterns, especially in small-stack environments such as 26107 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26108 // this is too small, heap memory is used, up to the heap_limit. The main 26109 // parameters are all numbers of ints because the workspace is a vector of ints. 26110 // 26111 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26112 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26113 // finding the minimum heap requirement for a match. 26114 26115 // This structure is at the start of each workspace block. 26116 26117 type TRWS_anchor = SRWS_anchor /* pcre2_dfa_match.c:328:3 */ 26118 26119 // ************************************************ 26120 // 26121 // Process a callout * 26122 // 26123 26124 // This function is called to perform a callout. 26125 // 26126 // Arguments: 26127 // code current code pointer 26128 // offsets points to current capture offsets 26129 // current_subject start of current subject match 26130 // ptr current position in subject 26131 // mb the match block 26132 // extracode extra code offset when called from condition 26133 // lengthptr where to return the callout length 26134 // 26135 // Returns: the return from the callout 26136 26137 func do_callout(tls *libc.TLS, code TPCRE2_SPTR8, offsets uintptr, current_subject TPCRE2_SPTR8, ptr TPCRE2_SPTR8, mb uintptr, extracode Tsize_t, lengthptr uintptr) int32 { /* pcre2_dfa_match.c:353:1: */ 26138 var cb uintptr = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb 26139 26140 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint32 { 26141 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26142 return Tsize_t(X_pcre2_OP_lengths_8[OP_CALLOUT]) 26143 } 26144 return Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+2*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+2*DLINK_SIZE)+extracode+Tsize_t(1))))))) 26145 }() 26146 26147 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 26148 return 0 26149 } // No callout provided 26150 26151 // Fixed fields in the callout block are set once and for all at the start of 26152 // matching. 26153 26154 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = offsets 26155 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fstart_match = Tsize_t((int32(current_subject) - int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26156 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int32(ptr) - int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26157 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1)+extracode+Tsize_t(1))))))) 26158 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+DLINK_SIZE)+extracode+Tsize_t(1))))))) 26159 26160 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26161 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+2*DLINK_SIZE)+extracode)))) 26162 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(0) 26163 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 26164 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = Tsize_t(0) 26165 } else { 26166 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 26167 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+3*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(Tsize_t(1+3*DLINK_SIZE)+extracode+Tsize_t(1))))))) 26168 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = code + uintptr(Tsize_t(1+4*DLINK_SIZE)+extracode) + uintptr(1) 26169 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - Tsize_t(1+4*DLINK_SIZE) - Tsize_t(2) 26170 } 26171 26172 return (*struct { 26173 f func(*libc.TLS, uintptr, uintptr) int32 26174 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data) 26175 } 26176 26177 // ************************************************ 26178 // 26179 // Expand local workspace memory * 26180 // 26181 26182 // This function is called when internal_dfa_match() is about to be called 26183 // recursively and there is insufficient working space left in the current 26184 // workspace block. If there's an existing next block, use it; otherwise get a new 26185 // block unless the heap limit is reached. 26186 // 26187 // Arguments: 26188 // rwsptr pointer to block pointer (updated) 26189 // ovecsize space needed for an ovector 26190 // mb the match block 26191 // 26192 // Returns: 0 rwsptr has been updated 26193 // !0 an error code 26194 26195 func more_workspace(tls *libc.TLS, rwsptr uintptr, ovecsize uint32, mb uintptr) int32 { /* pcre2_dfa_match.c:413:1: */ 26196 var rws uintptr = *(*uintptr)(unsafe.Pointer(rwsptr)) 26197 var new uintptr 26198 26199 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0) { 26200 new = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 26201 } else { 26202 var newsize Tuint32_t 26203 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize >= 4294967295/uint32(2) { 26204 newsize = 4294967295 / uint32(2) 26205 } else { 26206 newsize = (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize * Tuint32_t(2) 26207 } 26208 var newsizeK Tuint32_t = Tuint32_t(uint32(newsize) / (uint32(1024) / uint32(unsafe.Sizeof(int32(0))))) 26209 26210 if Tsize_t(newsizeK)+(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit { 26211 newsizeK = Tuint32_t((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit - (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used) 26212 } 26213 newsize = Tuint32_t(uint32(newsizeK) * (uint32(1024) / uint32(unsafe.Sizeof(int32(0))))) 26214 26215 if uint32(newsize) < uint32(uint32(DRWS_RSIZE)+ovecsize)+uint32(unsafe.Sizeof(TRWS_anchor{}))/uint32(unsafe.Sizeof(int32(0))) { 26216 return -63 26217 } 26218 new = (*struct { 26219 f func(*libc.TLS, Tsize_t, uintptr) uintptr 26220 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, uint32(newsize)*uint32(unsafe.Sizeof(int32(0))), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 26221 if new == uintptr(0) { 26222 return -48 26223 } 26224 *(*Tsize_t)(unsafe.Pointer(mb + 44)) += Tsize_t(newsizeK) 26225 (*TRWS_anchor)(unsafe.Pointer(new)).Fnext = uintptr(0) 26226 (*TRWS_anchor)(unsafe.Pointer(new)).Fsize = newsize 26227 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = new 26228 } 26229 26230 (*TRWS_anchor)(unsafe.Pointer(new)).Ffree = Tuint32_t(uint32((*TRWS_anchor)(unsafe.Pointer(new)).Fsize) - uint32(unsafe.Sizeof(TRWS_anchor{}))/uint32(unsafe.Sizeof(int32(0)))) 26231 *(*uintptr)(unsafe.Pointer(rwsptr)) = new 26232 return 0 26233 } 26234 26235 // ************************************************ 26236 // 26237 // Match a Regular Expression - DFA engine * 26238 // 26239 26240 // This internal function applies a compiled pattern to a subject string, 26241 // starting at a given point, using a DFA engine. This function is called from the 26242 // external one, possibly multiple times if the pattern is not anchored. The 26243 // function calls itself recursively for some kinds of subpattern. 26244 // 26245 // Arguments: 26246 // mb the match_data block with fixed information 26247 // this_start_code the opening bracket of this subexpression's code 26248 // current_subject where we currently are in the subject string 26249 // start_offset start offset in the subject string 26250 // offsets vector to contain the matching string offsets 26251 // offsetcount size of same 26252 // workspace vector of workspace 26253 // wscount size of same 26254 // rlevel function call recursion level 26255 // 26256 // Returns: > 0 => number of match offset pairs placed in offsets 26257 // = 0 => offsets overflowed; longest matches are present 26258 // -1 => failed to match 26259 // < -1 => some kind of unexpected problem 26260 // 26261 // The following macros are used for adding states to the two state vectors (one 26262 // for the current character, one for the following character). 26263 26264 // And now, here is the code 26265 26266 func internal_dfa_match(tls *libc.TLS, mb uintptr, this_start_code TPCRE2_SPTR8, current_subject TPCRE2_SPTR8, start_offset Tsize_t, offsets uintptr, offsetcount Tuint32_t, workspace uintptr, wscount int32, rlevel Tuint32_t, RWS uintptr) int32 { /* pcre2_dfa_match.c:522:1: */ 26267 bp := tls.Alloc(56) 26268 defer tls.Free(56) 26269 26270 var active_states uintptr 26271 var new_states uintptr 26272 var temp_states uintptr 26273 var next_active_state uintptr 26274 var next_new_state uintptr 26275 var ctypes uintptr 26276 var lcc uintptr 26277 var fcc uintptr 26278 var ptr TPCRE2_SPTR8 26279 var end_code TPCRE2_SPTR8 26280 // var new_recursive Tdfa_recursion_info at bp+32, 12 26281 26282 var active_count int32 26283 var new_count int32 26284 var match_count int32 26285 26286 // Some fields in the mb block are frequently referenced, so we load them into 26287 // independent variables in the hope that this will perform better. 26288 26289 var start_subject TPCRE2_SPTR8 26290 var end_subject TPCRE2_SPTR8 26291 var start_code TPCRE2_SPTR8 26292 var utf TBOOL 26293 var utf_or_ucp TBOOL 26294 var reset_could_continue TBOOL 26295 var back Tsize_t 26296 var current_offset Tsize_t 26297 var bstate int32 26298 var revlen Tuint32_t 26299 var back1 Tsize_t 26300 var max_back Tsize_t 26301 var gone_back Tsize_t 26302 var length int32 26303 var cat Tuint32_t 26304 var temp TPCRE2_SPTR8 26305 var temp1 TPCRE2_SPTR8 26306 var cat1 Tuint32_t 26307 var left_word int32 26308 var right_word int32 26309 var OK TBOOL 26310 var cp uintptr 26311 var prop uintptr 26312 var OK1 TBOOL 26313 var cp1 uintptr 26314 var prop1 uintptr 26315 // var ncount int32 at bp, 4 26316 26317 var ncount1 int32 26318 var OK2 TBOOL 26319 var OK3 TBOOL 26320 var OK4 TBOOL 26321 var cp2 uintptr 26322 var prop2 uintptr 26323 // var ncount2 int32 at bp+4, 4 26324 26325 var ncount3 int32 26326 var OK5 TBOOL 26327 var OK6 TBOOL 26328 var OK7 TBOOL 26329 var cp3 uintptr 26330 var prop3 uintptr 26331 var nptr TPCRE2_SPTR8 26332 // var ncount4 int32 at bp+8, 4 26333 26334 var ncount5 int32 26335 var OK8 TBOOL 26336 var OK9 TBOOL 26337 var othercase uint32 26338 // var ncount6 int32 at bp+12, 4 26339 26340 var nptr1 TPCRE2_SPTR8 26341 var otherd Tuint32_t 26342 var otherd1 Tuint32_t 26343 var otherd2 Tuint32_t 26344 var otherd3 Tuint32_t 26345 var otherd4 Tuint32_t 26346 var otherd5 Tuint32_t 26347 var max int32 26348 var isinclass TBOOL 26349 var next_state_offset int32 26350 var ecode TPCRE2_SPTR8 26351 var rc int32 26352 var local_workspace uintptr 26353 var local_offsets uintptr 26354 var endasscode TPCRE2_SPTR8 26355 // var rws uintptr at bp+16, 4 26356 26357 // var callout_length Tsize_t at bp+20, 4 26358 26359 var value uint32 26360 var rc1 int32 26361 var local_workspace1 uintptr 26362 var local_offsets1 uintptr 26363 var asscode TPCRE2_SPTR8 26364 var endasscode1 TPCRE2_SPTR8 26365 // var rws1 uintptr at bp+24, 4 26366 26367 var codelink int32 26368 var condcode TPCRE2_UCHAR8 26369 var p TPCRE2_SPTR8 26370 var pp TPCRE2_SPTR8 26371 var charcount Tsize_t 26372 var rc2 int32 26373 var local_workspace2 uintptr 26374 var local_offsets2 uintptr 26375 // var rws2 uintptr at bp+28, 4 26376 26377 var ri uintptr 26378 var callpat TPCRE2_SPTR8 26379 var recno Tuint32_t 26380 var p1 TPCRE2_SPTR8 26381 var pp1 TPCRE2_SPTR8 26382 var end_subpattern TPCRE2_SPTR8 26383 var next_state_offset1 int32 26384 var rc3 int32 26385 var local_workspace3 uintptr 26386 var local_offsets3 uintptr 26387 var charcount1 Tsize_t 26388 var matched_count Tsize_t 26389 var local_ptr TPCRE2_SPTR8 26390 // var rws3 uintptr at bp+44, 4 26391 26392 var allow_zero TBOOL 26393 var p2 TPCRE2_SPTR8 26394 var pp2 TPCRE2_SPTR8 26395 var end_subpattern1 TPCRE2_SPTR8 26396 var charcount2 Tsize_t 26397 var next_state_offset2 int32 26398 var repeat_state_offset int32 26399 var rc4 int32 26400 var local_workspace4 uintptr 26401 var local_offsets4 uintptr 26402 // var rws4 uintptr at bp+48, 4 26403 26404 // var callout_length1 Tsize_t at bp+52, 4 26405 26406 var current_state uintptr 26407 var caseless TBOOL 26408 var code TPCRE2_SPTR8 26409 var codevalue Tuint32_t 26410 var state_offset int32 26411 var rrc int32 26412 var count int32 26413 var i int32 26414 var j int32 26415 var clen int32 26416 var dlen int32 26417 var c Tuint32_t 26418 var d Tuint32_t 26419 var forced_fail int32 26420 var partial_newline TBOOL 26421 var could_continue TBOOL 26422 start_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject 26423 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 26424 start_code = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code 26425 utf = libc.Bool32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 26426 utf_or_ucp = libc.Bool32(utf != 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 26427 reset_could_continue = DFALSE 26428 26429 if !(libc.PostIncUint32(&(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 26430 goto __1 26431 } 26432 return -47 26433 __1: 26434 ; 26435 if !(libc.PostIncUint32(&rlevel, 1) > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 26436 goto __2 26437 } 26438 return -53 26439 __2: 26440 ; 26441 offsetcount = offsetcount & libc.Uint32(libc.Uint32FromInt32(-2)) // Round down 26442 26443 wscount = wscount - 2 26444 wscount = (wscount - wscount%(int32(uint32(unsafe.Sizeof(Tstateblock{}))/uint32(unsafe.Sizeof(int32(0))))*2)) / (2 * int32(uint32(unsafe.Sizeof(Tstateblock{}))/uint32(unsafe.Sizeof(int32(0))))) 26445 26446 ctypes = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 26447 lcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dlcc_offset) 26448 fcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) 26449 26450 match_count = -1 // A negative number 26451 26452 active_states = workspace + uintptr(2)*4 26453 next_new_state = libc.AssignUintptr(&new_states, active_states+uintptr(wscount)*12) 26454 new_count = 0 26455 26456 // The first thing in any (sub) pattern is a bracket of some sort. Push all 26457 // the alternative states onto the list, and find out where the end is. This 26458 // makes is possible to use this function recursively, when we want to stop at a 26459 // matching internal ket rather than at the end. 26460 // 26461 // If we are dealing with a backward assertion we have to find out the maximum 26462 // amount to move back, and set up each alternative appropriately. 26463 26464 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK_NOT) { 26465 goto __3 26466 } 26467 26468 max_back = Tsize_t(0) 26469 26470 end_code = this_start_code 26471 __5: 26472 26473 back = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26474 if !(back > max_back) { 26475 goto __8 26476 } 26477 max_back = back 26478 __8: 26479 ; 26480 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26481 goto __6 26482 __6: 26483 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26484 goto __5 26485 } 26486 goto __7 26487 __7: 26488 ; 26489 26490 // If we can't go back the amount required for the longest lookbehind 26491 // pattern, go back as far as we can; some alternatives may still be viable. 26492 26493 // In character mode we have to step back character by character 26494 26495 if !(utf != 0) { 26496 goto __9 26497 } 26498 26499 gone_back = Tsize_t(0) 26500 __11: 26501 if !(gone_back < max_back) { 26502 goto __13 26503 } 26504 26505 if !(current_subject <= start_subject) { 26506 goto __14 26507 } 26508 goto __13 26509 __14: 26510 ; 26511 current_subject-- 26512 __15: 26513 if !(current_subject > start_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(current_subject)))&0xc0 == 0x80) { 26514 goto __16 26515 } 26516 current_subject-- 26517 goto __15 26518 __16: 26519 ; 26520 goto __12 26521 __12: 26522 gone_back++ 26523 goto __11 26524 goto __13 26525 __13: 26526 ; 26527 goto __10 26528 __9: 26529 26530 /* In byte-mode we can do this quickly. */ 26531 26532 current_offset = Tsize_t((int32(current_subject) - int32(start_subject)) / 1) 26533 if current_offset < max_back { 26534 gone_back = current_offset 26535 } else { 26536 gone_back = max_back 26537 } 26538 current_subject -= TPCRE2_SPTR8(gone_back) 26539 __10: 26540 ; 26541 26542 // Save the earliest consulted character 26543 26544 if !(current_subject < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 26545 goto __17 26546 } 26547 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = current_subject 26548 __17: 26549 ; 26550 26551 // Now we can process the individual branches. There will be an OP_REVERSE at 26552 // the start of each branch, except when the length of the branch is zero. 26553 26554 end_code = this_start_code 26555 __18: 26556 26557 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 3))) == OP_REVERSE { 26558 revlen = uint32(1 + DLINK_SIZE) 26559 } else { 26560 revlen = uint32(0) 26561 } 26562 if revlen == Tuint32_t(0) { 26563 back1 = uint32(0) 26564 } else { 26565 back1 = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26566 } 26567 if !(back1 <= gone_back) { 26568 goto __21 26569 } 26570 26571 bstate = int32(uint32((int32(end_code)-int32(start_code))/1+1+DLINK_SIZE) + uint32(revlen)) 26572 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26573 goto __22 26574 } 26575 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -bstate 26576 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26577 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(gone_back - back1) 26578 next_new_state += 12 26579 goto __23 26580 __22: 26581 return -43 26582 __23: 26583 ; 26584 __21: 26585 ; 26586 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26587 goto __19 26588 __19: 26589 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26590 goto __18 26591 } 26592 goto __20 26593 __20: 26594 ; 26595 goto __4 26596 __3: 26597 26598 end_code = this_start_code 26599 26600 // Restarting 26601 26602 if !(rlevel == Tuint32_t(1) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 26603 goto __24 26604 } 26605 26606 __26: 26607 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26608 goto __27 26609 __27: 26610 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26611 goto __26 26612 } 26613 goto __28 26614 __28: 26615 ; 26616 new_count = *(*int32)(unsafe.Pointer(workspace + 1*4)) 26617 if !!(*(*int32)(unsafe.Pointer(workspace)) != 0) { 26618 goto __29 26619 } 26620 libc.Xmemcpy(tls, new_states, active_states, Tsize_t(new_count)*Tsize_t(unsafe.Sizeof(Tstateblock{}))) 26621 __29: 26622 ; 26623 goto __25 26624 __24: 26625 26626 length = 1 + DLINK_SIZE + func() int32 { 26627 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_SCBRAPOS { 26628 return DIMM2_SIZE 26629 } 26630 return 0 26631 }() 26632 __30: 26633 26634 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26635 goto __33 26636 } 26637 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = int32((int32(end_code)-int32(start_code))/1 + int32(length)) 26638 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26639 next_new_state += 12 26640 goto __34 26641 __33: 26642 return -43 26643 __34: 26644 ; 26645 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26646 length = 1 + DLINK_SIZE 26647 goto __31 26648 __31: 26649 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26650 goto __30 26651 } 26652 goto __32 26653 __32: 26654 ; 26655 __25: 26656 ; 26657 __4: 26658 ; 26659 26660 *(*int32)(unsafe.Pointer(workspace)) = 0 // Bit indicating which vector is current 26661 26662 // Loop for scanning the subject 26663 26664 ptr = current_subject 26665 __35: 26666 forced_fail = 0 26667 partial_newline = DFALSE 26668 could_continue = reset_could_continue 26669 reset_could_continue = DFALSE 26670 26671 if !(ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 26672 goto __38 26673 } 26674 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = ptr 26675 __38: 26676 ; 26677 26678 // Make the new state list into the active state list and empty the 26679 // new state list. 26680 26681 temp_states = active_states 26682 active_states = new_states 26683 new_states = temp_states 26684 active_count = new_count 26685 new_count = 0 26686 26687 *(*int32)(unsafe.Pointer(workspace)) ^= 1 // Remember for the restarting feature 26688 *(*int32)(unsafe.Pointer(workspace + 1*4)) = active_count 26689 26690 // Set the pointers for adding new states 26691 26692 next_active_state = active_states + uintptr(active_count)*12 26693 next_new_state = new_states 26694 26695 // Load the current character from the subject outside the loop, as many 26696 // different states may want to look at it, and we assume that at least one 26697 // will. 26698 26699 if !(ptr < end_subject) { 26700 goto __39 26701 } 26702 26703 clen = 1 // Number of data items in the character 26704 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 26705 if !(utf != 0 && c >= 0xc0) { 26706 goto __41 26707 } 26708 if !(c&0x20 == Tuint32_t(0)) { 26709 goto __42 26710 } 26711 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 26712 clen++ 26713 goto __43 26714 __42: 26715 if !(c&0x10 == Tuint32_t(0)) { 26716 goto __44 26717 } 26718 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 26719 clen = clen + 2 26720 goto __45 26721 __44: 26722 if !(c&0x08 == Tuint32_t(0)) { 26723 goto __46 26724 } 26725 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 26726 clen = clen + 3 26727 goto __47 26728 __46: 26729 if !(c&0x04 == Tuint32_t(0)) { 26730 goto __48 26731 } 26732 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 26733 clen = clen + 4 26734 goto __49 26735 __48: 26736 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 26737 clen = clen + 5 26738 __49: 26739 ; 26740 __47: 26741 ; 26742 __45: 26743 ; 26744 __43: 26745 ; 26746 __41: 26747 ; 26748 26749 goto __40 26750 __39: 26751 26752 clen = 0 // This indicates the end of the subject 26753 c = DNOTACHAR // This value should never actually be used 26754 __40: 26755 ; 26756 26757 // Scan up the active states and act on each one. The result of an action 26758 // may be to add more states to the currently active list (e.g. on hitting a 26759 // parenthesis) or it may be to put states on the new list, for considering 26760 // when we move the character pointer on. 26761 26762 i = 0 26763 __50: 26764 if !(i < active_count) { 26765 goto __52 26766 } 26767 current_state = active_states + uintptr(i)*12 26768 caseless = DFALSE 26769 state_offset = (*Tstateblock)(unsafe.Pointer(current_state)).Foffset 26770 26771 // A negative offset is a special case meaning "hold off going to this 26772 // (negated) state until the number of characters in the data field have 26773 // been skipped". If the could_continue flag was passed over from a previous 26774 // state, arrange for it to passed on. 26775 26776 if !(state_offset < 0) { 26777 goto __53 26778 } 26779 26780 if !((*Tstateblock)(unsafe.Pointer(current_state)).Fdata > 0) { 26781 goto __54 26782 } 26783 26784 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26785 goto __56 26786 } 26787 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 26788 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount 26789 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = (*Tstateblock)(unsafe.Pointer(current_state)).Fdata - 1 26790 next_new_state += 12 26791 goto __57 26792 __56: 26793 return -43 26794 __57: 26795 ; 26796 if !(could_continue != 0) { 26797 goto __58 26798 } 26799 reset_could_continue = DTRUE 26800 __58: 26801 ; 26802 goto __51 26803 goto __55 26804 __54: 26805 26806 (*Tstateblock)(unsafe.Pointer(current_state)).Foffset = libc.AssignInt32(&state_offset, -state_offset) 26807 __55: 26808 ; 26809 __53: 26810 ; 26811 26812 // Check for a duplicate state with the same count, and skip if found. 26813 // See the note at the head of this module about the possibility of improving 26814 // performance here. 26815 26816 j = 0 26817 __59: 26818 if !(j < i) { 26819 goto __61 26820 } 26821 26822 if !((*Tstateblock)(unsafe.Pointer(active_states+uintptr(j)*12)).Foffset == state_offset && (*Tstateblock)(unsafe.Pointer(active_states+uintptr(j)*12)).Fcount == (*Tstateblock)(unsafe.Pointer(current_state)).Fcount) { 26823 goto __62 26824 } 26825 goto NEXT_ACTIVE_STATE 26826 __62: 26827 ; 26828 goto __60 26829 __60: 26830 j++ 26831 goto __59 26832 goto __61 26833 __61: 26834 ; 26835 26836 // The state offset is the offset to the opcode 26837 26838 code = start_code + uintptr(state_offset) 26839 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 26840 26841 // If this opcode inspects a character, but we are at the end of the 26842 // subject, remember the fact for use when testing for a partial match. 26843 26844 if !(clen == 0 && int32(poptable[codevalue]) != 0) { 26845 goto __63 26846 } 26847 could_continue = DTRUE 26848 __63: 26849 ; 26850 26851 // If this opcode is followed by an inline character, load it. It is 26852 // tempting to test for the presence of a subject character here, but that 26853 // is wrong, because sometimes zero repetitions of the subject are 26854 // permitted. 26855 // 26856 // We also use this mechanism for opcodes such as OP_TYPEPLUS that take an 26857 // argument that is not a data character - but is always one byte long because 26858 // the values are small. We have to take special action to deal with \P, \p, 26859 // \H, \h, \V, \v and \X in this case. To keep the other cases fast, convert 26860 // these ones to new opcodes. 26861 26862 if !(int32(coptable[codevalue]) > 0) { 26863 goto __64 26864 } 26865 26866 dlen = 1 26867 if !(utf != 0) { 26868 goto __66 26869 } 26870 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26871 if !(d >= 0xc0) { 26872 goto __68 26873 } 26874 if !(d&0x20 == Tuint32_t(0)) { 26875 goto __69 26876 } 26877 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f 26878 dlen++ 26879 goto __70 26880 __69: 26881 if !(d&0x10 == Tuint32_t(0)) { 26882 goto __71 26883 } 26884 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f 26885 dlen = dlen + 2 26886 goto __72 26887 __71: 26888 if !(d&0x08 == Tuint32_t(0)) { 26889 goto __73 26890 } 26891 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f 26892 dlen = dlen + 3 26893 goto __74 26894 __73: 26895 if !(d&0x04 == Tuint32_t(0)) { 26896 goto __75 26897 } 26898 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 4)))&0x3f 26899 dlen = dlen + 4 26900 goto __76 26901 __75: 26902 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 5)))&0x3f 26903 dlen = dlen + 5 26904 __76: 26905 ; 26906 __74: 26907 ; 26908 __72: 26909 ; 26910 __70: 26911 ; 26912 __68: 26913 ; 26914 26915 goto __67 26916 __66: 26917 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26918 __67: 26919 ; 26920 if !(codevalue >= OP_TYPESTAR) { 26921 goto __77 26922 } 26923 26924 switch d { 26925 case OP_ANYBYTE: 26926 goto __79 26927 case OP_NOTPROP: 26928 goto __80 26929 case OP_PROP: 26930 goto __81 26931 case OP_ANYNL: 26932 goto __82 26933 case OP_EXTUNI: 26934 goto __83 26935 case OP_NOT_HSPACE: 26936 goto __84 26937 case OP_HSPACE: 26938 goto __85 26939 case OP_NOT_VSPACE: 26940 goto __86 26941 case OP_VSPACE: 26942 goto __87 26943 default: 26944 goto __88 26945 } 26946 goto __78 26947 26948 __79: 26949 return -42 26950 __80: 26951 __81: 26952 codevalue = codevalue + Tuint32_t(DOP_PROP_EXTRA) 26953 goto __78 26954 __82: 26955 codevalue = codevalue + Tuint32_t(DOP_ANYNL_EXTRA) 26956 goto __78 26957 __83: 26958 codevalue = codevalue + Tuint32_t(DOP_EXTUNI_EXTRA) 26959 goto __78 26960 __84: 26961 __85: 26962 codevalue = codevalue + Tuint32_t(DOP_HSPACE_EXTRA) 26963 goto __78 26964 __86: 26965 __87: 26966 codevalue = codevalue + Tuint32_t(DOP_VSPACE_EXTRA) 26967 goto __78 26968 __88: 26969 goto __78 26970 __78: 26971 ; 26972 __77: 26973 ; 26974 goto __65 26975 __64: 26976 26977 dlen = 0 // Not strictly necessary, but compilers moan 26978 d = DNOTACHAR // if these variables are not set. 26979 __65: 26980 ; 26981 26982 // Now process the individual opcodes 26983 26984 switch codevalue { 26985 // ========================================================================== 26986 // These cases are never obeyed. This is a fudge that causes a compile- 26987 // time error if the vectors coptable or poptable, which are indexed by 26988 // opcode, are not the correct length. It seems to be the only way to do 26989 // such a check at compile time, as the sizeof() operator does not work 26990 // in the C preprocessor. 26991 26992 case OP_TABLE_LENGTH: 26993 goto __90 26994 case Tuint32_t(OP_TABLE_LENGTH + libc.Bool32(uint32(unsafe.Sizeof(coptable)) == OP_TABLE_LENGTH && uint32(unsafe.Sizeof(poptable)) == OP_TABLE_LENGTH)): 26995 goto __91 26996 26997 // ========================================================================== 26998 // Reached a closing bracket. If not at the end of the pattern, carry 26999 // on with the next opcode. For repeating opcodes, also add the repeat 27000 // state. Note that KETRPOS will always be encountered at the end of the 27001 // subpattern, because the possessive subpattern repeats are always handled 27002 // using recursive calls. Thus, it never adds any new states. 27003 // 27004 // At the end of the (sub)pattern, unless we have an empty string and 27005 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27006 // start of the subject, save the match data, shifting up all previous 27007 // matches so we always have the longest first. 27008 27009 case OP_KET: 27010 goto __92 27011 case OP_KETRMIN: 27012 goto __93 27013 case OP_KETRMAX: 27014 goto __94 27015 case OP_KETRPOS: 27016 goto __95 27017 27018 // ========================================================================== 27019 // These opcodes add to the current list of states without looking 27020 // at the current character. 27021 27022 //----------------------------------------------------------------- 27023 case OP_ALT: 27024 goto __96 27025 27026 //----------------------------------------------------------------- 27027 case OP_BRA: 27028 goto __97 27029 case OP_SBRA: 27030 goto __98 27031 27032 //----------------------------------------------------------------- 27033 case OP_CBRA: 27034 goto __99 27035 case OP_SCBRA: 27036 goto __100 27037 27038 //----------------------------------------------------------------- 27039 case OP_BRAZERO: 27040 goto __101 27041 case OP_BRAMINZERO: 27042 goto __102 27043 27044 //----------------------------------------------------------------- 27045 case OP_SKIPZERO: 27046 goto __103 27047 27048 //----------------------------------------------------------------- 27049 case OP_CIRC: 27050 goto __104 27051 27052 //----------------------------------------------------------------- 27053 case OP_CIRCM: 27054 goto __105 27055 27056 //----------------------------------------------------------------- 27057 case OP_EOD: 27058 goto __106 27059 27060 //----------------------------------------------------------------- 27061 case OP_SOD: 27062 goto __107 27063 27064 //----------------------------------------------------------------- 27065 case OP_SOM: 27066 goto __108 27067 27068 // ========================================================================== 27069 // These opcodes inspect the next subject character, and sometimes 27070 // the previous one as well, but do not have an argument. The variable 27071 // clen contains the length of the current character and is zero if we are 27072 // at the end of the subject. 27073 27074 //----------------------------------------------------------------- 27075 case OP_ANY: 27076 goto __109 27077 27078 //----------------------------------------------------------------- 27079 case OP_ALLANY: 27080 goto __110 27081 27082 //----------------------------------------------------------------- 27083 case OP_EODN: 27084 goto __111 27085 27086 //----------------------------------------------------------------- 27087 case OP_DOLL: 27088 goto __112 27089 27090 //----------------------------------------------------------------- 27091 case OP_DOLLM: 27092 goto __113 27093 27094 //----------------------------------------------------------------- 27095 27096 case OP_DIGIT: 27097 goto __114 27098 case OP_WHITESPACE: 27099 goto __115 27100 case OP_WORDCHAR: 27101 goto __116 27102 27103 //----------------------------------------------------------------- 27104 case OP_NOT_DIGIT: 27105 goto __117 27106 case OP_NOT_WHITESPACE: 27107 goto __118 27108 case OP_NOT_WORDCHAR: 27109 goto __119 27110 27111 //----------------------------------------------------------------- 27112 case OP_WORD_BOUNDARY: 27113 goto __120 27114 case OP_NOT_WORD_BOUNDARY: 27115 goto __121 27116 27117 //----------------------------------------------------------------- 27118 // Check the next character by Unicode property. We will get here only 27119 // if the support is in the binary; otherwise a compile-time error occurs. 27120 // 27121 27122 case OP_PROP: 27123 goto __122 27124 case OP_NOTPROP: 27125 goto __123 27126 27127 // ========================================================================== 27128 // These opcodes likewise inspect the subject character, but have an 27129 // argument that is not a data character. It is one of these opcodes: 27130 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 27131 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 27132 27133 case OP_TYPEPLUS: 27134 goto __124 27135 case OP_TYPEMINPLUS: 27136 goto __125 27137 case OP_TYPEPOSPLUS: 27138 goto __126 27139 27140 //----------------------------------------------------------------- 27141 case OP_TYPEQUERY: 27142 goto __127 27143 case OP_TYPEMINQUERY: 27144 goto __128 27145 case OP_TYPEPOSQUERY: 27146 goto __129 27147 27148 //----------------------------------------------------------------- 27149 case OP_TYPESTAR: 27150 goto __130 27151 case OP_TYPEMINSTAR: 27152 goto __131 27153 case OP_TYPEPOSSTAR: 27154 goto __132 27155 27156 //----------------------------------------------------------------- 27157 case OP_TYPEEXACT: 27158 goto __133 27159 27160 //----------------------------------------------------------------- 27161 case OP_TYPEUPTO: 27162 goto __134 27163 case OP_TYPEMINUPTO: 27164 goto __135 27165 case OP_TYPEPOSUPTO: 27166 goto __136 27167 27168 // ========================================================================== 27169 // These are virtual opcodes that are used when something like 27170 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 27171 // argument. It keeps the code above fast for the other cases. The argument 27172 // is in the d variable. 27173 27174 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPLUS): 27175 goto __137 27176 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINPLUS): 27177 goto __138 27178 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSPLUS): 27179 goto __139 27180 27181 //----------------------------------------------------------------- 27182 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPLUS): 27183 goto __140 27184 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINPLUS): 27185 goto __141 27186 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSPLUS): 27187 goto __142 27188 27189 //----------------------------------------------------------------- 27190 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPLUS): 27191 goto __143 27192 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINPLUS): 27193 goto __144 27194 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSPLUS): 27195 goto __145 27196 27197 //----------------------------------------------------------------- 27198 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPLUS): 27199 goto __146 27200 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINPLUS): 27201 goto __147 27202 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSPLUS): 27203 goto __148 27204 27205 //----------------------------------------------------------------- 27206 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPLUS): 27207 goto __149 27208 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINPLUS): 27209 goto __150 27210 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSPLUS): 27211 goto __151 27212 27213 //----------------------------------------------------------------- 27214 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEQUERY): 27215 goto __152 27216 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINQUERY): 27217 goto __153 27218 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSQUERY): 27219 goto __154 27220 27221 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPESTAR): 27222 goto __155 27223 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINSTAR): 27224 goto __156 27225 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSSTAR): 27226 goto __157 27227 27228 //----------------------------------------------------------------- 27229 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEQUERY): 27230 goto __158 27231 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINQUERY): 27232 goto __159 27233 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSQUERY): 27234 goto __160 27235 27236 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPESTAR): 27237 goto __161 27238 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINSTAR): 27239 goto __162 27240 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSSTAR): 27241 goto __163 27242 27243 //----------------------------------------------------------------- 27244 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEQUERY): 27245 goto __164 27246 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINQUERY): 27247 goto __165 27248 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSQUERY): 27249 goto __166 27250 27251 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPESTAR): 27252 goto __167 27253 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINSTAR): 27254 goto __168 27255 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSSTAR): 27256 goto __169 27257 27258 //----------------------------------------------------------------- 27259 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEQUERY): 27260 goto __170 27261 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINQUERY): 27262 goto __171 27263 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSQUERY): 27264 goto __172 27265 27266 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPESTAR): 27267 goto __173 27268 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINSTAR): 27269 goto __174 27270 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSSTAR): 27271 goto __175 27272 27273 //----------------------------------------------------------------- 27274 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEQUERY): 27275 goto __176 27276 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINQUERY): 27277 goto __177 27278 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSQUERY): 27279 goto __178 27280 27281 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPESTAR): 27282 goto __179 27283 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINSTAR): 27284 goto __180 27285 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSSTAR): 27286 goto __181 27287 27288 //----------------------------------------------------------------- 27289 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEEXACT): 27290 goto __182 27291 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEUPTO): 27292 goto __183 27293 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINUPTO): 27294 goto __184 27295 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSUPTO): 27296 goto __185 27297 27298 //----------------------------------------------------------------- 27299 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEEXACT): 27300 goto __186 27301 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEUPTO): 27302 goto __187 27303 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINUPTO): 27304 goto __188 27305 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSUPTO): 27306 goto __189 27307 27308 //----------------------------------------------------------------- 27309 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEEXACT): 27310 goto __190 27311 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEUPTO): 27312 goto __191 27313 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINUPTO): 27314 goto __192 27315 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSUPTO): 27316 goto __193 27317 27318 //----------------------------------------------------------------- 27319 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEEXACT): 27320 goto __194 27321 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEUPTO): 27322 goto __195 27323 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINUPTO): 27324 goto __196 27325 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSUPTO): 27326 goto __197 27327 27328 //----------------------------------------------------------------- 27329 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEEXACT): 27330 goto __198 27331 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEUPTO): 27332 goto __199 27333 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINUPTO): 27334 goto __200 27335 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSUPTO): 27336 goto __201 27337 27338 // ========================================================================== 27339 // These opcodes are followed by a character that is usually compared 27340 // to the current subject character; it is loaded into d. We still get 27341 // here even if there is no subject character, because in some cases zero 27342 // repetitions are permitted. 27343 27344 //----------------------------------------------------------------- 27345 case OP_CHAR: 27346 goto __202 27347 27348 //----------------------------------------------------------------- 27349 case OP_CHARI: 27350 goto __203 27351 27352 //----------------------------------------------------------------- 27353 // This is a tricky one because it can match more than one character. 27354 // Find out how many characters to skip, and then set up a negative state 27355 // to wait for them to pass before continuing. 27356 27357 case OP_EXTUNI: 27358 goto __204 27359 27360 //----------------------------------------------------------------- 27361 // This is a tricky like EXTUNI because it too can match more than one 27362 // character (when CR is followed by LF). In this case, set up a negative 27363 // state to wait for one character to pass before continuing. 27364 27365 case OP_ANYNL: 27366 goto __205 27367 27368 //----------------------------------------------------------------- 27369 case OP_NOT_VSPACE: 27370 goto __206 27371 27372 //----------------------------------------------------------------- 27373 case OP_VSPACE: 27374 goto __207 27375 27376 //----------------------------------------------------------------- 27377 case OP_NOT_HSPACE: 27378 goto __208 27379 27380 //----------------------------------------------------------------- 27381 case OP_HSPACE: 27382 goto __209 27383 27384 //----------------------------------------------------------------- 27385 // Match a negated single character casefully. 27386 27387 case OP_NOT: 27388 goto __210 27389 27390 //----------------------------------------------------------------- 27391 // Match a negated single character caselessly. 27392 27393 case OP_NOTI: 27394 goto __211 27395 27396 //----------------------------------------------------------------- 27397 case OP_PLUSI: 27398 goto __212 27399 case OP_MINPLUSI: 27400 goto __213 27401 case OP_POSPLUSI: 27402 goto __214 27403 case OP_NOTPLUSI: 27404 goto __215 27405 case OP_NOTMINPLUSI: 27406 goto __216 27407 case OP_NOTPOSPLUSI: 27408 goto __217 27409 27410 // Fall through 27411 case OP_PLUS: 27412 goto __218 27413 case OP_MINPLUS: 27414 goto __219 27415 case OP_POSPLUS: 27416 goto __220 27417 case OP_NOTPLUS: 27418 goto __221 27419 case OP_NOTMINPLUS: 27420 goto __222 27421 case OP_NOTPOSPLUS: 27422 goto __223 27423 27424 //----------------------------------------------------------------- 27425 case OP_QUERYI: 27426 goto __224 27427 case OP_MINQUERYI: 27428 goto __225 27429 case OP_POSQUERYI: 27430 goto __226 27431 case OP_NOTQUERYI: 27432 goto __227 27433 case OP_NOTMINQUERYI: 27434 goto __228 27435 case OP_NOTPOSQUERYI: 27436 goto __229 27437 // Fall through 27438 case OP_QUERY: 27439 goto __230 27440 case OP_MINQUERY: 27441 goto __231 27442 case OP_POSQUERY: 27443 goto __232 27444 case OP_NOTQUERY: 27445 goto __233 27446 case OP_NOTMINQUERY: 27447 goto __234 27448 case OP_NOTPOSQUERY: 27449 goto __235 27450 27451 //----------------------------------------------------------------- 27452 case OP_STARI: 27453 goto __236 27454 case OP_MINSTARI: 27455 goto __237 27456 case OP_POSSTARI: 27457 goto __238 27458 case OP_NOTSTARI: 27459 goto __239 27460 case OP_NOTMINSTARI: 27461 goto __240 27462 case OP_NOTPOSSTARI: 27463 goto __241 27464 // Fall through 27465 case OP_STAR: 27466 goto __242 27467 case OP_MINSTAR: 27468 goto __243 27469 case OP_POSSTAR: 27470 goto __244 27471 case OP_NOTSTAR: 27472 goto __245 27473 case OP_NOTMINSTAR: 27474 goto __246 27475 case OP_NOTPOSSTAR: 27476 goto __247 27477 27478 //----------------------------------------------------------------- 27479 case OP_EXACTI: 27480 goto __248 27481 case OP_NOTEXACTI: 27482 goto __249 27483 // Fall through 27484 case OP_EXACT: 27485 goto __250 27486 case OP_NOTEXACT: 27487 goto __251 27488 27489 //----------------------------------------------------------------- 27490 case OP_UPTOI: 27491 goto __252 27492 case OP_MINUPTOI: 27493 goto __253 27494 case OP_POSUPTOI: 27495 goto __254 27496 case OP_NOTUPTOI: 27497 goto __255 27498 case OP_NOTMINUPTOI: 27499 goto __256 27500 case OP_NOTPOSUPTOI: 27501 goto __257 27502 // Fall through 27503 case OP_UPTO: 27504 goto __258 27505 case OP_MINUPTO: 27506 goto __259 27507 case OP_POSUPTO: 27508 goto __260 27509 case OP_NOTUPTO: 27510 goto __261 27511 case OP_NOTMINUPTO: 27512 goto __262 27513 case OP_NOTPOSUPTO: 27514 goto __263 27515 27516 // ========================================================================== 27517 // These are the class-handling opcodes 27518 27519 case OP_CLASS: 27520 goto __264 27521 case OP_NCLASS: 27522 goto __265 27523 case OP_XCLASS: 27524 goto __266 27525 27526 // ========================================================================== 27527 // These are the opcodes for fancy brackets of various kinds. We have 27528 // to use recursion in order to handle them. The "always failing" assertion 27529 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 27530 // though the other "backtracking verbs" are not supported. 27531 27532 case OP_FAIL: 27533 goto __267 27534 27535 case OP_ASSERT: 27536 goto __268 27537 case OP_ASSERT_NOT: 27538 goto __269 27539 case OP_ASSERTBACK: 27540 goto __270 27541 case OP_ASSERTBACK_NOT: 27542 goto __271 27543 27544 //----------------------------------------------------------------- 27545 case OP_COND: 27546 goto __272 27547 case OP_SCOND: 27548 goto __273 27549 27550 //----------------------------------------------------------------- 27551 case OP_RECURSE: 27552 goto __274 27553 27554 //----------------------------------------------------------------- 27555 case OP_BRAPOS: 27556 goto __275 27557 case OP_SBRAPOS: 27558 goto __276 27559 case OP_CBRAPOS: 27560 goto __277 27561 case OP_SCBRAPOS: 27562 goto __278 27563 case OP_BRAPOSZERO: 27564 goto __279 27565 27566 //----------------------------------------------------------------- 27567 case OP_ONCE: 27568 goto __280 27569 27570 // ========================================================================== 27571 // Handle callouts 27572 27573 case OP_CALLOUT: 27574 goto __281 27575 case OP_CALLOUT_STR: 27576 goto __282 27577 27578 // ========================================================================== 27579 default: 27580 goto __283 27581 } 27582 goto __89 27583 27584 // ========================================================================== 27585 // These cases are never obeyed. This is a fudge that causes a compile- 27586 // time error if the vectors coptable or poptable, which are indexed by 27587 // opcode, are not the correct length. It seems to be the only way to do 27588 // such a check at compile time, as the sizeof() operator does not work 27589 // in the C preprocessor. 27590 27591 __90: 27592 __91: 27593 return 0 27594 27595 // ========================================================================== 27596 // Reached a closing bracket. If not at the end of the pattern, carry 27597 // on with the next opcode. For repeating opcodes, also add the repeat 27598 // state. Note that KETRPOS will always be encountered at the end of the 27599 // subpattern, because the possessive subpattern repeats are always handled 27600 // using recursive calls. Thus, it never adds any new states. 27601 // 27602 // At the end of the (sub)pattern, unless we have an empty string and 27603 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27604 // start of the subject, save the match data, shifting up all previous 27605 // matches so we always have the longest first. 27606 27607 __92: 27608 __93: 27609 __94: 27610 __95: 27611 if !(code != end_code) { 27612 goto __284 27613 } 27614 27615 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27616 goto __286 27617 } 27618 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DLINK_SIZE 27619 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27620 next_active_state += 12 27621 goto __287 27622 __286: 27623 return -43 27624 __287: 27625 ; 27626 if !(codevalue != OP_KET) { 27627 goto __288 27628 } 27629 27630 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27631 goto __289 27632 } 27633 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset - int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27634 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27635 next_active_state += 12 27636 goto __290 27637 __289: 27638 return -43 27639 __290: 27640 ; 27641 __288: 27642 ; 27643 goto __285 27644 __284: 27645 27646 if !(ptr > current_subject || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY == Tuint32_t(0) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY_ATSTART == Tuint32_t(0) || current_subject > start_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_offset))) { 27647 goto __291 27648 } 27649 27650 if !(match_count < 0) { 27651 goto __292 27652 } 27653 if offsetcount >= Tuint32_t(2) { 27654 match_count = 1 27655 } else { 27656 match_count = 0 27657 } 27658 goto __293 27659 __292: 27660 if !(match_count > 0 && libc.PreIncInt32(&match_count, 1)*2 > int32(offsetcount)) { 27661 goto __294 27662 } 27663 match_count = 0 27664 __294: 27665 ; 27666 __293: 27667 ; 27668 count = func() int32 { 27669 if match_count == 0 { 27670 return int32(offsetcount) 27671 } 27672 return match_count * 2 27673 }() - 2 27674 if !(count > 0) { 27675 goto __295 27676 } 27677 libc.Xmemmove(tls, offsets+uintptr(2)*4, offsets, 27678 Tsize_t(count)*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 27679 __295: 27680 ; 27681 if !(offsetcount >= Tuint32_t(2)) { 27682 goto __296 27683 } 27684 27685 *(*Tsize_t)(unsafe.Pointer(offsets)) = Tsize_t((int32(current_subject) - int32(start_subject)) / 1) 27686 *(*Tsize_t)(unsafe.Pointer(offsets + 1*4)) = Tsize_t((int32(ptr) - int32(start_subject)) / 1) 27687 __296: 27688 ; 27689 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_SHORTEST != Tuint32_t(0)) { 27690 goto __297 27691 } 27692 return match_count 27693 __297: 27694 ; 27695 __291: 27696 ; 27697 __285: 27698 ; 27699 goto __89 27700 27701 // ========================================================================== 27702 // These opcodes add to the current list of states without looking 27703 // at the current character. 27704 27705 //----------------------------------------------------------------- 27706 __96: 27707 __298: 27708 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27709 goto __299 27710 __299: 27711 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27712 goto __298 27713 } 27714 goto __300 27715 __300: 27716 ; 27717 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27718 goto __301 27719 } 27720 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code) - int32(start_code)) / 1) 27721 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27722 next_active_state += 12 27723 goto __302 27724 __301: 27725 return -43 27726 __302: 27727 ; 27728 goto __89 27729 27730 //----------------------------------------------------------------- 27731 __97: 27732 __98: 27733 __303: 27734 27735 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27736 goto __306 27737 } 27738 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code)-int32(start_code))/1 + 1 + DLINK_SIZE) 27739 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27740 next_active_state += 12 27741 goto __307 27742 __306: 27743 return -43 27744 __307: 27745 ; 27746 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27747 goto __304 27748 __304: 27749 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27750 goto __303 27751 } 27752 goto __305 27753 __305: 27754 ; 27755 goto __89 27756 27757 //----------------------------------------------------------------- 27758 __99: 27759 __100: 27760 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27761 goto __308 27762 } 27763 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code)-int32(start_code))/1 + 1 + DLINK_SIZE + DIMM2_SIZE) 27764 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27765 next_active_state += 12 27766 goto __309 27767 __308: 27768 return -43 27769 __309: 27770 ; 27771 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27772 __310: 27773 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27774 goto __311 27775 } 27776 27777 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27778 goto __312 27779 } 27780 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code)-int32(start_code))/1 + 1 + DLINK_SIZE) 27781 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27782 next_active_state += 12 27783 goto __313 27784 __312: 27785 return -43 27786 __313: 27787 ; 27788 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27789 goto __310 27790 __311: 27791 ; 27792 goto __89 27793 27794 //----------------------------------------------------------------- 27795 __101: 27796 __102: 27797 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27798 goto __314 27799 } 27800 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27801 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27802 next_active_state += 12 27803 goto __315 27804 __314: 27805 return -43 27806 __315: 27807 ; 27808 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27809 __316: 27810 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27811 goto __317 27812 } 27813 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27814 goto __316 27815 __317: 27816 ; 27817 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27818 goto __318 27819 } 27820 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code)-int32(start_code))/1 + 1 + DLINK_SIZE) 27821 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27822 next_active_state += 12 27823 goto __319 27824 __318: 27825 return -43 27826 __319: 27827 ; 27828 goto __89 27829 27830 //----------------------------------------------------------------- 27831 __103: 27832 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27833 __320: 27834 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27835 goto __321 27836 } 27837 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27838 goto __320 27839 __321: 27840 ; 27841 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27842 goto __322 27843 } 27844 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(code)-int32(start_code))/1 + 1 + DLINK_SIZE) 27845 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27846 next_active_state += 12 27847 goto __323 27848 __322: 27849 return -43 27850 __323: 27851 ; 27852 goto __89 27853 27854 //----------------------------------------------------------------- 27855 __104: 27856 if !(ptr == start_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL == Tuint32_t(0)) { 27857 goto __324 27858 } 27859 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27860 goto __325 27861 } 27862 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27863 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27864 next_active_state += 12 27865 goto __326 27866 __325: 27867 return -43 27868 __326: 27869 ; 27870 __324: 27871 ; 27872 goto __89 27873 27874 //----------------------------------------------------------------- 27875 __105: 27876 if !(ptr == start_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL == Tuint32_t(0) || (ptr != end_subject || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_ALT_CIRCUMFLEX != Tuint32_t(0)) && 27877 func() int32 { 27878 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27879 return libc.Bool32(ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+72, utf) != 0) 27880 } 27881 return libc.Bool32(ptr >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 27882 }() != 0) { 27883 goto __327 27884 } 27885 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27886 goto __328 27887 } 27888 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27889 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27890 next_active_state += 12 27891 goto __329 27892 __328: 27893 return -43 27894 __329: 27895 ; 27896 __327: 27897 ; 27898 goto __89 27899 27900 //----------------------------------------------------------------- 27901 __106: 27902 if !(ptr >= end_subject) { 27903 goto __330 27904 } 27905 27906 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 27907 goto __331 27908 } 27909 return -2 27910 goto __332 27911 __331: 27912 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27913 goto __333 27914 } 27915 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27916 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27917 next_active_state += 12 27918 goto __334 27919 __333: 27920 return -43 27921 __334: 27922 ; 27923 __332: 27924 ; 27925 __330: 27926 ; 27927 goto __89 27928 27929 //----------------------------------------------------------------- 27930 __107: 27931 if !(ptr == start_subject) { 27932 goto __335 27933 } 27934 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27935 goto __336 27936 } 27937 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27938 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27939 next_active_state += 12 27940 goto __337 27941 __336: 27942 return -43 27943 __337: 27944 ; 27945 __335: 27946 ; 27947 goto __89 27948 27949 //----------------------------------------------------------------- 27950 __108: 27951 if !(ptr == start_subject+uintptr(start_offset)) { 27952 goto __338 27953 } 27954 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27955 goto __339 27956 } 27957 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27958 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27959 next_active_state += 12 27960 goto __340 27961 __339: 27962 return -43 27963 __340: 27964 ; 27965 __338: 27966 ; 27967 goto __89 27968 27969 // ========================================================================== 27970 // These opcodes inspect the next subject character, and sometimes 27971 // the previous one as well, but do not have an argument. The variable 27972 // clen contains the length of the current character and is zero if we are 27973 // at the end of the subject. 27974 27975 //----------------------------------------------------------------- 27976 __109: 27977 if !(clen > 0 && !(func() int32 { 27978 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27979 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 27980 } 27981 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 27982 }() != 0)) { 27983 goto __341 27984 } 27985 27986 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 27987 goto __342 27988 } 27989 27990 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 27991 goto __343 27992 __342: 27993 27994 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 27995 goto __344 27996 } 27997 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 27998 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 27999 next_new_state += 12 28000 goto __345 28001 __344: 28002 return -43 28003 __345: 28004 ; 28005 __343: 28006 ; 28007 __341: 28008 ; 28009 goto __89 28010 28011 //----------------------------------------------------------------- 28012 __110: 28013 if !(clen > 0) { 28014 goto __346 28015 } 28016 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28017 goto __347 28018 } 28019 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28020 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28021 next_new_state += 12 28022 goto __348 28023 __347: 28024 return -43 28025 __348: 28026 ; 28027 __346: 28028 ; 28029 goto __89 28030 28031 //----------------------------------------------------------------- 28032 __111: 28033 if !(clen == 0 || func() int32 { 28034 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28035 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28036 } 28037 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28038 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28039 goto __349 28040 } 28041 28042 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28043 goto __350 28044 } 28045 return -2 28046 __350: 28047 ; 28048 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28049 goto __351 28050 } 28051 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28052 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28053 next_active_state += 12 28054 goto __352 28055 __351: 28056 return -43 28057 __352: 28058 ; 28059 __349: 28060 ; 28061 goto __89 28062 28063 //----------------------------------------------------------------- 28064 __112: 28065 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28066 goto __353 28067 } 28068 28069 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28070 goto __354 28071 } 28072 could_continue = DTRUE 28073 goto __355 28074 __354: 28075 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28076 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28077 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28078 } 28079 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28080 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28081 goto __356 28082 } 28083 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28084 goto __358 28085 } 28086 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28087 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28088 next_active_state += 12 28089 goto __359 28090 __358: 28091 return -43 28092 __359: 28093 ; 28094 goto __357 28095 __356: 28096 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28097 goto __360 28098 } 28099 28100 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28101 goto __361 28102 } 28103 28104 reset_could_continue = DTRUE 28105 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28106 goto __363 28107 } 28108 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28109 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28110 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28111 next_new_state += 12 28112 goto __364 28113 __363: 28114 return -43 28115 __364: 28116 ; 28117 goto __362 28118 __361: 28119 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28120 __362: 28121 ; 28122 __360: 28123 ; 28124 __357: 28125 ; 28126 __355: 28127 ; 28128 __353: 28129 ; 28130 goto __89 28131 28132 //----------------------------------------------------------------- 28133 __113: 28134 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28135 goto __365 28136 } 28137 28138 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28139 goto __367 28140 } 28141 could_continue = DTRUE 28142 goto __368 28143 __367: 28144 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28145 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28146 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28147 } 28148 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28149 }() != 0) { 28150 goto __369 28151 } 28152 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28153 goto __371 28154 } 28155 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28156 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28157 next_active_state += 12 28158 goto __372 28159 __371: 28160 return -43 28161 __372: 28162 ; 28163 goto __370 28164 __369: 28165 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28166 goto __373 28167 } 28168 28169 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28170 goto __374 28171 } 28172 28173 reset_could_continue = DTRUE 28174 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28175 goto __376 28176 } 28177 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28178 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28179 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28180 next_new_state += 12 28181 goto __377 28182 __376: 28183 return -43 28184 __377: 28185 ; 28186 goto __375 28187 __374: 28188 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28189 __375: 28190 ; 28191 __373: 28192 ; 28193 __370: 28194 ; 28195 __368: 28196 ; 28197 goto __366 28198 __365: 28199 if !(func() int32 { 28200 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28201 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28202 } 28203 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28204 }() != 0) { 28205 goto __378 28206 } 28207 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28208 goto __379 28209 } 28210 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28211 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28212 next_active_state += 12 28213 goto __380 28214 __379: 28215 return -43 28216 __380: 28217 ; 28218 __378: 28219 ; 28220 __366: 28221 ; 28222 goto __89 28223 28224 //----------------------------------------------------------------- 28225 28226 __114: 28227 __115: 28228 __116: 28229 if !(clen > 0 && c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0) { 28230 goto __381 28231 } 28232 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28233 goto __382 28234 } 28235 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28236 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28237 next_new_state += 12 28238 goto __383 28239 __382: 28240 return -43 28241 __383: 28242 ; 28243 __381: 28244 ; 28245 goto __89 28246 28247 //----------------------------------------------------------------- 28248 __117: 28249 __118: 28250 __119: 28251 if !(clen > 0 && (c >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0)) { 28252 goto __384 28253 } 28254 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28255 goto __385 28256 } 28257 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28258 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28259 next_new_state += 12 28260 goto __386 28261 __385: 28262 return -43 28263 __386: 28264 ; 28265 __384: 28266 ; 28267 goto __89 28268 28269 //----------------------------------------------------------------- 28270 __120: 28271 __121: 28272 28273 if !(ptr > start_subject) { 28274 goto __387 28275 } 28276 28277 temp = ptr - uintptr(1) 28278 if !(temp < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 28279 goto __389 28280 } 28281 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = temp 28282 __389: 28283 ; 28284 if !(utf != 0) { 28285 goto __390 28286 } 28287 __391: 28288 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp)))&0xc0 == 0x80) { 28289 goto __392 28290 } 28291 temp-- 28292 goto __391 28293 __392: 28294 ; 28295 __390: 28296 ; 28297 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp))) 28298 if !(utf != 0 && d >= 0xc0) { 28299 goto __393 28300 } 28301 if !(d&0x20 == Tuint32_t(0)) { 28302 goto __394 28303 } 28304 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f 28305 goto __395 28306 __394: 28307 if !(d&0x10 == Tuint32_t(0)) { 28308 goto __396 28309 } 28310 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f 28311 goto __397 28312 __396: 28313 if !(d&0x08 == Tuint32_t(0)) { 28314 goto __398 28315 } 28316 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f 28317 goto __399 28318 __398: 28319 if !(d&0x04 == Tuint32_t(0)) { 28320 goto __400 28321 } 28322 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 4)))&0x3f 28323 goto __401 28324 __400: 28325 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 5)))&0x3f 28326 __401: 28327 ; 28328 __399: 28329 ; 28330 __397: 28331 ; 28332 __395: 28333 ; 28334 __393: 28335 ; 28336 28337 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28338 goto __402 28339 } 28340 28341 if !(d == Tuint32_t('_')) { 28342 goto __404 28343 } 28344 left_word = DTRUE 28345 goto __405 28346 __404: 28347 28348 cat = X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fchartype] 28349 left_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 28350 __405: 28351 ; 28352 goto __403 28353 __402: 28354 left_word = libc.Bool32(d < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(d))))&Dctype_word != 0) 28355 __403: 28356 ; 28357 goto __388 28358 __387: 28359 left_word = DFALSE 28360 __388: 28361 ; 28362 28363 if !(clen > 0) { 28364 goto __406 28365 } 28366 28367 if !(ptr >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 28368 goto __408 28369 } 28370 28371 temp1 = ptr + uintptr(1) 28372 if !(utf != 0) { 28373 goto __409 28374 } 28375 __410: 28376 if !(temp1 < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp1)))&0xc0 == 0x80) { 28377 goto __411 28378 } 28379 temp1++ 28380 goto __410 28381 __411: 28382 ; 28383 __409: 28384 ; 28385 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = temp1 28386 __408: 28387 ; 28388 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28389 goto __412 28390 } 28391 28392 if !(c == Tuint32_t('_')) { 28393 goto __414 28394 } 28395 right_word = DTRUE 28396 goto __415 28397 __414: 28398 28399 cat1 = X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype] 28400 right_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 28401 __415: 28402 ; 28403 goto __413 28404 __412: 28405 right_word = libc.Bool32(c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&Dctype_word != 0) 28406 __413: 28407 ; 28408 goto __407 28409 __406: 28410 right_word = DFALSE 28411 __407: 28412 ; 28413 28414 if !(libc.Bool32(left_word == right_word) == libc.Bool32(codevalue == OP_NOT_WORD_BOUNDARY)) { 28415 goto __416 28416 } 28417 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28418 goto __417 28419 } 28420 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28421 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28422 next_active_state += 12 28423 goto __418 28424 __417: 28425 return -43 28426 __418: 28427 ; 28428 __416: 28429 ; 28430 28431 goto __89 28432 28433 //----------------------------------------------------------------- 28434 // Check the next character by Unicode property. We will get here only 28435 // if the support is in the binary; otherwise a compile-time error occurs. 28436 // 28437 28438 __122: 28439 __123: 28440 if !(clen > 0) { 28441 goto __419 28442 } 28443 28444 prop = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 28445 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) { 28446 case DPT_ANY: 28447 goto __421 28448 28449 case DPT_LAMP: 28450 goto __422 28451 28452 case DPT_GC: 28453 goto __423 28454 28455 case DPT_PC: 28456 goto __424 28457 28458 case DPT_SC: 28459 goto __425 28460 28461 case DPT_SCX: 28462 goto __426 28463 28464 // These are specials for combination cases. 28465 28466 case DPT_ALNUM: 28467 goto __427 28468 28469 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28470 // which means that Perl space and POSIX space are now identical. PCRE 28471 // was changed at release 8.34. 28472 28473 case DPT_SPACE: 28474 goto __428 // Perl space 28475 case DPT_PXSPACE: 28476 goto __429 28477 28478 case DPT_WORD: 28479 goto __430 28480 28481 case DPT_CLIST: 28482 goto __431 28483 28484 case DPT_UCNC: 28485 goto __432 28486 28487 case DPT_BIDICL: 28488 goto __433 28489 28490 case DPT_BOOL: 28491 goto __434 28492 28493 // Should never occur, but keep compilers from grumbling. 28494 28495 default: 28496 goto __435 28497 } 28498 goto __420 28499 28500 __421: 28501 OK = DTRUE 28502 goto __420 28503 28504 __422: 28505 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) 28506 goto __420 28507 28508 __423: 28509 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28510 goto __420 28511 28512 __424: 28513 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28514 goto __420 28515 28516 __425: 28517 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28518 goto __420 28519 28520 __426: 28521 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))%32)) != Tuint32_t(0)) 28522 goto __420 28523 28524 // These are specials for combination cases. 28525 28526 __427: 28527 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) 28528 goto __420 28529 28530 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28531 // which means that Perl space and POSIX space are now identical. PCRE 28532 // was changed at release 8.34. 28533 28534 __428: // Perl space 28535 __429: // POSIX space 28536 switch c { 28537 case Tuint32_t('\011'): 28538 goto __437 28539 case Tuint32_t('\040'): 28540 goto __438 28541 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 28542 goto __439 28543 case Tuint32_t(0x1680): 28544 goto __440 /* OGHAM SPACE MARK */ 28545 case Tuint32_t(0x180e): 28546 goto __441 /* MONGOLIAN VOWEL SEPARATOR */ 28547 case Tuint32_t(0x2000): 28548 goto __442 /* EN QUAD */ 28549 case Tuint32_t(0x2001): 28550 goto __443 /* EM QUAD */ 28551 case Tuint32_t(0x2002): 28552 goto __444 /* EN SPACE */ 28553 case Tuint32_t(0x2003): 28554 goto __445 /* EM SPACE */ 28555 case Tuint32_t(0x2004): 28556 goto __446 /* THREE-PER-EM SPACE */ 28557 case Tuint32_t(0x2005): 28558 goto __447 /* FOUR-PER-EM SPACE */ 28559 case Tuint32_t(0x2006): 28560 goto __448 /* SIX-PER-EM SPACE */ 28561 case Tuint32_t(0x2007): 28562 goto __449 /* FIGURE SPACE */ 28563 case Tuint32_t(0x2008): 28564 goto __450 /* PUNCTUATION SPACE */ 28565 case Tuint32_t(0x2009): 28566 goto __451 /* THIN SPACE */ 28567 case Tuint32_t(0x200A): 28568 goto __452 /* HAIR SPACE */ 28569 case Tuint32_t(0x202f): 28570 goto __453 /* NARROW NO-BREAK SPACE */ 28571 case Tuint32_t(0x205f): 28572 goto __454 /* MEDIUM MATHEMATICAL SPACE */ 28573 case Tuint32_t(0x3000): 28574 goto __455 28575 case Tuint32_t('\012'): 28576 goto __456 28577 case Tuint32_t('\013'): 28578 goto __457 28579 case Tuint32_t('\014'): 28580 goto __458 28581 case Tuint32_t('\015'): 28582 goto __459 28583 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 28584 goto __460 28585 case Tuint32_t(0x2028): 28586 goto __461 /* LINE SEPARATOR */ 28587 case Tuint32_t(0x2029): 28588 goto __462 28589 28590 default: 28591 goto __463 28592 } 28593 goto __436 28594 28595 __437: 28596 __438: 28597 __439: 28598 __440: /* OGHAM SPACE MARK */ 28599 __441: /* MONGOLIAN VOWEL SEPARATOR */ 28600 __442: /* EN QUAD */ 28601 __443: /* EM QUAD */ 28602 __444: /* EN SPACE */ 28603 __445: /* EM SPACE */ 28604 __446: /* THREE-PER-EM SPACE */ 28605 __447: /* FOUR-PER-EM SPACE */ 28606 __448: /* SIX-PER-EM SPACE */ 28607 __449: /* FIGURE SPACE */ 28608 __450: /* PUNCTUATION SPACE */ 28609 __451: /* THIN SPACE */ 28610 __452: /* HAIR SPACE */ 28611 __453: /* NARROW NO-BREAK SPACE */ 28612 __454: /* MEDIUM MATHEMATICAL SPACE */ 28613 __455: 28614 __456: 28615 __457: 28616 __458: 28617 __459: 28618 __460: 28619 __461: /* LINE SEPARATOR */ 28620 __462: 28621 OK = DTRUE 28622 goto __436 28623 28624 __463: 28625 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) 28626 goto __436 28627 __436: 28628 ; 28629 goto __420 28630 28631 __430: 28632 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 28633 goto __420 28634 28635 __431: 28636 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))*4 28637 __464: 28638 28639 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp))) { 28640 goto __467 28641 } 28642 OK = DFALSE 28643 goto __466 28644 __467: 28645 ; 28646 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 28647 goto __468 28648 } 28649 OK = DTRUE 28650 goto __466 28651 __468: 28652 ; 28653 goto __465 28654 __465: 28655 goto __464 28656 goto __466 28657 __466: 28658 ; 28659 goto __420 28660 28661 __432: 28662 OK = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 28663 goto __420 28664 28665 __433: 28666 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28667 goto __420 28668 28669 __434: 28670 OK = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))%32)) != Tuint32_t(0)) 28671 goto __420 28672 28673 // Should never occur, but keep compilers from grumbling. 28674 28675 __435: 28676 OK = libc.Bool32(codevalue != OP_PROP) 28677 goto __420 28678 __420: 28679 ; 28680 28681 if !(OK == libc.Bool32(codevalue == OP_PROP)) { 28682 goto __469 28683 } 28684 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28685 goto __470 28686 } 28687 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 3 28688 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28689 next_new_state += 12 28690 goto __471 28691 __470: 28692 return -43 28693 __471: 28694 ; 28695 __469: 28696 ; 28697 __419: 28698 ; 28699 goto __89 28700 28701 // ========================================================================== 28702 // These opcodes likewise inspect the subject character, but have an 28703 // argument that is not a data character. It is one of these opcodes: 28704 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 28705 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 28706 28707 __124: 28708 __125: 28709 __126: 28710 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 28711 if !(count > 0) { 28712 goto __472 28713 } 28714 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28715 goto __473 28716 } 28717 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28718 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28719 next_active_state += 12 28720 goto __474 28721 __473: 28722 return -43 28723 __474: 28724 ; 28725 __472: 28726 ; 28727 if !(clen > 0) { 28728 goto __475 28729 } 28730 28731 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28732 goto __476 28733 } 28734 28735 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28736 goto __477 28737 __476: 28738 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28739 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28740 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28741 } 28742 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28743 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28744 goto __478 28745 } 28746 28747 if !(count > 0 && codevalue == OP_TYPEPOSPLUS) { 28748 goto __479 28749 } 28750 28751 active_count-- // Remove non-match possibility 28752 next_active_state -= 12 28753 __479: 28754 ; 28755 count++ 28756 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28757 goto __480 28758 } 28759 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28760 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28761 next_new_state += 12 28762 goto __481 28763 __480: 28764 return -43 28765 __481: 28766 ; 28767 __478: 28768 ; 28769 __477: 28770 ; 28771 __475: 28772 ; 28773 goto __89 28774 28775 //----------------------------------------------------------------- 28776 __127: 28777 __128: 28778 __129: 28779 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28780 goto __482 28781 } 28782 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28783 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28784 next_active_state += 12 28785 goto __483 28786 __482: 28787 return -43 28788 __483: 28789 ; 28790 if !(clen > 0) { 28791 goto __484 28792 } 28793 28794 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28795 goto __485 28796 } 28797 28798 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28799 goto __486 28800 __485: 28801 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28802 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28803 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28804 } 28805 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28806 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28807 goto __487 28808 } 28809 28810 if !(codevalue == OP_TYPEPOSQUERY) { 28811 goto __488 28812 } 28813 28814 active_count-- // Remove non-match possibility 28815 next_active_state -= 12 28816 __488: 28817 ; 28818 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28819 goto __489 28820 } 28821 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 28822 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28823 next_new_state += 12 28824 goto __490 28825 __489: 28826 return -43 28827 __490: 28828 ; 28829 __487: 28830 ; 28831 __486: 28832 ; 28833 __484: 28834 ; 28835 goto __89 28836 28837 //----------------------------------------------------------------- 28838 __130: 28839 __131: 28840 __132: 28841 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28842 goto __491 28843 } 28844 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28845 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28846 next_active_state += 12 28847 goto __492 28848 __491: 28849 return -43 28850 __492: 28851 ; 28852 if !(clen > 0) { 28853 goto __493 28854 } 28855 28856 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28857 goto __494 28858 } 28859 28860 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28861 goto __495 28862 __494: 28863 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28864 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28865 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28866 } 28867 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28868 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28869 goto __496 28870 } 28871 28872 if !(codevalue == OP_TYPEPOSSTAR) { 28873 goto __497 28874 } 28875 28876 active_count-- // Remove non-match possibility 28877 next_active_state -= 12 28878 __497: 28879 ; 28880 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28881 goto __498 28882 } 28883 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28884 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28885 next_new_state += 12 28886 goto __499 28887 __498: 28888 return -43 28889 __499: 28890 ; 28891 __496: 28892 ; 28893 __495: 28894 ; 28895 __493: 28896 ; 28897 goto __89 28898 28899 //----------------------------------------------------------------- 28900 __133: 28901 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28902 if !(clen > 0) { 28903 goto __500 28904 } 28905 28906 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28907 goto __501 28908 } 28909 28910 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28911 goto __502 28912 __501: 28913 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28914 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28915 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28916 } 28917 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28918 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28919 goto __503 28920 } 28921 28922 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 28923 goto __504 28924 } 28925 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28926 goto __506 28927 } 28928 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 1 28929 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28930 next_new_state += 12 28931 goto __507 28932 __506: 28933 return -43 28934 __507: 28935 ; 28936 goto __505 28937 __504: 28938 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28939 goto __508 28940 } 28941 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28942 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28943 next_new_state += 12 28944 goto __509 28945 __508: 28946 return -43 28947 __509: 28948 ; 28949 __505: 28950 ; 28951 __503: 28952 ; 28953 __502: 28954 ; 28955 __500: 28956 ; 28957 goto __89 28958 28959 //----------------------------------------------------------------- 28960 __134: 28961 __135: 28962 __136: 28963 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28964 goto __510 28965 } 28966 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 28967 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28968 next_active_state += 12 28969 goto __511 28970 __510: 28971 return -43 28972 __511: 28973 ; 28974 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28975 if !(clen > 0) { 28976 goto __512 28977 } 28978 28979 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)))) { 28980 goto __513 28981 } 28982 28983 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28984 goto __514 28985 __513: 28986 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28987 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28988 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 28989 } 28990 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 28991 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28992 goto __515 28993 } 28994 28995 if !(codevalue == OP_TYPEPOSUPTO) { 28996 goto __516 28997 } 28998 28999 active_count-- // Remove non-match possibility 29000 next_active_state -= 12 29001 __516: 29002 ; 29003 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 29004 goto __517 29005 } 29006 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29007 goto __519 29008 } 29009 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 + DIMM2_SIZE 29010 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 29011 next_new_state += 12 29012 goto __520 29013 __519: 29014 return -43 29015 __520: 29016 ; 29017 goto __518 29018 __517: 29019 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29020 goto __521 29021 } 29022 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29023 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29024 next_new_state += 12 29025 goto __522 29026 __521: 29027 return -43 29028 __522: 29029 ; 29030 __518: 29031 ; 29032 __515: 29033 ; 29034 __514: 29035 ; 29036 __512: 29037 ; 29038 goto __89 29039 29040 // ========================================================================== 29041 // These are virtual opcodes that are used when something like 29042 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 29043 // argument. It keeps the code above fast for the other cases. The argument 29044 // is in the d variable. 29045 29046 __137: 29047 __138: 29048 __139: 29049 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29050 if !(count > 0) { 29051 goto __523 29052 } 29053 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29054 goto __524 29055 } 29056 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29057 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29058 next_active_state += 12 29059 goto __525 29060 __524: 29061 return -43 29062 __525: 29063 ; 29064 __523: 29065 ; 29066 if !(clen > 0) { 29067 goto __526 29068 } 29069 29070 prop1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 29071 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29072 case DPT_ANY: 29073 goto __528 29074 29075 case DPT_LAMP: 29076 goto __529 29077 29078 case DPT_GC: 29079 goto __530 29080 29081 case DPT_PC: 29082 goto __531 29083 29084 case DPT_SC: 29085 goto __532 29086 29087 case DPT_SCX: 29088 goto __533 29089 29090 // These are specials for combination cases. 29091 29092 case DPT_ALNUM: 29093 goto __534 29094 29095 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29096 // which means that Perl space and POSIX space are now identical. PCRE 29097 // was changed at release 8.34. 29098 29099 case DPT_SPACE: 29100 goto __535 // Perl space 29101 case DPT_PXSPACE: 29102 goto __536 29103 29104 case DPT_WORD: 29105 goto __537 29106 29107 case DPT_CLIST: 29108 goto __538 29109 29110 case DPT_UCNC: 29111 goto __539 29112 29113 case DPT_BIDICL: 29114 goto __540 29115 29116 case DPT_BOOL: 29117 goto __541 29118 29119 // Should never occur, but keep compilers from grumbling. 29120 29121 default: 29122 goto __542 29123 } 29124 goto __527 29125 29126 __528: 29127 OK1 = DTRUE 29128 goto __527 29129 29130 __529: 29131 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Lt) 29132 goto __527 29133 29134 __530: 29135 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29136 goto __527 29137 29138 __531: 29139 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29140 goto __527 29141 29142 __532: 29143 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29144 goto __527 29145 29146 __533: 29147 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29148 goto __527 29149 29150 // These are specials for combination cases. 29151 29152 __534: 29153 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_N) 29154 goto __527 29155 29156 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29157 // which means that Perl space and POSIX space are now identical. PCRE 29158 // was changed at release 8.34. 29159 29160 __535: // Perl space 29161 __536: // POSIX space 29162 switch c { 29163 case Tuint32_t('\011'): 29164 goto __544 29165 case Tuint32_t('\040'): 29166 goto __545 29167 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29168 goto __546 29169 case Tuint32_t(0x1680): 29170 goto __547 /* OGHAM SPACE MARK */ 29171 case Tuint32_t(0x180e): 29172 goto __548 /* MONGOLIAN VOWEL SEPARATOR */ 29173 case Tuint32_t(0x2000): 29174 goto __549 /* EN QUAD */ 29175 case Tuint32_t(0x2001): 29176 goto __550 /* EM QUAD */ 29177 case Tuint32_t(0x2002): 29178 goto __551 /* EN SPACE */ 29179 case Tuint32_t(0x2003): 29180 goto __552 /* EM SPACE */ 29181 case Tuint32_t(0x2004): 29182 goto __553 /* THREE-PER-EM SPACE */ 29183 case Tuint32_t(0x2005): 29184 goto __554 /* FOUR-PER-EM SPACE */ 29185 case Tuint32_t(0x2006): 29186 goto __555 /* SIX-PER-EM SPACE */ 29187 case Tuint32_t(0x2007): 29188 goto __556 /* FIGURE SPACE */ 29189 case Tuint32_t(0x2008): 29190 goto __557 /* PUNCTUATION SPACE */ 29191 case Tuint32_t(0x2009): 29192 goto __558 /* THIN SPACE */ 29193 case Tuint32_t(0x200A): 29194 goto __559 /* HAIR SPACE */ 29195 case Tuint32_t(0x202f): 29196 goto __560 /* NARROW NO-BREAK SPACE */ 29197 case Tuint32_t(0x205f): 29198 goto __561 /* MEDIUM MATHEMATICAL SPACE */ 29199 case Tuint32_t(0x3000): 29200 goto __562 29201 case Tuint32_t('\012'): 29202 goto __563 29203 case Tuint32_t('\013'): 29204 goto __564 29205 case Tuint32_t('\014'): 29206 goto __565 29207 case Tuint32_t('\015'): 29208 goto __566 29209 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29210 goto __567 29211 case Tuint32_t(0x2028): 29212 goto __568 /* LINE SEPARATOR */ 29213 case Tuint32_t(0x2029): 29214 goto __569 29215 29216 default: 29217 goto __570 29218 } 29219 goto __543 29220 29221 __544: 29222 __545: 29223 __546: 29224 __547: /* OGHAM SPACE MARK */ 29225 __548: /* MONGOLIAN VOWEL SEPARATOR */ 29226 __549: /* EN QUAD */ 29227 __550: /* EM QUAD */ 29228 __551: /* EN SPACE */ 29229 __552: /* EM SPACE */ 29230 __553: /* THREE-PER-EM SPACE */ 29231 __554: /* FOUR-PER-EM SPACE */ 29232 __555: /* SIX-PER-EM SPACE */ 29233 __556: /* FIGURE SPACE */ 29234 __557: /* PUNCTUATION SPACE */ 29235 __558: /* THIN SPACE */ 29236 __559: /* HAIR SPACE */ 29237 __560: /* NARROW NO-BREAK SPACE */ 29238 __561: /* MEDIUM MATHEMATICAL SPACE */ 29239 __562: 29240 __563: 29241 __564: 29242 __565: 29243 __566: 29244 __567: 29245 __568: /* LINE SEPARATOR */ 29246 __569: 29247 OK1 = DTRUE 29248 goto __543 29249 29250 __570: 29251 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_Z) 29252 goto __543 29253 __543: 29254 ; 29255 goto __527 29256 29257 __537: 29258 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 29259 goto __527 29260 29261 __538: 29262 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29263 __571: 29264 29265 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 29266 goto __574 29267 } 29268 OK1 = DFALSE 29269 goto __573 29270 __574: 29271 ; 29272 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 29273 goto __575 29274 } 29275 OK1 = DTRUE 29276 goto __573 29277 __575: 29278 ; 29279 goto __572 29280 __572: 29281 goto __571 29282 goto __573 29283 __573: 29284 ; 29285 goto __527 29286 29287 __539: 29288 OK1 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 29289 goto __527 29290 29291 __540: 29292 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29293 goto __527 29294 29295 __541: 29296 OK1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29297 goto __527 29298 29299 // Should never occur, but keep compilers from grumbling. 29300 29301 __542: 29302 OK1 = libc.Bool32(codevalue != OP_PROP) 29303 goto __527 29304 __527: 29305 ; 29306 29307 if !(OK1 == libc.Bool32(d == OP_PROP)) { 29308 goto __576 29309 } 29310 29311 if !(count > 0 && codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSPLUS)) { 29312 goto __577 29313 } 29314 29315 active_count-- // Remove non-match possibility 29316 next_active_state -= 12 29317 __577: 29318 ; 29319 count++ 29320 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29321 goto __578 29322 } 29323 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29324 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29325 next_new_state += 12 29326 goto __579 29327 __578: 29328 return -43 29329 __579: 29330 ; 29331 __576: 29332 ; 29333 __526: 29334 ; 29335 goto __89 29336 29337 //----------------------------------------------------------------- 29338 __140: 29339 __141: 29340 __142: 29341 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29342 if !(count > 0) { 29343 goto __580 29344 } 29345 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29346 goto __581 29347 } 29348 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29349 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29350 next_active_state += 12 29351 goto __582 29352 __581: 29353 return -43 29354 __582: 29355 ; 29356 __580: 29357 ; 29358 if !(clen > 0) { 29359 goto __583 29360 } 29361 29362 *(*int32)(unsafe.Pointer(bp /* ncount */)) = 0 29363 if !(count > 0 && codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSPLUS)) { 29364 goto __584 29365 } 29366 29367 active_count-- // Remove non-match possibility 29368 next_active_state -= 12 29369 __584: 29370 ; 29371 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 29372 bp) 29373 count++ 29374 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29375 goto __585 29376 } 29377 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29378 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29379 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp)) 29380 next_new_state += 12 29381 goto __586 29382 __585: 29383 return -43 29384 __586: 29385 ; 29386 __583: 29387 ; 29388 goto __89 29389 29390 //----------------------------------------------------------------- 29391 __143: 29392 __144: 29393 __145: 29394 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29395 if !(count > 0) { 29396 goto __587 29397 } 29398 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29399 goto __588 29400 } 29401 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29402 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29403 next_active_state += 12 29404 goto __589 29405 __588: 29406 return -43 29407 __589: 29408 ; 29409 __587: 29410 ; 29411 if !(clen > 0) { 29412 goto __590 29413 } 29414 ncount1 = 0 29415 switch c { 29416 case Tuint32_t('\013'): 29417 goto __592 29418 case Tuint32_t('\014'): 29419 goto __593 29420 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29421 goto __594 29422 case Tuint32_t(0x2028): 29423 goto __595 29424 case Tuint32_t(0x2029): 29425 goto __596 29426 29427 case Tuint32_t('\015'): 29428 goto __597 29429 case Tuint32_t('\012'): 29430 goto __598 29431 29432 default: 29433 goto __599 29434 } 29435 goto __591 29436 29437 __592: 29438 __593: 29439 __594: 29440 __595: 29441 __596: 29442 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 29443 goto __600 29444 } 29445 goto __591 29446 __600: 29447 ; 29448 goto ANYNL01 29449 29450 __597: 29451 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 29452 goto __601 29453 } 29454 ncount1 = 1 29455 __601: 29456 ; 29457 // Fall through 29458 29459 ANYNL01: 29460 __598: 29461 if !(count > 0 && codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSPLUS)) { 29462 goto __602 29463 } 29464 29465 active_count-- // Remove non-match possibility 29466 next_active_state -= 12 29467 __602: 29468 ; 29469 count++ 29470 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29471 goto __603 29472 } 29473 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29474 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29475 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount1 29476 next_new_state += 12 29477 goto __604 29478 __603: 29479 return -43 29480 __604: 29481 ; 29482 goto __591 29483 29484 __599: 29485 goto __591 29486 __591: 29487 ; 29488 __590: 29489 ; 29490 goto __89 29491 29492 //----------------------------------------------------------------- 29493 __146: 29494 __147: 29495 __148: 29496 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29497 if !(count > 0) { 29498 goto __605 29499 } 29500 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29501 goto __606 29502 } 29503 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29504 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29505 next_active_state += 12 29506 goto __607 29507 __606: 29508 return -43 29509 __607: 29510 ; 29511 __605: 29512 ; 29513 if !(clen > 0) { 29514 goto __608 29515 } 29516 29517 switch c { 29518 case Tuint32_t('\012'): 29519 goto __610 29520 case Tuint32_t('\013'): 29521 goto __611 29522 case Tuint32_t('\014'): 29523 goto __612 29524 case Tuint32_t('\015'): 29525 goto __613 29526 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29527 goto __614 29528 case Tuint32_t(0x2028): 29529 goto __615 /* LINE SEPARATOR */ 29530 case Tuint32_t(0x2029): 29531 goto __616 29532 29533 default: 29534 goto __617 29535 } 29536 goto __609 29537 29538 __610: 29539 __611: 29540 __612: 29541 __613: 29542 __614: 29543 __615: /* LINE SEPARATOR */ 29544 __616: 29545 OK2 = DTRUE 29546 goto __609 29547 29548 __617: 29549 OK2 = DFALSE 29550 goto __609 29551 __609: 29552 ; 29553 29554 if !(OK2 == libc.Bool32(d == OP_VSPACE)) { 29555 goto __618 29556 } 29557 29558 if !(count > 0 && codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29559 goto __619 29560 } 29561 29562 active_count-- // Remove non-match possibility 29563 next_active_state -= 12 29564 __619: 29565 ; 29566 count++ 29567 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29568 goto __620 29569 } 29570 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29571 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29572 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29573 next_new_state += 12 29574 goto __621 29575 __620: 29576 return -43 29577 __621: 29578 ; 29579 __618: 29580 ; 29581 __608: 29582 ; 29583 goto __89 29584 29585 //----------------------------------------------------------------- 29586 __149: 29587 __150: 29588 __151: 29589 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29590 if !(count > 0) { 29591 goto __622 29592 } 29593 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29594 goto __623 29595 } 29596 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29597 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29598 next_active_state += 12 29599 goto __624 29600 __623: 29601 return -43 29602 __624: 29603 ; 29604 __622: 29605 ; 29606 if !(clen > 0) { 29607 goto __625 29608 } 29609 29610 switch c { 29611 case Tuint32_t('\011'): 29612 goto __627 29613 case Tuint32_t('\040'): 29614 goto __628 29615 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29616 goto __629 29617 case Tuint32_t(0x1680): 29618 goto __630 /* OGHAM SPACE MARK */ 29619 case Tuint32_t(0x180e): 29620 goto __631 /* MONGOLIAN VOWEL SEPARATOR */ 29621 case Tuint32_t(0x2000): 29622 goto __632 /* EN QUAD */ 29623 case Tuint32_t(0x2001): 29624 goto __633 /* EM QUAD */ 29625 case Tuint32_t(0x2002): 29626 goto __634 /* EN SPACE */ 29627 case Tuint32_t(0x2003): 29628 goto __635 /* EM SPACE */ 29629 case Tuint32_t(0x2004): 29630 goto __636 /* THREE-PER-EM SPACE */ 29631 case Tuint32_t(0x2005): 29632 goto __637 /* FOUR-PER-EM SPACE */ 29633 case Tuint32_t(0x2006): 29634 goto __638 /* SIX-PER-EM SPACE */ 29635 case Tuint32_t(0x2007): 29636 goto __639 /* FIGURE SPACE */ 29637 case Tuint32_t(0x2008): 29638 goto __640 /* PUNCTUATION SPACE */ 29639 case Tuint32_t(0x2009): 29640 goto __641 /* THIN SPACE */ 29641 case Tuint32_t(0x200A): 29642 goto __642 /* HAIR SPACE */ 29643 case Tuint32_t(0x202f): 29644 goto __643 /* NARROW NO-BREAK SPACE */ 29645 case Tuint32_t(0x205f): 29646 goto __644 /* MEDIUM MATHEMATICAL SPACE */ 29647 case Tuint32_t(0x3000): 29648 goto __645 29649 29650 default: 29651 goto __646 29652 } 29653 goto __626 29654 29655 __627: 29656 __628: 29657 __629: 29658 __630: /* OGHAM SPACE MARK */ 29659 __631: /* MONGOLIAN VOWEL SEPARATOR */ 29660 __632: /* EN QUAD */ 29661 __633: /* EM QUAD */ 29662 __634: /* EN SPACE */ 29663 __635: /* EM SPACE */ 29664 __636: /* THREE-PER-EM SPACE */ 29665 __637: /* FOUR-PER-EM SPACE */ 29666 __638: /* SIX-PER-EM SPACE */ 29667 __639: /* FIGURE SPACE */ 29668 __640: /* PUNCTUATION SPACE */ 29669 __641: /* THIN SPACE */ 29670 __642: /* HAIR SPACE */ 29671 __643: /* NARROW NO-BREAK SPACE */ 29672 __644: /* MEDIUM MATHEMATICAL SPACE */ 29673 __645: 29674 OK3 = DTRUE 29675 goto __626 29676 29677 __646: 29678 OK3 = DFALSE 29679 goto __626 29680 __626: 29681 ; 29682 29683 if !(OK3 == libc.Bool32(d == OP_HSPACE)) { 29684 goto __647 29685 } 29686 29687 if !(count > 0 && codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29688 goto __648 29689 } 29690 29691 active_count-- // Remove non-match possibility 29692 next_active_state -= 12 29693 __648: 29694 ; 29695 count++ 29696 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29697 goto __649 29698 } 29699 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29700 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29701 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29702 next_new_state += 12 29703 goto __650 29704 __649: 29705 return -43 29706 __650: 29707 ; 29708 __647: 29709 ; 29710 __625: 29711 ; 29712 goto __89 29713 29714 //----------------------------------------------------------------- 29715 __152: 29716 __153: 29717 __154: 29718 count = 4 29719 goto QS1 29720 29721 __155: 29722 __156: 29723 __157: 29724 count = 0 29725 29726 QS1: 29727 29728 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29729 goto __651 29730 } 29731 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29732 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29733 next_active_state += 12 29734 goto __652 29735 __651: 29736 return -43 29737 __652: 29738 ; 29739 if !(clen > 0) { 29740 goto __653 29741 } 29742 29743 prop2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 29744 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29745 case DPT_ANY: 29746 goto __655 29747 29748 case DPT_LAMP: 29749 goto __656 29750 29751 case DPT_GC: 29752 goto __657 29753 29754 case DPT_PC: 29755 goto __658 29756 29757 case DPT_SC: 29758 goto __659 29759 29760 case DPT_SCX: 29761 goto __660 29762 29763 // These are specials for combination cases. 29764 29765 case DPT_ALNUM: 29766 goto __661 29767 29768 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29769 // which means that Perl space and POSIX space are now identical. PCRE 29770 // was changed at release 8.34. 29771 29772 case DPT_SPACE: 29773 goto __662 // Perl space 29774 case DPT_PXSPACE: 29775 goto __663 29776 29777 case DPT_WORD: 29778 goto __664 29779 29780 case DPT_CLIST: 29781 goto __665 29782 29783 case DPT_UCNC: 29784 goto __666 29785 29786 case DPT_BIDICL: 29787 goto __667 29788 29789 case DPT_BOOL: 29790 goto __668 29791 29792 // Should never occur, but keep compilers from grumbling. 29793 29794 default: 29795 goto __669 29796 } 29797 goto __654 29798 29799 __655: 29800 OK4 = DTRUE 29801 goto __654 29802 29803 __656: 29804 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Lt) 29805 goto __654 29806 29807 __657: 29808 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29809 goto __654 29810 29811 __658: 29812 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29813 goto __654 29814 29815 __659: 29816 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29817 goto __654 29818 29819 __660: 29820 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29821 goto __654 29822 29823 // These are specials for combination cases. 29824 29825 __661: 29826 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_N) 29827 goto __654 29828 29829 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29830 // which means that Perl space and POSIX space are now identical. PCRE 29831 // was changed at release 8.34. 29832 29833 __662: // Perl space 29834 __663: // POSIX space 29835 switch c { 29836 case Tuint32_t('\011'): 29837 goto __671 29838 case Tuint32_t('\040'): 29839 goto __672 29840 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29841 goto __673 29842 case Tuint32_t(0x1680): 29843 goto __674 /* OGHAM SPACE MARK */ 29844 case Tuint32_t(0x180e): 29845 goto __675 /* MONGOLIAN VOWEL SEPARATOR */ 29846 case Tuint32_t(0x2000): 29847 goto __676 /* EN QUAD */ 29848 case Tuint32_t(0x2001): 29849 goto __677 /* EM QUAD */ 29850 case Tuint32_t(0x2002): 29851 goto __678 /* EN SPACE */ 29852 case Tuint32_t(0x2003): 29853 goto __679 /* EM SPACE */ 29854 case Tuint32_t(0x2004): 29855 goto __680 /* THREE-PER-EM SPACE */ 29856 case Tuint32_t(0x2005): 29857 goto __681 /* FOUR-PER-EM SPACE */ 29858 case Tuint32_t(0x2006): 29859 goto __682 /* SIX-PER-EM SPACE */ 29860 case Tuint32_t(0x2007): 29861 goto __683 /* FIGURE SPACE */ 29862 case Tuint32_t(0x2008): 29863 goto __684 /* PUNCTUATION SPACE */ 29864 case Tuint32_t(0x2009): 29865 goto __685 /* THIN SPACE */ 29866 case Tuint32_t(0x200A): 29867 goto __686 /* HAIR SPACE */ 29868 case Tuint32_t(0x202f): 29869 goto __687 /* NARROW NO-BREAK SPACE */ 29870 case Tuint32_t(0x205f): 29871 goto __688 /* MEDIUM MATHEMATICAL SPACE */ 29872 case Tuint32_t(0x3000): 29873 goto __689 29874 case Tuint32_t('\012'): 29875 goto __690 29876 case Tuint32_t('\013'): 29877 goto __691 29878 case Tuint32_t('\014'): 29879 goto __692 29880 case Tuint32_t('\015'): 29881 goto __693 29882 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29883 goto __694 29884 case Tuint32_t(0x2028): 29885 goto __695 /* LINE SEPARATOR */ 29886 case Tuint32_t(0x2029): 29887 goto __696 29888 29889 default: 29890 goto __697 29891 } 29892 goto __670 29893 29894 __671: 29895 __672: 29896 __673: 29897 __674: /* OGHAM SPACE MARK */ 29898 __675: /* MONGOLIAN VOWEL SEPARATOR */ 29899 __676: /* EN QUAD */ 29900 __677: /* EM QUAD */ 29901 __678: /* EN SPACE */ 29902 __679: /* EM SPACE */ 29903 __680: /* THREE-PER-EM SPACE */ 29904 __681: /* FOUR-PER-EM SPACE */ 29905 __682: /* SIX-PER-EM SPACE */ 29906 __683: /* FIGURE SPACE */ 29907 __684: /* PUNCTUATION SPACE */ 29908 __685: /* THIN SPACE */ 29909 __686: /* HAIR SPACE */ 29910 __687: /* NARROW NO-BREAK SPACE */ 29911 __688: /* MEDIUM MATHEMATICAL SPACE */ 29912 __689: 29913 __690: 29914 __691: 29915 __692: 29916 __693: 29917 __694: 29918 __695: /* LINE SEPARATOR */ 29919 __696: 29920 OK4 = DTRUE 29921 goto __670 29922 29923 __697: 29924 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_Z) 29925 goto __670 29926 __670: 29927 ; 29928 goto __654 29929 29930 __664: 29931 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 29932 goto __654 29933 29934 __665: 29935 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29936 __698: 29937 29938 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 29939 goto __701 29940 } 29941 OK4 = DFALSE 29942 goto __700 29943 __701: 29944 ; 29945 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 29946 goto __702 29947 } 29948 OK4 = DTRUE 29949 goto __700 29950 __702: 29951 ; 29952 goto __699 29953 __699: 29954 goto __698 29955 goto __700 29956 __700: 29957 ; 29958 goto __654 29959 29960 __666: 29961 OK4 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 29962 goto __654 29963 29964 __667: 29965 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29966 goto __654 29967 29968 __668: 29969 OK4 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29970 goto __654 29971 29972 // Should never occur, but keep compilers from grumbling. 29973 29974 __669: 29975 OK4 = libc.Bool32(codevalue != OP_PROP) 29976 goto __654 29977 __654: 29978 ; 29979 29980 if !(OK4 == libc.Bool32(d == OP_PROP)) { 29981 goto __703 29982 } 29983 29984 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSQUERY)) { 29985 goto __704 29986 } 29987 29988 active_count-- // Remove non-match possibility 29989 next_active_state -= 12 29990 __704: 29991 ; 29992 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29993 goto __705 29994 } 29995 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + count 29996 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 29997 next_new_state += 12 29998 goto __706 29999 __705: 30000 return -43 30001 __706: 30002 ; 30003 __703: 30004 ; 30005 __653: 30006 ; 30007 goto __89 30008 30009 //----------------------------------------------------------------- 30010 __158: 30011 __159: 30012 __160: 30013 count = 2 30014 goto QS2 30015 30016 __161: 30017 __162: 30018 __163: 30019 count = 0 30020 30021 QS2: 30022 30023 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30024 goto __707 30025 } 30026 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30027 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30028 next_active_state += 12 30029 goto __708 30030 __707: 30031 return -43 30032 __708: 30033 ; 30034 if !(clen > 0) { 30035 goto __709 30036 } 30037 30038 *(*int32)(unsafe.Pointer(bp + 4 /* ncount2 */)) = 0 30039 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSQUERY)) { 30040 goto __710 30041 } 30042 30043 active_count-- // Remove non-match possibility 30044 next_active_state -= 12 30045 __710: 30046 ; 30047 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30048 bp+4) 30049 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30050 goto __711 30051 } 30052 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30053 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30054 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 4)) 30055 next_new_state += 12 30056 goto __712 30057 __711: 30058 return -43 30059 __712: 30060 ; 30061 __709: 30062 ; 30063 goto __89 30064 30065 //----------------------------------------------------------------- 30066 __164: 30067 __165: 30068 __166: 30069 count = 2 30070 goto QS3 30071 30072 __167: 30073 __168: 30074 __169: 30075 count = 0 30076 30077 QS3: 30078 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30079 goto __713 30080 } 30081 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30082 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30083 next_active_state += 12 30084 goto __714 30085 __713: 30086 return -43 30087 __714: 30088 ; 30089 if !(clen > 0) { 30090 goto __715 30091 } 30092 ncount3 = 0 30093 switch c { 30094 case Tuint32_t('\013'): 30095 goto __717 30096 case Tuint32_t('\014'): 30097 goto __718 30098 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30099 goto __719 30100 case Tuint32_t(0x2028): 30101 goto __720 30102 case Tuint32_t(0x2029): 30103 goto __721 30104 30105 case Tuint32_t('\015'): 30106 goto __722 30107 case Tuint32_t('\012'): 30108 goto __723 30109 30110 default: 30111 goto __724 30112 } 30113 goto __716 30114 30115 __717: 30116 __718: 30117 __719: 30118 __720: 30119 __721: 30120 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30121 goto __725 30122 } 30123 goto __716 30124 __725: 30125 ; 30126 goto ANYNL02 30127 30128 __722: 30129 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30130 goto __726 30131 } 30132 ncount3 = 1 30133 __726: 30134 ; 30135 // Fall through 30136 30137 ANYNL02: 30138 __723: 30139 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSQUERY)) { 30140 goto __727 30141 } 30142 30143 active_count-- // Remove non-match possibility 30144 next_active_state -= 12 30145 __727: 30146 ; 30147 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30148 goto __728 30149 } 30150 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30151 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30152 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount3 30153 next_new_state += 12 30154 goto __729 30155 __728: 30156 return -43 30157 __729: 30158 ; 30159 goto __716 30160 30161 __724: 30162 goto __716 30163 __716: 30164 ; 30165 __715: 30166 ; 30167 goto __89 30168 30169 //----------------------------------------------------------------- 30170 __170: 30171 __171: 30172 __172: 30173 count = 2 30174 goto QS4 30175 30176 __173: 30177 __174: 30178 __175: 30179 count = 0 30180 30181 QS4: 30182 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30183 goto __730 30184 } 30185 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30186 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30187 next_active_state += 12 30188 goto __731 30189 __730: 30190 return -43 30191 __731: 30192 ; 30193 if !(clen > 0) { 30194 goto __732 30195 } 30196 30197 switch c { 30198 case Tuint32_t('\012'): 30199 goto __734 30200 case Tuint32_t('\013'): 30201 goto __735 30202 case Tuint32_t('\014'): 30203 goto __736 30204 case Tuint32_t('\015'): 30205 goto __737 30206 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30207 goto __738 30208 case Tuint32_t(0x2028): 30209 goto __739 /* LINE SEPARATOR */ 30210 case Tuint32_t(0x2029): 30211 goto __740 30212 30213 default: 30214 goto __741 30215 } 30216 goto __733 30217 30218 __734: 30219 __735: 30220 __736: 30221 __737: 30222 __738: 30223 __739: /* LINE SEPARATOR */ 30224 __740: 30225 OK5 = DTRUE 30226 goto __733 30227 30228 __741: 30229 OK5 = DFALSE 30230 goto __733 30231 __733: 30232 ; 30233 if !(OK5 == libc.Bool32(d == OP_VSPACE)) { 30234 goto __742 30235 } 30236 30237 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30238 goto __743 30239 } 30240 30241 active_count-- // Remove non-match possibility 30242 next_active_state -= 12 30243 __743: 30244 ; 30245 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30246 goto __744 30247 } 30248 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30249 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30250 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30251 next_new_state += 12 30252 goto __745 30253 __744: 30254 return -43 30255 __745: 30256 ; 30257 __742: 30258 ; 30259 __732: 30260 ; 30261 goto __89 30262 30263 //----------------------------------------------------------------- 30264 __176: 30265 __177: 30266 __178: 30267 count = 2 30268 goto QS5 30269 30270 __179: 30271 __180: 30272 __181: 30273 count = 0 30274 30275 QS5: 30276 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30277 goto __746 30278 } 30279 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30280 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30281 next_active_state += 12 30282 goto __747 30283 __746: 30284 return -43 30285 __747: 30286 ; 30287 if !(clen > 0) { 30288 goto __748 30289 } 30290 30291 switch c { 30292 case Tuint32_t('\011'): 30293 goto __750 30294 case Tuint32_t('\040'): 30295 goto __751 30296 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 30297 goto __752 30298 case Tuint32_t(0x1680): 30299 goto __753 /* OGHAM SPACE MARK */ 30300 case Tuint32_t(0x180e): 30301 goto __754 /* MONGOLIAN VOWEL SEPARATOR */ 30302 case Tuint32_t(0x2000): 30303 goto __755 /* EN QUAD */ 30304 case Tuint32_t(0x2001): 30305 goto __756 /* EM QUAD */ 30306 case Tuint32_t(0x2002): 30307 goto __757 /* EN SPACE */ 30308 case Tuint32_t(0x2003): 30309 goto __758 /* EM SPACE */ 30310 case Tuint32_t(0x2004): 30311 goto __759 /* THREE-PER-EM SPACE */ 30312 case Tuint32_t(0x2005): 30313 goto __760 /* FOUR-PER-EM SPACE */ 30314 case Tuint32_t(0x2006): 30315 goto __761 /* SIX-PER-EM SPACE */ 30316 case Tuint32_t(0x2007): 30317 goto __762 /* FIGURE SPACE */ 30318 case Tuint32_t(0x2008): 30319 goto __763 /* PUNCTUATION SPACE */ 30320 case Tuint32_t(0x2009): 30321 goto __764 /* THIN SPACE */ 30322 case Tuint32_t(0x200A): 30323 goto __765 /* HAIR SPACE */ 30324 case Tuint32_t(0x202f): 30325 goto __766 /* NARROW NO-BREAK SPACE */ 30326 case Tuint32_t(0x205f): 30327 goto __767 /* MEDIUM MATHEMATICAL SPACE */ 30328 case Tuint32_t(0x3000): 30329 goto __768 30330 30331 default: 30332 goto __769 30333 } 30334 goto __749 30335 30336 __750: 30337 __751: 30338 __752: 30339 __753: /* OGHAM SPACE MARK */ 30340 __754: /* MONGOLIAN VOWEL SEPARATOR */ 30341 __755: /* EN QUAD */ 30342 __756: /* EM QUAD */ 30343 __757: /* EN SPACE */ 30344 __758: /* EM SPACE */ 30345 __759: /* THREE-PER-EM SPACE */ 30346 __760: /* FOUR-PER-EM SPACE */ 30347 __761: /* SIX-PER-EM SPACE */ 30348 __762: /* FIGURE SPACE */ 30349 __763: /* PUNCTUATION SPACE */ 30350 __764: /* THIN SPACE */ 30351 __765: /* HAIR SPACE */ 30352 __766: /* NARROW NO-BREAK SPACE */ 30353 __767: /* MEDIUM MATHEMATICAL SPACE */ 30354 __768: 30355 OK6 = DTRUE 30356 goto __749 30357 30358 __769: 30359 OK6 = DFALSE 30360 goto __749 30361 __749: 30362 ; 30363 30364 if !(OK6 == libc.Bool32(d == OP_HSPACE)) { 30365 goto __770 30366 } 30367 30368 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30369 goto __771 30370 } 30371 30372 active_count-- // Remove non-match possibility 30373 next_active_state -= 12 30374 __771: 30375 ; 30376 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30377 goto __772 30378 } 30379 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30380 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30381 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30382 next_new_state += 12 30383 goto __773 30384 __772: 30385 return -43 30386 __773: 30387 ; 30388 __770: 30389 ; 30390 __748: 30391 ; 30392 goto __89 30393 30394 //----------------------------------------------------------------- 30395 __182: 30396 __183: 30397 __184: 30398 __185: 30399 if !(codevalue != Tuint32_t(DOP_PROP_EXTRA+OP_TYPEEXACT)) { 30400 goto __774 30401 } 30402 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30403 goto __775 30404 } 30405 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30406 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30407 next_active_state += 12 30408 goto __776 30409 __775: 30410 return -43 30411 __776: 30412 ; 30413 __774: 30414 ; 30415 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30416 if !(clen > 0) { 30417 goto __777 30418 } 30419 30420 prop3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 30421 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))) { 30422 case DPT_ANY: 30423 goto __779 30424 30425 case DPT_LAMP: 30426 goto __780 30427 30428 case DPT_GC: 30429 goto __781 30430 30431 case DPT_PC: 30432 goto __782 30433 30434 case DPT_SC: 30435 goto __783 30436 30437 case DPT_SCX: 30438 goto __784 30439 30440 // These are specials for combination cases. 30441 30442 case DPT_ALNUM: 30443 goto __785 30444 30445 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30446 // which means that Perl space and POSIX space are now identical. PCRE 30447 // was changed at release 8.34. 30448 30449 case DPT_SPACE: 30450 goto __786 // Perl space 30451 case DPT_PXSPACE: 30452 goto __787 30453 30454 case DPT_WORD: 30455 goto __788 30456 30457 case DPT_CLIST: 30458 goto __789 30459 30460 case DPT_UCNC: 30461 goto __790 30462 30463 case DPT_BIDICL: 30464 goto __791 30465 30466 case DPT_BOOL: 30467 goto __792 30468 30469 // Should never occur, but keep compilers from grumbling. 30470 30471 default: 30472 goto __793 30473 } 30474 goto __778 30475 30476 __779: 30477 OK7 = DTRUE 30478 goto __778 30479 30480 __780: 30481 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Lt) 30482 goto __778 30483 30484 __781: 30485 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30486 goto __778 30487 30488 __782: 30489 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30490 goto __778 30491 30492 __783: 30493 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30494 goto __778 30495 30496 __784: 30497 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))%32)) != Tuint32_t(0)) 30498 goto __778 30499 30500 // These are specials for combination cases. 30501 30502 __785: 30503 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_N) 30504 goto __778 30505 30506 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30507 // which means that Perl space and POSIX space are now identical. PCRE 30508 // was changed at release 8.34. 30509 30510 __786: // Perl space 30511 __787: // POSIX space 30512 switch c { 30513 case Tuint32_t('\011'): 30514 goto __795 30515 case Tuint32_t('\040'): 30516 goto __796 30517 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 30518 goto __797 30519 case Tuint32_t(0x1680): 30520 goto __798 /* OGHAM SPACE MARK */ 30521 case Tuint32_t(0x180e): 30522 goto __799 /* MONGOLIAN VOWEL SEPARATOR */ 30523 case Tuint32_t(0x2000): 30524 goto __800 /* EN QUAD */ 30525 case Tuint32_t(0x2001): 30526 goto __801 /* EM QUAD */ 30527 case Tuint32_t(0x2002): 30528 goto __802 /* EN SPACE */ 30529 case Tuint32_t(0x2003): 30530 goto __803 /* EM SPACE */ 30531 case Tuint32_t(0x2004): 30532 goto __804 /* THREE-PER-EM SPACE */ 30533 case Tuint32_t(0x2005): 30534 goto __805 /* FOUR-PER-EM SPACE */ 30535 case Tuint32_t(0x2006): 30536 goto __806 /* SIX-PER-EM SPACE */ 30537 case Tuint32_t(0x2007): 30538 goto __807 /* FIGURE SPACE */ 30539 case Tuint32_t(0x2008): 30540 goto __808 /* PUNCTUATION SPACE */ 30541 case Tuint32_t(0x2009): 30542 goto __809 /* THIN SPACE */ 30543 case Tuint32_t(0x200A): 30544 goto __810 /* HAIR SPACE */ 30545 case Tuint32_t(0x202f): 30546 goto __811 /* NARROW NO-BREAK SPACE */ 30547 case Tuint32_t(0x205f): 30548 goto __812 /* MEDIUM MATHEMATICAL SPACE */ 30549 case Tuint32_t(0x3000): 30550 goto __813 30551 case Tuint32_t('\012'): 30552 goto __814 30553 case Tuint32_t('\013'): 30554 goto __815 30555 case Tuint32_t('\014'): 30556 goto __816 30557 case Tuint32_t('\015'): 30558 goto __817 30559 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30560 goto __818 30561 case Tuint32_t(0x2028): 30562 goto __819 /* LINE SEPARATOR */ 30563 case Tuint32_t(0x2029): 30564 goto __820 30565 30566 default: 30567 goto __821 30568 } 30569 goto __794 30570 30571 __795: 30572 __796: 30573 __797: 30574 __798: /* OGHAM SPACE MARK */ 30575 __799: /* MONGOLIAN VOWEL SEPARATOR */ 30576 __800: /* EN QUAD */ 30577 __801: /* EM QUAD */ 30578 __802: /* EN SPACE */ 30579 __803: /* EM SPACE */ 30580 __804: /* THREE-PER-EM SPACE */ 30581 __805: /* FOUR-PER-EM SPACE */ 30582 __806: /* SIX-PER-EM SPACE */ 30583 __807: /* FIGURE SPACE */ 30584 __808: /* PUNCTUATION SPACE */ 30585 __809: /* THIN SPACE */ 30586 __810: /* HAIR SPACE */ 30587 __811: /* NARROW NO-BREAK SPACE */ 30588 __812: /* MEDIUM MATHEMATICAL SPACE */ 30589 __813: 30590 __814: 30591 __815: 30592 __816: 30593 __817: 30594 __818: 30595 __819: /* LINE SEPARATOR */ 30596 __820: 30597 OK7 = DTRUE 30598 goto __794 30599 30600 __821: 30601 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_Z) 30602 goto __794 30603 __794: 30604 ; 30605 goto __778 30606 30607 __788: 30608 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 30609 goto __778 30610 30611 __789: 30612 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))*4 30613 __822: 30614 30615 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 30616 goto __825 30617 } 30618 OK7 = DFALSE 30619 goto __824 30620 __825: 30621 ; 30622 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 30623 goto __826 30624 } 30625 OK7 = DTRUE 30626 goto __824 30627 __826: 30628 ; 30629 goto __823 30630 __823: 30631 goto __822 30632 goto __824 30633 __824: 30634 ; 30635 goto __778 30636 30637 __790: 30638 OK7 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 30639 goto __778 30640 30641 __791: 30642 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30643 goto __778 30644 30645 __792: 30646 OK7 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))%32)) != Tuint32_t(0)) 30647 goto __778 30648 30649 // Should never occur, but keep compilers from grumbling. 30650 30651 __793: 30652 OK7 = libc.Bool32(codevalue != OP_PROP) 30653 goto __778 30654 __778: 30655 ; 30656 30657 if !(OK7 == libc.Bool32(d == OP_PROP)) { 30658 goto __827 30659 } 30660 30661 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSUPTO)) { 30662 goto __828 30663 } 30664 30665 active_count-- // Remove non-match possibility 30666 next_active_state -= 12 30667 __828: 30668 ; 30669 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30670 goto __829 30671 } 30672 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30673 goto __831 30674 } 30675 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30676 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30677 next_new_state += 12 30678 goto __832 30679 __831: 30680 return -43 30681 __832: 30682 ; 30683 goto __830 30684 __829: 30685 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30686 goto __833 30687 } 30688 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 30689 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30690 next_new_state += 12 30691 goto __834 30692 __833: 30693 return -43 30694 __834: 30695 ; 30696 __830: 30697 ; 30698 __827: 30699 ; 30700 __777: 30701 ; 30702 goto __89 30703 30704 //----------------------------------------------------------------- 30705 __186: 30706 __187: 30707 __188: 30708 __189: 30709 if !(codevalue != Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEEXACT)) { 30710 goto __835 30711 } 30712 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30713 goto __836 30714 } 30715 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30716 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30717 next_active_state += 12 30718 goto __837 30719 __836: 30720 return -43 30721 __837: 30722 ; 30723 __835: 30724 ; 30725 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30726 if !(clen > 0) { 30727 goto __838 30728 } 30729 30730 *(*int32)(unsafe.Pointer(bp + 8 /* ncount4 */)) = 0 30731 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSUPTO)) { 30732 goto __839 30733 } 30734 30735 active_count-- // Remove non-match possibility 30736 next_active_state -= 12 30737 __839: 30738 ; 30739 nptr = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30740 bp+8) 30741 if !(nptr >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 30742 goto __840 30743 } 30744 reset_could_continue = DTRUE 30745 __840: 30746 ; 30747 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30748 goto __841 30749 } 30750 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30751 goto __843 30752 } 30753 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30754 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30755 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30756 next_new_state += 12 30757 goto __844 30758 __843: 30759 return -43 30760 __844: 30761 ; 30762 goto __842 30763 __841: 30764 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30765 goto __845 30766 } 30767 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30768 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30769 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30770 next_new_state += 12 30771 goto __846 30772 __845: 30773 return -43 30774 __846: 30775 ; 30776 __842: 30777 ; 30778 __838: 30779 ; 30780 goto __89 30781 30782 //----------------------------------------------------------------- 30783 __190: 30784 __191: 30785 __192: 30786 __193: 30787 if !(codevalue != Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEEXACT)) { 30788 goto __847 30789 } 30790 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30791 goto __848 30792 } 30793 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30794 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30795 next_active_state += 12 30796 goto __849 30797 __848: 30798 return -43 30799 __849: 30800 ; 30801 __847: 30802 ; 30803 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30804 if !(clen > 0) { 30805 goto __850 30806 } 30807 ncount5 = 0 30808 switch c { 30809 case Tuint32_t('\013'): 30810 goto __852 30811 case Tuint32_t('\014'): 30812 goto __853 30813 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30814 goto __854 30815 case Tuint32_t(0x2028): 30816 goto __855 30817 case Tuint32_t(0x2029): 30818 goto __856 30819 30820 case Tuint32_t('\015'): 30821 goto __857 30822 case Tuint32_t('\012'): 30823 goto __858 30824 30825 default: 30826 goto __859 30827 } 30828 goto __851 30829 30830 __852: 30831 __853: 30832 __854: 30833 __855: 30834 __856: 30835 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30836 goto __860 30837 } 30838 goto __851 30839 __860: 30840 ; 30841 goto ANYNL03 30842 30843 __857: 30844 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30845 goto __861 30846 } 30847 ncount5 = 1 30848 __861: 30849 ; 30850 // Fall through 30851 30852 ANYNL03: 30853 __858: 30854 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSUPTO)) { 30855 goto __862 30856 } 30857 30858 active_count-- // Remove non-match possibility 30859 next_active_state -= 12 30860 __862: 30861 ; 30862 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30863 goto __863 30864 } 30865 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30866 goto __865 30867 } 30868 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30869 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30870 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30871 next_new_state += 12 30872 goto __866 30873 __865: 30874 return -43 30875 __866: 30876 ; 30877 goto __864 30878 __863: 30879 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30880 goto __867 30881 } 30882 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30883 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30884 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30885 next_new_state += 12 30886 goto __868 30887 __867: 30888 return -43 30889 __868: 30890 ; 30891 __864: 30892 ; 30893 goto __851 30894 30895 __859: 30896 goto __851 30897 __851: 30898 ; 30899 __850: 30900 ; 30901 goto __89 30902 30903 //----------------------------------------------------------------- 30904 __194: 30905 __195: 30906 __196: 30907 __197: 30908 if !(codevalue != Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEEXACT)) { 30909 goto __869 30910 } 30911 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30912 goto __870 30913 } 30914 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30915 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30916 next_active_state += 12 30917 goto __871 30918 __870: 30919 return -43 30920 __871: 30921 ; 30922 __869: 30923 ; 30924 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30925 if !(clen > 0) { 30926 goto __872 30927 } 30928 30929 switch c { 30930 case Tuint32_t('\012'): 30931 goto __874 30932 case Tuint32_t('\013'): 30933 goto __875 30934 case Tuint32_t('\014'): 30935 goto __876 30936 case Tuint32_t('\015'): 30937 goto __877 30938 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30939 goto __878 30940 case Tuint32_t(0x2028): 30941 goto __879 /* LINE SEPARATOR */ 30942 case Tuint32_t(0x2029): 30943 goto __880 30944 30945 default: 30946 goto __881 30947 } 30948 goto __873 30949 30950 __874: 30951 __875: 30952 __876: 30953 __877: 30954 __878: 30955 __879: /* LINE SEPARATOR */ 30956 __880: 30957 OK8 = DTRUE 30958 goto __873 30959 30960 __881: 30961 OK8 = DFALSE 30962 __873: 30963 ; 30964 30965 if !(OK8 == libc.Bool32(d == OP_VSPACE)) { 30966 goto __882 30967 } 30968 30969 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSUPTO)) { 30970 goto __883 30971 } 30972 30973 active_count-- // Remove non-match possibility 30974 next_active_state -= 12 30975 __883: 30976 ; 30977 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30978 goto __884 30979 } 30980 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30981 goto __886 30982 } 30983 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30984 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30985 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30986 next_new_state += 12 30987 goto __887 30988 __886: 30989 return -43 30990 __887: 30991 ; 30992 goto __885 30993 __884: 30994 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30995 goto __888 30996 } 30997 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30998 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30999 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31000 next_new_state += 12 31001 goto __889 31002 __888: 31003 return -43 31004 __889: 31005 ; 31006 __885: 31007 ; 31008 __882: 31009 ; 31010 __872: 31011 ; 31012 goto __89 31013 31014 //----------------------------------------------------------------- 31015 __198: 31016 __199: 31017 __200: 31018 __201: 31019 if !(codevalue != Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEEXACT)) { 31020 goto __890 31021 } 31022 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31023 goto __891 31024 } 31025 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 31026 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31027 next_active_state += 12 31028 goto __892 31029 __891: 31030 return -43 31031 __892: 31032 ; 31033 __890: 31034 ; 31035 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 31036 if !(clen > 0) { 31037 goto __893 31038 } 31039 31040 switch c { 31041 case Tuint32_t('\011'): 31042 goto __895 31043 case Tuint32_t('\040'): 31044 goto __896 31045 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31046 goto __897 31047 case Tuint32_t(0x1680): 31048 goto __898 /* OGHAM SPACE MARK */ 31049 case Tuint32_t(0x180e): 31050 goto __899 /* MONGOLIAN VOWEL SEPARATOR */ 31051 case Tuint32_t(0x2000): 31052 goto __900 /* EN QUAD */ 31053 case Tuint32_t(0x2001): 31054 goto __901 /* EM QUAD */ 31055 case Tuint32_t(0x2002): 31056 goto __902 /* EN SPACE */ 31057 case Tuint32_t(0x2003): 31058 goto __903 /* EM SPACE */ 31059 case Tuint32_t(0x2004): 31060 goto __904 /* THREE-PER-EM SPACE */ 31061 case Tuint32_t(0x2005): 31062 goto __905 /* FOUR-PER-EM SPACE */ 31063 case Tuint32_t(0x2006): 31064 goto __906 /* SIX-PER-EM SPACE */ 31065 case Tuint32_t(0x2007): 31066 goto __907 /* FIGURE SPACE */ 31067 case Tuint32_t(0x2008): 31068 goto __908 /* PUNCTUATION SPACE */ 31069 case Tuint32_t(0x2009): 31070 goto __909 /* THIN SPACE */ 31071 case Tuint32_t(0x200A): 31072 goto __910 /* HAIR SPACE */ 31073 case Tuint32_t(0x202f): 31074 goto __911 /* NARROW NO-BREAK SPACE */ 31075 case Tuint32_t(0x205f): 31076 goto __912 /* MEDIUM MATHEMATICAL SPACE */ 31077 case Tuint32_t(0x3000): 31078 goto __913 31079 31080 default: 31081 goto __914 31082 } 31083 goto __894 31084 31085 __895: 31086 __896: 31087 __897: 31088 __898: /* OGHAM SPACE MARK */ 31089 __899: /* MONGOLIAN VOWEL SEPARATOR */ 31090 __900: /* EN QUAD */ 31091 __901: /* EM QUAD */ 31092 __902: /* EN SPACE */ 31093 __903: /* EM SPACE */ 31094 __904: /* THREE-PER-EM SPACE */ 31095 __905: /* FOUR-PER-EM SPACE */ 31096 __906: /* SIX-PER-EM SPACE */ 31097 __907: /* FIGURE SPACE */ 31098 __908: /* PUNCTUATION SPACE */ 31099 __909: /* THIN SPACE */ 31100 __910: /* HAIR SPACE */ 31101 __911: /* NARROW NO-BREAK SPACE */ 31102 __912: /* MEDIUM MATHEMATICAL SPACE */ 31103 __913: 31104 OK9 = DTRUE 31105 goto __894 31106 31107 __914: 31108 OK9 = DFALSE 31109 goto __894 31110 __894: 31111 ; 31112 31113 if !(OK9 == libc.Bool32(d == OP_HSPACE)) { 31114 goto __915 31115 } 31116 31117 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSUPTO)) { 31118 goto __916 31119 } 31120 31121 active_count-- // Remove non-match possibility 31122 next_active_state -= 12 31123 __916: 31124 ; 31125 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 31126 goto __917 31127 } 31128 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31129 goto __919 31130 } 31131 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 31132 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31133 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31134 next_new_state += 12 31135 goto __920 31136 __919: 31137 return -43 31138 __920: 31139 ; 31140 goto __918 31141 __917: 31142 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31143 goto __921 31144 } 31145 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 31146 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31147 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31148 next_new_state += 12 31149 goto __922 31150 __921: 31151 return -43 31152 __922: 31153 ; 31154 __918: 31155 ; 31156 __915: 31157 ; 31158 __893: 31159 ; 31160 goto __89 31161 31162 // ========================================================================== 31163 // These opcodes are followed by a character that is usually compared 31164 // to the current subject character; it is loaded into d. We still get 31165 // here even if there is no subject character, because in some cases zero 31166 // repetitions are permitted. 31167 31168 //----------------------------------------------------------------- 31169 __202: 31170 if !(clen > 0 && c == d) { 31171 goto __923 31172 } 31173 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31174 goto __924 31175 } 31176 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31177 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31178 next_new_state += 12 31179 goto __925 31180 __924: 31181 return -43 31182 __925: 31183 ; 31184 __923: 31185 ; 31186 goto __89 31187 31188 //----------------------------------------------------------------- 31189 __203: 31190 if !(clen == 0) { 31191 goto __926 31192 } 31193 goto __89 31194 __926: 31195 ; 31196 31197 if !(utf_or_ucp != 0) { 31198 goto __927 31199 } 31200 31201 if !(c == d) { 31202 goto __929 31203 } 31204 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31205 goto __931 31206 } 31207 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31208 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31209 next_new_state += 12 31210 goto __932 31211 __931: 31212 return -43 31213 __932: 31214 ; 31215 goto __930 31216 __929: 31217 31218 if !(c < Tuint32_t(128)) { 31219 goto __933 31220 } 31221 othercase = uint32(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(c)))) 31222 goto __934 31223 __933: 31224 othercase = Tuint32_t(int32(c) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31225 __934: 31226 ; 31227 if !(d == othercase) { 31228 goto __935 31229 } 31230 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31231 goto __936 31232 } 31233 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31234 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31235 next_new_state += 12 31236 goto __937 31237 __936: 31238 return -43 31239 __937: 31240 ; 31241 __935: 31242 ; 31243 __930: 31244 ; 31245 goto __928 31246 __927: 31247 /* Not UTF or UCP mode */ 31248 31249 if !(int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(c)))) == int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(d))))) { 31250 goto __938 31251 } 31252 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31253 goto __939 31254 } 31255 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 31256 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31257 next_new_state += 12 31258 goto __940 31259 __939: 31260 return -43 31261 __940: 31262 ; 31263 __938: 31264 ; 31265 __928: 31266 ; 31267 goto __89 31268 31269 //----------------------------------------------------------------- 31270 // This is a tricky one because it can match more than one character. 31271 // Find out how many characters to skip, and then set up a negative state 31272 // to wait for them to pass before continuing. 31273 31274 __204: 31275 if !(clen > 0) { 31276 goto __941 31277 } 31278 31279 *(*int32)(unsafe.Pointer(bp + 12 /* ncount6 */)) = 0 31280 nptr1 = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, 31281 end_subject, utf, bp+12) 31282 if !(nptr1 >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31283 goto __942 31284 } 31285 reset_could_continue = DTRUE 31286 __942: 31287 ; 31288 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31289 goto __943 31290 } 31291 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31292 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31293 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 12)) 31294 next_new_state += 12 31295 goto __944 31296 __943: 31297 return -43 31298 __944: 31299 ; 31300 __941: 31301 ; 31302 goto __89 31303 31304 //----------------------------------------------------------------- 31305 // This is a tricky like EXTUNI because it too can match more than one 31306 // character (when CR is followed by LF). In this case, set up a negative 31307 // state to wait for one character to pass before continuing. 31308 31309 __205: 31310 if !(clen > 0) { 31311 goto __945 31312 } 31313 switch c { 31314 case Tuint32_t('\013'): 31315 goto __947 31316 case Tuint32_t('\014'): 31317 goto __948 31318 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31319 goto __949 31320 case Tuint32_t(0x2028): 31321 goto __950 31322 case Tuint32_t(0x2029): 31323 goto __951 31324 // Fall through 31325 31326 case Tuint32_t('\012'): 31327 goto __952 31328 31329 case Tuint32_t('\015'): 31330 goto __953 31331 } 31332 goto __946 31333 31334 __947: 31335 __948: 31336 __949: 31337 __950: 31338 __951: 31339 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 31340 goto __954 31341 } 31342 goto __946 31343 __954: 31344 ; 31345 // Fall through 31346 31347 __952: 31348 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31349 goto __955 31350 } 31351 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31352 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31353 next_new_state += 12 31354 goto __956 31355 __955: 31356 return -43 31357 __956: 31358 ; 31359 goto __946 31360 31361 __953: 31362 if !(ptr+uintptr(1) >= end_subject) { 31363 goto __957 31364 } 31365 31366 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31367 goto __959 31368 } 31369 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31370 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31371 next_new_state += 12 31372 goto __960 31373 __959: 31374 return -43 31375 __960: 31376 ; 31377 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31378 goto __961 31379 } 31380 reset_could_continue = DTRUE 31381 __961: 31382 ; 31383 goto __958 31384 __957: 31385 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 31386 goto __962 31387 } 31388 31389 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31390 goto __964 31391 } 31392 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31393 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31394 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 31395 next_new_state += 12 31396 goto __965 31397 __964: 31398 return -43 31399 __965: 31400 ; 31401 goto __963 31402 __962: 31403 31404 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31405 goto __966 31406 } 31407 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31408 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31409 next_new_state += 12 31410 goto __967 31411 __966: 31412 return -43 31413 __967: 31414 ; 31415 __963: 31416 ; 31417 __958: 31418 ; 31419 goto __946 31420 __946: 31421 ; 31422 __945: 31423 ; 31424 goto __89 31425 31426 //----------------------------------------------------------------- 31427 __206: 31428 if !(clen > 0) { 31429 goto __968 31430 } 31431 switch c { 31432 case Tuint32_t('\012'): 31433 goto __970 31434 case Tuint32_t('\013'): 31435 goto __971 31436 case Tuint32_t('\014'): 31437 goto __972 31438 case Tuint32_t('\015'): 31439 goto __973 31440 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31441 goto __974 31442 case Tuint32_t(0x2028): 31443 goto __975 /* LINE SEPARATOR */ 31444 case Tuint32_t(0x2029): 31445 goto __976 31446 31447 default: 31448 goto __977 31449 } 31450 goto __969 31451 31452 __970: 31453 __971: 31454 __972: 31455 __973: 31456 __974: 31457 __975: /* LINE SEPARATOR */ 31458 __976: 31459 goto __969 31460 31461 __977: 31462 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31463 goto __978 31464 } 31465 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31466 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31467 next_new_state += 12 31468 goto __979 31469 __978: 31470 return -43 31471 __979: 31472 ; 31473 goto __969 31474 __969: 31475 ; 31476 __968: 31477 ; 31478 goto __89 31479 31480 //----------------------------------------------------------------- 31481 __207: 31482 if !(clen > 0) { 31483 goto __980 31484 } 31485 switch c { 31486 case Tuint32_t('\012'): 31487 goto __982 31488 case Tuint32_t('\013'): 31489 goto __983 31490 case Tuint32_t('\014'): 31491 goto __984 31492 case Tuint32_t('\015'): 31493 goto __985 31494 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31495 goto __986 31496 case Tuint32_t(0x2028): 31497 goto __987 /* LINE SEPARATOR */ 31498 case Tuint32_t(0x2029): 31499 goto __988 31500 31501 default: 31502 goto __989 31503 } 31504 goto __981 31505 31506 __982: 31507 __983: 31508 __984: 31509 __985: 31510 __986: 31511 __987: /* LINE SEPARATOR */ 31512 __988: 31513 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31514 goto __990 31515 } 31516 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31517 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31518 next_new_state += 12 31519 goto __991 31520 __990: 31521 return -43 31522 __991: 31523 ; 31524 goto __981 31525 31526 __989: 31527 goto __981 31528 __981: 31529 ; 31530 __980: 31531 ; 31532 goto __89 31533 31534 //----------------------------------------------------------------- 31535 __208: 31536 if !(clen > 0) { 31537 goto __992 31538 } 31539 switch c { 31540 case Tuint32_t('\011'): 31541 goto __994 31542 case Tuint32_t('\040'): 31543 goto __995 31544 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31545 goto __996 31546 case Tuint32_t(0x1680): 31547 goto __997 /* OGHAM SPACE MARK */ 31548 case Tuint32_t(0x180e): 31549 goto __998 /* MONGOLIAN VOWEL SEPARATOR */ 31550 case Tuint32_t(0x2000): 31551 goto __999 /* EN QUAD */ 31552 case Tuint32_t(0x2001): 31553 goto __1000 /* EM QUAD */ 31554 case Tuint32_t(0x2002): 31555 goto __1001 /* EN SPACE */ 31556 case Tuint32_t(0x2003): 31557 goto __1002 /* EM SPACE */ 31558 case Tuint32_t(0x2004): 31559 goto __1003 /* THREE-PER-EM SPACE */ 31560 case Tuint32_t(0x2005): 31561 goto __1004 /* FOUR-PER-EM SPACE */ 31562 case Tuint32_t(0x2006): 31563 goto __1005 /* SIX-PER-EM SPACE */ 31564 case Tuint32_t(0x2007): 31565 goto __1006 /* FIGURE SPACE */ 31566 case Tuint32_t(0x2008): 31567 goto __1007 /* PUNCTUATION SPACE */ 31568 case Tuint32_t(0x2009): 31569 goto __1008 /* THIN SPACE */ 31570 case Tuint32_t(0x200A): 31571 goto __1009 /* HAIR SPACE */ 31572 case Tuint32_t(0x202f): 31573 goto __1010 /* NARROW NO-BREAK SPACE */ 31574 case Tuint32_t(0x205f): 31575 goto __1011 /* MEDIUM MATHEMATICAL SPACE */ 31576 case Tuint32_t(0x3000): 31577 goto __1012 31578 31579 default: 31580 goto __1013 31581 } 31582 goto __993 31583 31584 __994: 31585 __995: 31586 __996: 31587 __997: /* OGHAM SPACE MARK */ 31588 __998: /* MONGOLIAN VOWEL SEPARATOR */ 31589 __999: /* EN QUAD */ 31590 __1000: /* EM QUAD */ 31591 __1001: /* EN SPACE */ 31592 __1002: /* EM SPACE */ 31593 __1003: /* THREE-PER-EM SPACE */ 31594 __1004: /* FOUR-PER-EM SPACE */ 31595 __1005: /* SIX-PER-EM SPACE */ 31596 __1006: /* FIGURE SPACE */ 31597 __1007: /* PUNCTUATION SPACE */ 31598 __1008: /* THIN SPACE */ 31599 __1009: /* HAIR SPACE */ 31600 __1010: /* NARROW NO-BREAK SPACE */ 31601 __1011: /* MEDIUM MATHEMATICAL SPACE */ 31602 __1012: 31603 goto __993 31604 31605 __1013: 31606 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31607 goto __1014 31608 } 31609 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31610 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31611 next_new_state += 12 31612 goto __1015 31613 __1014: 31614 return -43 31615 __1015: 31616 ; 31617 goto __993 31618 __993: 31619 ; 31620 __992: 31621 ; 31622 goto __89 31623 31624 //----------------------------------------------------------------- 31625 __209: 31626 if !(clen > 0) { 31627 goto __1016 31628 } 31629 switch c { 31630 case Tuint32_t('\011'): 31631 goto __1018 31632 case Tuint32_t('\040'): 31633 goto __1019 31634 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31635 goto __1020 31636 case Tuint32_t(0x1680): 31637 goto __1021 /* OGHAM SPACE MARK */ 31638 case Tuint32_t(0x180e): 31639 goto __1022 /* MONGOLIAN VOWEL SEPARATOR */ 31640 case Tuint32_t(0x2000): 31641 goto __1023 /* EN QUAD */ 31642 case Tuint32_t(0x2001): 31643 goto __1024 /* EM QUAD */ 31644 case Tuint32_t(0x2002): 31645 goto __1025 /* EN SPACE */ 31646 case Tuint32_t(0x2003): 31647 goto __1026 /* EM SPACE */ 31648 case Tuint32_t(0x2004): 31649 goto __1027 /* THREE-PER-EM SPACE */ 31650 case Tuint32_t(0x2005): 31651 goto __1028 /* FOUR-PER-EM SPACE */ 31652 case Tuint32_t(0x2006): 31653 goto __1029 /* SIX-PER-EM SPACE */ 31654 case Tuint32_t(0x2007): 31655 goto __1030 /* FIGURE SPACE */ 31656 case Tuint32_t(0x2008): 31657 goto __1031 /* PUNCTUATION SPACE */ 31658 case Tuint32_t(0x2009): 31659 goto __1032 /* THIN SPACE */ 31660 case Tuint32_t(0x200A): 31661 goto __1033 /* HAIR SPACE */ 31662 case Tuint32_t(0x202f): 31663 goto __1034 /* NARROW NO-BREAK SPACE */ 31664 case Tuint32_t(0x205f): 31665 goto __1035 /* MEDIUM MATHEMATICAL SPACE */ 31666 case Tuint32_t(0x3000): 31667 goto __1036 31668 31669 default: 31670 goto __1037 31671 } 31672 goto __1017 31673 31674 __1018: 31675 __1019: 31676 __1020: 31677 __1021: /* OGHAM SPACE MARK */ 31678 __1022: /* MONGOLIAN VOWEL SEPARATOR */ 31679 __1023: /* EN QUAD */ 31680 __1024: /* EM QUAD */ 31681 __1025: /* EN SPACE */ 31682 __1026: /* EM SPACE */ 31683 __1027: /* THREE-PER-EM SPACE */ 31684 __1028: /* FOUR-PER-EM SPACE */ 31685 __1029: /* SIX-PER-EM SPACE */ 31686 __1030: /* FIGURE SPACE */ 31687 __1031: /* PUNCTUATION SPACE */ 31688 __1032: /* THIN SPACE */ 31689 __1033: /* HAIR SPACE */ 31690 __1034: /* NARROW NO-BREAK SPACE */ 31691 __1035: /* MEDIUM MATHEMATICAL SPACE */ 31692 __1036: 31693 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31694 goto __1038 31695 } 31696 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31697 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31698 next_new_state += 12 31699 goto __1039 31700 __1038: 31701 return -43 31702 __1039: 31703 ; 31704 goto __1017 31705 31706 __1037: 31707 goto __1017 31708 __1017: 31709 ; 31710 __1016: 31711 ; 31712 goto __89 31713 31714 //----------------------------------------------------------------- 31715 // Match a negated single character casefully. 31716 31717 __210: 31718 if !(clen > 0 && c != d) { 31719 goto __1040 31720 } 31721 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31722 goto __1041 31723 } 31724 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31725 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31726 next_new_state += 12 31727 goto __1042 31728 __1041: 31729 return -43 31730 __1042: 31731 ; 31732 __1040: 31733 ; 31734 goto __89 31735 31736 //----------------------------------------------------------------- 31737 // Match a negated single character caselessly. 31738 31739 __211: 31740 if !(clen > 0) { 31741 goto __1043 31742 } 31743 31744 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31745 goto __1044 31746 } 31747 otherd = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31748 goto __1045 31749 __1044: 31750 otherd = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31751 __1045: 31752 ; 31753 if !(c != d && c != otherd) { 31754 goto __1046 31755 } 31756 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31757 goto __1047 31758 } 31759 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31760 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31761 next_new_state += 12 31762 goto __1048 31763 __1047: 31764 return -43 31765 __1048: 31766 ; 31767 __1046: 31768 ; 31769 __1043: 31770 ; 31771 goto __89 31772 31773 //----------------------------------------------------------------- 31774 __212: 31775 __213: 31776 __214: 31777 __215: 31778 __216: 31779 __217: 31780 caseless = DTRUE 31781 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31782 31783 // Fall through 31784 __218: 31785 __219: 31786 __220: 31787 __221: 31788 __222: 31789 __223: 31790 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 31791 if !(count > 0) { 31792 goto __1049 31793 } 31794 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31795 goto __1050 31796 } 31797 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31798 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31799 next_active_state += 12 31800 goto __1051 31801 __1050: 31802 return -43 31803 __1051: 31804 ; 31805 __1049: 31806 ; 31807 if !(clen > 0) { 31808 goto __1052 31809 } 31810 31811 otherd1 = DNOTACHAR 31812 if !(caseless != 0) { 31813 goto __1053 31814 } 31815 31816 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31817 goto __1054 31818 } 31819 otherd1 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31820 goto __1055 31821 __1054: 31822 otherd1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31823 __1055: 31824 ; 31825 __1053: 31826 ; 31827 if !(libc.Bool32(c == d || c == otherd1) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31828 goto __1056 31829 } 31830 31831 if !(count > 0 && (codevalue == OP_POSPLUS || codevalue == OP_NOTPOSPLUS)) { 31832 goto __1057 31833 } 31834 31835 active_count-- // Remove non-match possibility 31836 next_active_state -= 12 31837 __1057: 31838 ; 31839 count++ 31840 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31841 goto __1058 31842 } 31843 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 31844 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31845 next_new_state += 12 31846 goto __1059 31847 __1058: 31848 return -43 31849 __1059: 31850 ; 31851 __1056: 31852 ; 31853 __1052: 31854 ; 31855 goto __89 31856 31857 //----------------------------------------------------------------- 31858 __224: 31859 __225: 31860 __226: 31861 __227: 31862 __228: 31863 __229: 31864 caseless = DTRUE 31865 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31866 // Fall through 31867 __230: 31868 __231: 31869 __232: 31870 __233: 31871 __234: 31872 __235: 31873 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31874 goto __1060 31875 } 31876 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31877 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31878 next_active_state += 12 31879 goto __1061 31880 __1060: 31881 return -43 31882 __1061: 31883 ; 31884 if !(clen > 0) { 31885 goto __1062 31886 } 31887 31888 otherd2 = DNOTACHAR 31889 if !(caseless != 0) { 31890 goto __1063 31891 } 31892 31893 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31894 goto __1064 31895 } 31896 otherd2 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31897 goto __1065 31898 __1064: 31899 otherd2 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31900 __1065: 31901 ; 31902 __1063: 31903 ; 31904 if !(libc.Bool32(c == d || c == otherd2) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31905 goto __1066 31906 } 31907 31908 if !(codevalue == OP_POSQUERY || codevalue == OP_NOTPOSQUERY) { 31909 goto __1067 31910 } 31911 31912 active_count-- // Remove non-match possibility 31913 next_active_state -= 12 31914 __1067: 31915 ; 31916 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31917 goto __1068 31918 } 31919 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31920 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31921 next_new_state += 12 31922 goto __1069 31923 __1068: 31924 return -43 31925 __1069: 31926 ; 31927 __1066: 31928 ; 31929 __1062: 31930 ; 31931 goto __89 31932 31933 //----------------------------------------------------------------- 31934 __236: 31935 __237: 31936 __238: 31937 __239: 31938 __240: 31939 __241: 31940 caseless = DTRUE 31941 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31942 // Fall through 31943 __242: 31944 __243: 31945 __244: 31946 __245: 31947 __246: 31948 __247: 31949 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31950 goto __1070 31951 } 31952 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31953 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31954 next_active_state += 12 31955 goto __1071 31956 __1070: 31957 return -43 31958 __1071: 31959 ; 31960 if !(clen > 0) { 31961 goto __1072 31962 } 31963 31964 otherd3 = DNOTACHAR 31965 if !(caseless != 0) { 31966 goto __1073 31967 } 31968 31969 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31970 goto __1074 31971 } 31972 otherd3 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31973 goto __1075 31974 __1074: 31975 otherd3 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31976 __1075: 31977 ; 31978 __1073: 31979 ; 31980 if !(libc.Bool32(c == d || c == otherd3) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31981 goto __1076 31982 } 31983 31984 if !(codevalue == OP_POSSTAR || codevalue == OP_NOTPOSSTAR) { 31985 goto __1077 31986 } 31987 31988 active_count-- // Remove non-match possibility 31989 next_active_state -= 12 31990 __1077: 31991 ; 31992 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31993 goto __1078 31994 } 31995 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 31996 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31997 next_new_state += 12 31998 goto __1079 31999 __1078: 32000 return -43 32001 __1079: 32002 ; 32003 __1076: 32004 ; 32005 __1072: 32006 ; 32007 goto __89 32008 32009 //----------------------------------------------------------------- 32010 __248: 32011 __249: 32012 caseless = DTRUE 32013 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32014 // Fall through 32015 __250: 32016 __251: 32017 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32018 if !(clen > 0) { 32019 goto __1080 32020 } 32021 32022 otherd4 = DNOTACHAR 32023 if !(caseless != 0) { 32024 goto __1081 32025 } 32026 32027 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32028 goto __1082 32029 } 32030 otherd4 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 32031 goto __1083 32032 __1082: 32033 otherd4 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32034 __1083: 32035 ; 32036 __1081: 32037 ; 32038 if !(libc.Bool32(c == d || c == otherd4) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32039 goto __1084 32040 } 32041 32042 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32043 goto __1085 32044 } 32045 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32046 goto __1087 32047 } 32048 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32049 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32050 next_new_state += 12 32051 goto __1088 32052 __1087: 32053 return -43 32054 __1088: 32055 ; 32056 goto __1086 32057 __1085: 32058 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32059 goto __1089 32060 } 32061 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32062 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32063 next_new_state += 12 32064 goto __1090 32065 __1089: 32066 return -43 32067 __1090: 32068 ; 32069 __1086: 32070 ; 32071 __1084: 32072 ; 32073 __1080: 32074 ; 32075 goto __89 32076 32077 //----------------------------------------------------------------- 32078 __252: 32079 __253: 32080 __254: 32081 __255: 32082 __256: 32083 __257: 32084 caseless = DTRUE 32085 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32086 // Fall through 32087 __258: 32088 __259: 32089 __260: 32090 __261: 32091 __262: 32092 __263: 32093 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32094 goto __1091 32095 } 32096 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32097 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32098 next_active_state += 12 32099 goto __1092 32100 __1091: 32101 return -43 32102 __1092: 32103 ; 32104 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32105 if !(clen > 0) { 32106 goto __1093 32107 } 32108 32109 otherd5 = DNOTACHAR 32110 if !(caseless != 0) { 32111 goto __1094 32112 } 32113 32114 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32115 goto __1095 32116 } 32117 otherd5 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 32118 goto __1096 32119 __1095: 32120 otherd5 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32121 __1096: 32122 ; 32123 __1094: 32124 ; 32125 if !(libc.Bool32(c == d || c == otherd5) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32126 goto __1097 32127 } 32128 32129 if !(codevalue == OP_POSUPTO || codevalue == OP_NOTPOSUPTO) { 32130 goto __1098 32131 } 32132 32133 active_count-- // Remove non-match possibility 32134 next_active_state -= 12 32135 __1098: 32136 ; 32137 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32138 goto __1099 32139 } 32140 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32141 goto __1101 32142 } 32143 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32144 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32145 next_new_state += 12 32146 goto __1102 32147 __1101: 32148 return -43 32149 __1102: 32150 ; 32151 goto __1100 32152 __1099: 32153 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32154 goto __1103 32155 } 32156 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32157 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32158 next_new_state += 12 32159 goto __1104 32160 __1103: 32161 return -43 32162 __1104: 32163 ; 32164 __1100: 32165 ; 32166 __1097: 32167 ; 32168 __1093: 32169 ; 32170 goto __89 32171 32172 // ========================================================================== 32173 // These are the class-handling opcodes 32174 32175 __264: 32176 __265: 32177 __266: 32178 32179 isinclass = DFALSE 32180 32181 // For a simple class, there is always just a 32-byte table, and we 32182 // can set isinclass from it. 32183 32184 if !(codevalue != OP_XCLASS) { 32185 goto __1105 32186 } 32187 32188 ecode = code + uintptr(1) + uintptr(uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 32189 if !(clen > 0) { 32190 goto __1107 32191 } 32192 32193 if c > Tuint32_t(255) { 32194 isinclass = libc.Bool32(codevalue == OP_NCLASS) 32195 } else { 32196 isinclass = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(code + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 32197 } 32198 __1107: 32199 ; 32200 goto __1106 32201 __1105: 32202 32203 ecode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32204 if !(clen > 0) { 32205 goto __1108 32206 } 32207 isinclass = X_pcre2_xclass_8(tls, c, code+uintptr(1)+uintptr(DLINK_SIZE), utf) 32208 __1108: 32209 ; 32210 __1106: 32211 ; 32212 32213 // At this point, isinclass is set for all kinds of class, and ecode 32214 // points to the byte after the end of the class. If there is a 32215 // quantifier, this is where it will be. 32216 32217 next_state_offset = int32((int32(ecode) - int32(start_code)) / 1) 32218 32219 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) { 32220 case OP_CRSTAR: 32221 goto __1110 32222 case OP_CRMINSTAR: 32223 goto __1111 32224 case OP_CRPOSSTAR: 32225 goto __1112 32226 32227 case OP_CRPLUS: 32228 goto __1113 32229 case OP_CRMINPLUS: 32230 goto __1114 32231 case OP_CRPOSPLUS: 32232 goto __1115 32233 32234 case OP_CRQUERY: 32235 goto __1116 32236 case OP_CRMINQUERY: 32237 goto __1117 32238 case OP_CRPOSQUERY: 32239 goto __1118 32240 32241 case OP_CRRANGE: 32242 goto __1119 32243 case OP_CRMINRANGE: 32244 goto __1120 32245 case OP_CRPOSRANGE: 32246 goto __1121 32247 32248 default: 32249 goto __1122 32250 } 32251 goto __1109 32252 32253 __1110: 32254 __1111: 32255 __1112: 32256 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32257 goto __1123 32258 } 32259 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32260 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32261 next_active_state += 12 32262 goto __1124 32263 __1123: 32264 return -43 32265 __1124: 32266 ; 32267 if !(isinclass != 0) { 32268 goto __1125 32269 } 32270 32271 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSSTAR) { 32272 goto __1126 32273 } 32274 32275 active_count-- // Remove non-match possibility 32276 next_active_state -= 12 32277 __1126: 32278 ; 32279 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32280 goto __1127 32281 } 32282 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32283 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32284 next_new_state += 12 32285 goto __1128 32286 __1127: 32287 return -43 32288 __1128: 32289 ; 32290 __1125: 32291 ; 32292 goto __1109 32293 32294 __1113: 32295 __1114: 32296 __1115: 32297 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32298 if !(count > 0) { 32299 goto __1129 32300 } 32301 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32302 goto __1130 32303 } 32304 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32305 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32306 next_active_state += 12 32307 goto __1131 32308 __1130: 32309 return -43 32310 __1131: 32311 ; 32312 __1129: 32313 ; 32314 if !(isinclass != 0) { 32315 goto __1132 32316 } 32317 32318 if !(count > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSPLUS) { 32319 goto __1133 32320 } 32321 32322 active_count-- // Remove non-match possibility 32323 next_active_state -= 12 32324 __1133: 32325 ; 32326 count++ 32327 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32328 goto __1134 32329 } 32330 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32331 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32332 next_new_state += 12 32333 goto __1135 32334 __1134: 32335 return -43 32336 __1135: 32337 ; 32338 __1132: 32339 ; 32340 goto __1109 32341 32342 __1116: 32343 __1117: 32344 __1118: 32345 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32346 goto __1136 32347 } 32348 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32349 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32350 next_active_state += 12 32351 goto __1137 32352 __1136: 32353 return -43 32354 __1137: 32355 ; 32356 if !(isinclass != 0) { 32357 goto __1138 32358 } 32359 32360 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSQUERY) { 32361 goto __1139 32362 } 32363 32364 active_count-- // Remove non-match possibility 32365 next_active_state -= 12 32366 __1139: 32367 ; 32368 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32369 goto __1140 32370 } 32371 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 32372 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32373 next_new_state += 12 32374 goto __1141 32375 __1140: 32376 return -43 32377 __1141: 32378 ; 32379 __1138: 32380 ; 32381 goto __1109 32382 32383 __1119: 32384 __1120: 32385 __1121: 32386 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32387 if !(count >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 2)))))) { 32388 goto __1142 32389 } 32390 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32391 goto __1143 32392 } 32393 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32394 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32395 next_active_state += 12 32396 goto __1144 32397 __1143: 32398 return -43 32399 __1144: 32400 ; 32401 __1142: 32402 ; 32403 if !(isinclass != 0) { 32404 goto __1145 32405 } 32406 32407 max = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 4))))) 32408 32409 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSRANGE && count >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 2)))))) { 32410 goto __1146 32411 } 32412 32413 active_count-- // Remove non-match possibility 32414 next_active_state -= 12 32415 __1146: 32416 ; 32417 32418 if !(libc.PreIncInt32(&count, 1) >= max && max != 0) { 32419 goto __1147 32420 } /* Max 0 => no limit */ 32421 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32422 goto __1149 32423 } 32424 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32425 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32426 next_new_state += 12 32427 goto __1150 32428 __1149: 32429 return -43 32430 __1150: 32431 ; 32432 goto __1148 32433 __1147: 32434 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32435 goto __1151 32436 } 32437 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32438 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32439 next_new_state += 12 32440 goto __1152 32441 __1151: 32442 return -43 32443 __1152: 32444 ; 32445 __1148: 32446 ; 32447 __1145: 32448 ; 32449 goto __1109 32450 32451 __1122: 32452 if !(isinclass != 0) { 32453 goto __1153 32454 } 32455 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32456 goto __1154 32457 } 32458 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset 32459 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32460 next_new_state += 12 32461 goto __1155 32462 __1154: 32463 return -43 32464 __1155: 32465 ; 32466 __1153: 32467 ; 32468 goto __1109 32469 __1109: 32470 ; 32471 32472 goto __89 32473 32474 // ========================================================================== 32475 // These are the opcodes for fancy brackets of various kinds. We have 32476 // to use recursion in order to handle them. The "always failing" assertion 32477 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 32478 // though the other "backtracking verbs" are not supported. 32479 32480 __267: 32481 forced_fail++ // Count FAILs for multiple states 32482 goto __89 32483 32484 __268: 32485 __269: 32486 __270: 32487 __271: 32488 32489 endasscode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32490 *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) = RWS 32491 32492 if !(uint32((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Ffree) < uint32(DRWS_RSIZE)+uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))) { 32493 goto __1156 32494 } 32495 32496 rc = more_workspace(tls, bp+16, uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), mb) 32497 if !(rc != 0) { 32498 goto __1157 32499 } 32500 return rc 32501 __1157: 32502 ; 32503 RWS = *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) 32504 __1156: 32505 ; 32506 32507 local_offsets = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Ffree)*4 32508 local_workspace = local_offsets + uintptr(uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))))*4 32509 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 8)) -= uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32510 32511 __1158: 32512 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode))) == OP_ALT) { 32513 goto __1159 32514 } 32515 endasscode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 2))))) 32516 goto __1158 32517 __1159: 32518 ; 32519 32520 rc = internal_dfa_match(tls, 32521 mb, // static match data 32522 code, // this subexpression's code 32523 ptr, // where we currently are 32524 Tsize_t((int32(ptr)-int32(start_subject))/1), 32525 local_offsets, // offset vector 32526 uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))/(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), 32527 local_workspace, // workspace vector 32528 DRWS_RSIZE, // size of same 32529 rlevel, // function recursion level 32530 RWS) // recursion workspace 32531 32532 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 8)) += uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32533 32534 if !(rc < 0 && rc != -1) { 32535 goto __1160 32536 } 32537 return rc 32538 __1160: 32539 ; 32540 if !(libc.Bool32(rc >= 0) == libc.Bool32(codevalue == OP_ASSERT || codevalue == OP_ASSERTBACK)) { 32541 goto __1161 32542 } 32543 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32544 goto __1162 32545 } 32546 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(endasscode+uintptr(DLINK_SIZE)+uintptr(1)) - int32(start_code)) / 1) 32547 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32548 next_active_state += 12 32549 goto __1163 32550 __1162: 32551 return -43 32552 __1163: 32553 ; 32554 __1161: 32555 ; 32556 32557 goto __89 32558 32559 //----------------------------------------------------------------- 32560 __272: 32561 __273: 32562 32563 codelink = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32564 32565 // Because of the way auto-callout works during compile, a callout item 32566 // is inserted between OP_COND and an assertion condition. This does not 32567 // happen for the other conditions. 32568 32569 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT || 32570 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT_STR) { 32571 goto __1164 32572 } 32573 32574 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, 32575 uint32(1+DLINK_SIZE), bp+20) 32576 if !(rrc < 0) { 32577 goto __1165 32578 } 32579 return rrc 32580 __1165: 32581 ; // Abandon 32582 if !(rrc > 0) { 32583 goto __1166 32584 } 32585 goto __89 32586 __1166: 32587 ; // Fail this thread 32588 code += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 20 /* callout_length */))) // Skip callout data 32589 __1164: 32590 ; 32591 32592 condcode = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) 32593 32594 // Back reference conditions and duplicate named recursion conditions 32595 // are not supported 32596 32597 if !(int32(condcode) == OP_CREF || int32(condcode) == OP_DNCREF || int32(condcode) == OP_DNRREF) { 32598 goto __1167 32599 } 32600 return -40 32601 __1167: 32602 ; 32603 32604 // The DEFINE condition is always false, and the assertion (?!) is 32605 // converted to OP_FAIL. 32606 32607 if !(int32(condcode) == OP_FALSE || int32(condcode) == OP_FAIL) { 32608 goto __1168 32609 } 32610 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32611 goto __1170 32612 } 32613 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32614 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32615 next_active_state += 12 32616 goto __1171 32617 __1170: 32618 return -43 32619 __1171: 32620 ; 32621 goto __1169 32622 __1168: 32623 if !(int32(condcode) == OP_TRUE) { 32624 goto __1172 32625 } 32626 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32627 goto __1174 32628 } 32629 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 32630 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32631 next_active_state += 12 32632 goto __1175 32633 __1174: 32634 return -43 32635 __1175: 32636 ; 32637 goto __1173 32638 __1172: 32639 if !(int32(condcode) == OP_RREF) { 32640 goto __1176 32641 } 32642 32643 value = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 32644 if !(value != uint32(DRREF_ANY)) { 32645 goto __1178 32646 } 32647 return -40 32648 __1178: 32649 ; 32650 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive != uintptr(0)) { 32651 goto __1179 32652 } 32653 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32654 goto __1181 32655 } 32656 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 + DIMM2_SIZE 32657 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32658 next_active_state += 12 32659 goto __1182 32660 __1181: 32661 return -43 32662 __1182: 32663 ; 32664 goto __1180 32665 __1179: 32666 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32667 goto __1183 32668 } 32669 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32670 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32671 next_active_state += 12 32672 goto __1184 32673 __1183: 32674 return -43 32675 __1184: 32676 ; 32677 __1180: 32678 ; 32679 goto __1177 32680 __1176: 32681 32682 asscode = code + uintptr(DLINK_SIZE) + uintptr(1) 32683 endasscode1 = asscode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 2))))) 32684 *(*uintptr)(unsafe.Pointer(bp + 24 /* rws1 */)) = RWS 32685 32686 if !(uint32((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Ffree) < uint32(DRWS_RSIZE)+uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))) { 32687 goto __1185 32688 } 32689 32690 rc1 = more_workspace(tls, bp+24, uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), mb) 32691 if !(rc1 != 0) { 32692 goto __1186 32693 } 32694 return rc1 32695 __1186: 32696 ; 32697 RWS = *(*uintptr)(unsafe.Pointer(bp + 24 /* rws1 */)) 32698 __1185: 32699 ; 32700 32701 local_offsets1 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).Ffree)*4 32702 local_workspace1 = local_offsets1 + uintptr(uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))))*4 32703 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 8)) -= uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32704 32705 __1187: 32706 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1))) == OP_ALT) { 32707 goto __1188 32708 } 32709 endasscode1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 2))))) 32710 goto __1187 32711 __1188: 32712 ; 32713 32714 rc1 = internal_dfa_match(tls, 32715 mb, // fixed match data 32716 asscode, // this subexpression's code 32717 ptr, // where we currently are 32718 Tsize_t((int32(ptr)-int32(start_subject))/1), 32719 local_offsets1, // offset vector 32720 uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))/(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), 32721 local_workspace1, // workspace vector 32722 DRWS_RSIZE, // size of same 32723 rlevel, // function recursion level 32724 RWS) // recursion workspace 32725 32726 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 8)) += uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32727 32728 if !(rc1 < 0 && rc1 != -1) { 32729 goto __1189 32730 } 32731 return rc1 32732 __1189: 32733 ; 32734 if !(libc.Bool32(rc1 >= 0) == libc.Bool32(int32(condcode) == OP_ASSERT || int32(condcode) == OP_ASSERTBACK)) { 32735 goto __1190 32736 } 32737 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32738 goto __1192 32739 } 32740 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int32(endasscode1+uintptr(DLINK_SIZE)+uintptr(1)) - int32(start_code)) / 1) 32741 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32742 next_active_state += 12 32743 goto __1193 32744 __1192: 32745 return -43 32746 __1193: 32747 ; 32748 goto __1191 32749 __1190: 32750 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32751 goto __1194 32752 } 32753 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32754 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32755 next_active_state += 12 32756 goto __1195 32757 __1194: 32758 return -43 32759 __1195: 32760 ; 32761 __1191: 32762 ; 32763 __1177: 32764 ; 32765 __1173: 32766 ; 32767 __1169: 32768 ; 32769 32770 goto __89 32771 32772 //----------------------------------------------------------------- 32773 __274: 32774 32775 *(*uintptr)(unsafe.Pointer(bp + 28 /* rws2 */)) = RWS 32776 callpat = start_code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32777 if callpat == (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code { 32778 recno = uint32(0) 32779 } else { 32780 recno = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 4)))) 32781 } 32782 32783 if !(uint32((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 28)))).Ffree) < uint32(DRWS_RSIZE)+uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))) { 32784 goto __1196 32785 } 32786 32787 rc2 = more_workspace(tls, bp+28, uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), mb) 32788 if !(rc2 != 0) { 32789 goto __1197 32790 } 32791 return rc2 32792 __1197: 32793 ; 32794 RWS = *(*uintptr)(unsafe.Pointer(bp + 28 /* rws2 */)) 32795 __1196: 32796 ; 32797 32798 local_offsets2 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 28)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 28)))).Ffree)*4 32799 local_workspace2 = local_offsets2 + uintptr(uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))))*4 32800 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 28)) + 8)) -= uint32(DRWS_RSIZE) + uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32801 32802 // Check for repeating a recursion without advancing the subject 32803 // pointer. This should catch convoluted mutual recursions. (Some simple 32804 // cases are caught at compile time.) 32805 32806 ri = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32807 __1198: 32808 if !(ri != uintptr(0)) { 32809 goto __1200 32810 } 32811 if !(recno == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fgroup_num && ptr == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fsubject_position) { 32812 goto __1201 32813 } 32814 return -52 32815 __1201: 32816 ; 32817 goto __1199 32818 __1199: 32819 ri = (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fprevrec 32820 goto __1198 32821 goto __1200 32822 __1200: 32823 ; 32824 32825 // Remember this recursion and where we started it so as to 32826 // catch infinite loops. 32827 32828 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 32 /* &new_recursive */)).Fgroup_num = recno 32829 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 32 /* &new_recursive */)).Fsubject_position = ptr 32830 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 32 /* &new_recursive */)).Fprevrec = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32831 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = bp + 32 /* &new_recursive */ 32832 32833 rc2 = internal_dfa_match(tls, 32834 mb, // fixed match data 32835 callpat, // this subexpression's code 32836 ptr, // where we currently are 32837 Tsize_t((int32(ptr)-int32(start_subject))/1), 32838 local_offsets2, // offset vector 32839 uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))/(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), 32840 local_workspace2, // workspace vector 32841 DRWS_RSIZE, // size of same 32842 rlevel, // function recursion level 32843 RWS) // recursion workspace 32844 32845 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 28)) + 8)) += uint32(DRWS_RSIZE) + uint32(1000)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32846 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = (*Tdfa_recursion_info)(unsafe.Pointer(bp + 32 /* &new_recursive */)).Fprevrec // Done this recursion 32847 32848 // Ran out of internal offsets 32849 32850 if !(rc2 == 0) { 32851 goto __1202 32852 } 32853 return -39 32854 __1202: 32855 ; 32856 32857 // For each successful matched substring, set up the next state with a 32858 // count of characters to skip before trying it. Note that the count is in 32859 // characters, not bytes. 32860 32861 if !(rc2 > 0) { 32862 goto __1203 32863 } 32864 32865 rc2 = rc2*2 - 2 32866 __1205: 32867 if !(rc2 >= 0) { 32868 goto __1207 32869 } 32870 32871 charcount = *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*4)) - *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*4)) 32872 if !(utf != 0) { 32873 goto __1208 32874 } 32875 32876 p = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*4))) 32877 pp = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*4))) 32878 __1209: 32879 if !(p < pp) { 32880 goto __1210 32881 } 32882 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0xc0 == 0x80) { 32883 goto __1211 32884 } 32885 charcount-- 32886 __1211: 32887 ; 32888 goto __1209 32889 __1210: 32890 ; 32891 __1208: 32892 ; 32893 if !(charcount > Tsize_t(0)) { 32894 goto __1212 32895 } 32896 32897 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32898 goto __1214 32899 } 32900 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + DLINK_SIZE + 1) 32901 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32902 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount - Tsize_t(1)) 32903 next_new_state += 12 32904 goto __1215 32905 __1214: 32906 return -43 32907 __1215: 32908 ; 32909 goto __1213 32910 __1212: 32911 32912 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32913 goto __1216 32914 } 32915 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 1 32916 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32917 next_active_state += 12 32918 goto __1217 32919 __1216: 32920 return -43 32921 __1217: 32922 ; 32923 __1213: 32924 ; 32925 goto __1206 32926 __1206: 32927 rc2 = rc2 - 2 32928 goto __1205 32929 goto __1207 32930 __1207: 32931 ; 32932 goto __1204 32933 __1203: 32934 if !(rc2 != -1) { 32935 goto __1218 32936 } 32937 return rc2 32938 __1218: 32939 ; 32940 __1204: 32941 ; 32942 32943 goto __89 32944 32945 //----------------------------------------------------------------- 32946 __275: 32947 __276: 32948 __277: 32949 __278: 32950 __279: 32951 32952 local_ptr = ptr 32953 *(*uintptr)(unsafe.Pointer(bp + 44 /* rws3 */)) = RWS 32954 32955 if !(uint32((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 44)))).Ffree) < uint32(DRWS_RSIZE)+uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))) { 32956 goto __1219 32957 } 32958 32959 rc3 = more_workspace(tls, bp+44, uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), mb) 32960 if !(rc3 != 0) { 32961 goto __1220 32962 } 32963 return rc3 32964 __1220: 32965 ; 32966 RWS = *(*uintptr)(unsafe.Pointer(bp + 44 /* rws3 */)) 32967 __1219: 32968 ; 32969 32970 local_offsets3 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 44)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 44)))).Ffree)*4 32971 local_workspace3 = local_offsets3 + uintptr(uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))))*4 32972 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 44)) + 8)) -= uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 32973 32974 if !(codevalue == OP_BRAPOSZERO) { 32975 goto __1221 32976 } 32977 32978 allow_zero = DTRUE 32979 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&code, 1)))) // Codevalue will be one of above BRAs 32980 goto __1222 32981 __1221: 32982 allow_zero = DFALSE 32983 __1222: 32984 ; 32985 32986 // Loop to match the subpattern as many times as possible as if it were 32987 // a complete pattern. 32988 32989 matched_count = Tsize_t(0) 32990 __1223: 32991 ; 32992 32993 rc3 = internal_dfa_match(tls, 32994 mb, // fixed match data 32995 code, // this subexpression's code 32996 local_ptr, // where we currently are 32997 Tsize_t((int32(ptr)-int32(start_subject))/1), 32998 local_offsets3, // offset vector 32999 uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))/(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), 33000 local_workspace3, // workspace vector 33001 DRWS_RSIZE, // size of same 33002 rlevel, // function recursion level 33003 RWS) // recursion workspace 33004 33005 // Failed to match 33006 33007 if !(rc3 < 0) { 33008 goto __1226 33009 } 33010 33011 if !(rc3 != -1) { 33012 goto __1227 33013 } 33014 return rc3 33015 __1227: 33016 ; 33017 goto __1225 33018 __1226: 33019 ; 33020 33021 // Matched: break the loop if zero characters matched. 33022 33023 charcount1 = *(*Tsize_t)(unsafe.Pointer(local_offsets3 + 1*4)) - *(*Tsize_t)(unsafe.Pointer(local_offsets3)) 33024 if !(charcount1 == Tsize_t(0)) { 33025 goto __1228 33026 } 33027 goto __1225 33028 __1228: 33029 ; 33030 local_ptr += TPCRE2_SPTR8(charcount1) // Advance temporary position ptr 33031 goto __1224 33032 __1224: 33033 matched_count++ 33034 goto __1223 33035 goto __1225 33036 __1225: 33037 ; 33038 33039 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 44)) + 8)) += uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 33040 33041 // At this point we have matched the subpattern matched_count 33042 // times, and local_ptr is pointing to the character after the end of the 33043 // last match. 33044 33045 if !(matched_count > Tsize_t(0) || allow_zero != 0) { 33046 goto __1229 33047 } 33048 33049 end_subpattern = code 33050 33051 __1230: 33052 end_subpattern += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 2))))) 33053 goto __1231 33054 __1231: 33055 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern))) == OP_ALT { 33056 goto __1230 33057 } 33058 goto __1232 33059 __1232: 33060 ; 33061 next_state_offset1 = int32((int32(end_subpattern)-int32(start_code))/1 + DLINK_SIZE + 1) 33062 33063 // Optimization: if there are no more active states, and there 33064 // are no new states yet set up, then skip over the subject string 33065 // right here, to save looping. Otherwise, set up the new state to swing 33066 // into action when the end of the matched substring is reached. 33067 33068 if !(i+1 >= active_count && new_count == 0) { 33069 goto __1233 33070 } 33071 33072 ptr = local_ptr 33073 clen = 0 33074 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33075 goto __1235 33076 } 33077 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset1 33078 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33079 next_new_state += 12 33080 goto __1236 33081 __1235: 33082 return -43 33083 __1236: 33084 ; 33085 goto __1234 33086 __1233: 33087 33088 p1 = ptr 33089 pp1 = local_ptr 33090 charcount1 = Tsize_t((int32(pp1) - int32(p1)) / 1) 33091 if !(utf != 0) { 33092 goto __1237 33093 } 33094 __1238: 33095 if !(p1 < pp1) { 33096 goto __1239 33097 } 33098 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))))&0xc0 == 0x80) { 33099 goto __1240 33100 } 33101 charcount1-- 33102 __1240: 33103 ; 33104 goto __1238 33105 __1239: 33106 ; 33107 __1237: 33108 ; 33109 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33110 goto __1241 33111 } 33112 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset1 33113 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33114 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount1 - Tsize_t(1)) 33115 next_new_state += 12 33116 goto __1242 33117 __1241: 33118 return -43 33119 __1242: 33120 ; 33121 __1234: 33122 ; 33123 __1229: 33124 ; 33125 33126 goto __89 33127 33128 //----------------------------------------------------------------- 33129 __280: 33130 33131 *(*uintptr)(unsafe.Pointer(bp + 48 /* rws4 */)) = RWS 33132 33133 if !(uint32((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).Ffree) < uint32(DRWS_RSIZE)+uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))) { 33134 goto __1243 33135 } 33136 33137 rc4 = more_workspace(tls, bp+48, uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), mb) 33138 if !(rc4 != 0) { 33139 goto __1244 33140 } 33141 return rc4 33142 __1244: 33143 ; 33144 RWS = *(*uintptr)(unsafe.Pointer(bp + 48 /* rws4 */)) 33145 __1243: 33146 ; 33147 33148 local_offsets4 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)))).Ffree)*4 33149 local_workspace4 = local_offsets4 + uintptr(uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))))*4 33150 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)) + 8)) -= uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 33151 33152 rc4 = internal_dfa_match(tls, 33153 mb, // fixed match data 33154 code, // this subexpression's code 33155 ptr, // where we currently are 33156 Tsize_t((int32(ptr)-int32(start_subject))/1), 33157 local_offsets4, // offset vector 33158 uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0))))/(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))), 33159 local_workspace4, // workspace vector 33160 DRWS_RSIZE, // size of same 33161 rlevel, // function recursion level 33162 RWS) // recursion workspace 33163 33164 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 48)) + 8)) += uint32(DRWS_RSIZE) + uint32(2)*(uint32(unsafe.Sizeof(Tsize_t(0)))/uint32(unsafe.Sizeof(int32(0)))) 33165 33166 if !(rc4 >= 0) { 33167 goto __1245 33168 } 33169 33170 end_subpattern1 = code 33171 charcount2 = *(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*4)) - *(*Tsize_t)(unsafe.Pointer(local_offsets4)) 33172 33173 __1247: 33174 end_subpattern1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2))))) 33175 goto __1248 33176 __1248: 33177 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_ALT { 33178 goto __1247 33179 } 33180 goto __1249 33181 __1249: 33182 ; 33183 next_state_offset2 = int32((int32(end_subpattern1)-int32(start_code))/1 + DLINK_SIZE + 1) 33184 33185 // If the end of this subpattern is KETRMAX or KETRMIN, we must 33186 // arrange for the repeat state also to be added to the relevant list. 33187 // Calculate the offset, or set -1 for no repeat. 33188 33189 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMAX || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMIN { 33190 repeat_state_offset = int32(uint32((int32(end_subpattern1)-int32(start_code))/1) - uint32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2)))))) 33191 } else { 33192 repeat_state_offset = -1 33193 } 33194 33195 // If we have matched an empty string, add the next state at the 33196 // current character pointer. This is important so that the duplicate 33197 // checking kicks in, which is what breaks infinite loops that match an 33198 // empty string. 33199 33200 if !(charcount2 == Tsize_t(0)) { 33201 goto __1250 33202 } 33203 33204 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33205 goto __1252 33206 } 33207 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset2 33208 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33209 next_active_state += 12 33210 goto __1253 33211 __1252: 33212 return -43 33213 __1253: 33214 ; 33215 goto __1251 33216 __1250: 33217 if !(i+1 >= active_count && new_count == 0) { 33218 goto __1254 33219 } 33220 33221 ptr += TPCRE2_SPTR8(charcount2) 33222 clen = 0 33223 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33224 goto __1256 33225 } 33226 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset2 33227 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33228 next_new_state += 12 33229 goto __1257 33230 __1256: 33231 return -43 33232 __1257: 33233 ; 33234 33235 // If we are adding a repeat state at the new character position, 33236 // we must fudge things so that it is the only current state. 33237 // Otherwise, it might be a duplicate of one we processed before, and 33238 // that would cause it to be skipped. 33239 33240 if !(repeat_state_offset >= 0) { 33241 goto __1258 33242 } 33243 33244 next_active_state = active_states 33245 active_count = 0 33246 i = -1 33247 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33248 goto __1259 33249 } 33250 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = repeat_state_offset 33251 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33252 next_active_state += 12 33253 goto __1260 33254 __1259: 33255 return -43 33256 __1260: 33257 ; 33258 __1258: 33259 ; 33260 goto __1255 33261 __1254: 33262 33263 if !(utf != 0) { 33264 goto __1261 33265 } 33266 33267 p2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4))) 33268 pp2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*4))) 33269 __1262: 33270 if !(p2 < pp2) { 33271 goto __1263 33272 } 33273 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p2, 1))))&0xc0 == 0x80) { 33274 goto __1264 33275 } 33276 charcount2-- 33277 __1264: 33278 ; 33279 goto __1262 33280 __1263: 33281 ; 33282 __1261: 33283 ; 33284 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33285 goto __1265 33286 } 33287 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset2 33288 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33289 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - Tsize_t(1)) 33290 next_new_state += 12 33291 goto __1266 33292 __1265: 33293 return -43 33294 __1266: 33295 ; 33296 if !(repeat_state_offset >= 0) { 33297 goto __1267 33298 } 33299 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33300 goto __1268 33301 } 33302 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -repeat_state_offset 33303 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33304 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - Tsize_t(1)) 33305 next_new_state += 12 33306 goto __1269 33307 __1268: 33308 return -43 33309 __1269: 33310 ; 33311 __1267: 33312 ; 33313 __1255: 33314 ; 33315 __1251: 33316 ; 33317 goto __1246 33318 __1245: 33319 if !(rc4 != -1) { 33320 goto __1270 33321 } 33322 return rc4 33323 __1270: 33324 ; 33325 __1246: 33326 ; 33327 33328 goto __89 33329 33330 // ========================================================================== 33331 // Handle callouts 33332 33333 __281: 33334 __282: 33335 33336 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, uint32(0), 33337 bp+52) 33338 if !(rrc < 0) { 33339 goto __1271 33340 } 33341 return rrc 33342 __1271: 33343 ; // Abandon 33344 if !(rrc == 0) { 33345 goto __1272 33346 } 33347 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33348 goto __1273 33349 } 33350 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + int32(*(*Tsize_t)(unsafe.Pointer(bp + 52))) 33351 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33352 next_active_state += 12 33353 goto __1274 33354 __1273: 33355 return -43 33356 __1274: 33357 ; 33358 __1272: 33359 ; 33360 33361 goto __89 33362 33363 // ========================================================================== 33364 __283: // Unsupported opcode 33365 return -42 33366 __89: 33367 ; 33368 33369 NEXT_ACTIVE_STATE: 33370 goto __51 33371 33372 goto __51 33373 __51: 33374 i++ 33375 goto __50 33376 goto __52 33377 __52: 33378 ; // End of loop scanning active states 33379 33380 // We have finished the processing at the current subject character. If no 33381 // new states have been set for the next character, we have found all the 33382 // matches that we are going to find. If partial matching has been requested, 33383 // check for appropriate conditions. 33384 // 33385 // The "forced_ fail" variable counts the number of (*F) encountered for the 33386 // character. If it is equal to the original active_count (saved in 33387 // workspace[1]) it means that (*F) was found on every active state. In this 33388 // case we don't want to give a partial match. 33389 // 33390 // The "could_continue" variable is true if a state could have continued but 33391 // for the fact that the end of the subject was reached. 33392 33393 if !(new_count <= 0) { 33394 goto __1275 33395 } 33396 33397 if !(could_continue != 0 && forced_fail != *(*int32)(unsafe.Pointer(workspace + 1*4)) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) || 33398 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_SOFT != Tuint32_t(0) && match_count < 0) && (partial_newline != 0 || ptr >= end_subject && (ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0))) { 33399 goto __1276 33400 } 33401 match_count = -2 33402 __1276: 33403 ; 33404 goto __37 // Exit from loop along the subject string 33405 __1275: 33406 ; 33407 33408 // One or more states are active for the next character. 33409 33410 ptr += TPCRE2_SPTR8(clen) // Advance to next subject character 33411 goto __36 33412 __36: 33413 goto __35 33414 goto __37 33415 __37: 33416 ; // Loop to move along the subject string 33417 33418 // Control gets here from "break" a few lines above. If we have a match and 33419 // PCRE2_ENDANCHORED is set, the match fails. 33420 33421 if !(match_count >= 0 && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions|(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions)&DPCRE2_ENDANCHORED != Tuint32_t(0) && ptr < end_subject) { 33422 goto __1277 33423 } 33424 match_count = -1 33425 __1277: 33426 ; 33427 33428 return match_count 33429 } 33430 33431 // ************************************************ 33432 // 33433 // Match a pattern using the DFA algorithm * 33434 // 33435 33436 // This function matches a compiled pattern to a subject string, using the 33437 // alternate matching algorithm that finds all matches at once. 33438 // 33439 // Arguments: 33440 // code points to the compiled pattern 33441 // subject subject string 33442 // length length of subject string 33443 // startoffset where to start matching in the subject 33444 // options option bits 33445 // match_data points to a match data structure 33446 // gcontext points to a match context 33447 // workspace pointer to workspace 33448 // wscount size of workspace 33449 // 33450 // Returns: > 0 => number of match offset pairs placed in offsets 33451 // = 0 => offsets overflowed; longest matches are present 33452 // -1 => failed to match 33453 // < -1 => some kind of unexpected problem 33454 33455 func Xpcre2_dfa_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr, workspace uintptr, wscount Tsize_t) int32 { /* pcre2_dfa_match.c:3297:1: */ 33456 bp := tls.Alloc(30888) 33457 defer tls.Free(30888) 33458 33459 var rc int32 33460 var was_zero_terminated int32 33461 var re uintptr 33462 var start_match TPCRE2_SPTR8 33463 var end_subject TPCRE2_SPTR8 33464 var bumpalong_limit TPCRE2_SPTR8 33465 var req_cu_ptr TPCRE2_SPTR8 33466 var utf TBOOL 33467 var anchored TBOOL 33468 var startline TBOOL 33469 var firstline TBOOL 33470 var has_first_cu TBOOL 33471 var has_req_cu TBOOL 33472 var memchr_found_first_cu TPCRE2_SPTR8 33473 var memchr_found_first_cu2 TPCRE2_SPTR8 33474 var first_cu TPCRE2_UCHAR8 33475 var first_cu2 TPCRE2_UCHAR8 33476 var req_cu TPCRE2_UCHAR8 33477 var req_cu2 TPCRE2_UCHAR8 33478 var start_bits uintptr 33479 33480 // We need to have mb pointing to a match block, because the IS_NEWLINE macro 33481 // is used below, and it expects NLBLOCK to be defined as a pointer. 33482 33483 // var cb Tpcre2_callout_block_8 at bp+30824, 64 33484 33485 // var actual_match_block Tdfa_match_block_8 at bp, 104 33486 33487 var mb uintptr 33488 33489 // Set up a starting block of memory for use during recursive calls to 33490 // internal_dfa_match(). By putting this on the stack, it minimizes resource use 33491 // in the case when it is not needed. If this is too small, more memory is 33492 // obtained from the heap. At the start of each block is an anchor structure. 33493 33494 // var base_recursion_workspace [7680]int32 at bp+104, 30720 33495 33496 var rws uintptr 33497 var i uint32 33498 var check_subject TPCRE2_SPTR8 33499 var t TPCRE2_SPTR8 33500 var c TPCRE2_UCHAR8 33501 var ok TBOOL 33502 // In 16-bit and 32_bit modes we have to do our own search, so can 33503 // look for both cases at once. 33504 33505 // In 8-bit mode, the use of memchr() gives a big speed up, even 33506 // though we have to call it twice in order to find the earliest 33507 // occurrence of the code unit in either of its cases. Caching is used 33508 // to remember the positions of previously found code units. This can 33509 // make a huge difference when the strings are very long and only one 33510 // case is actually present. 33511 33512 var pp1 TPCRE2_SPTR8 33513 var pp2 TPCRE2_SPTR8 33514 var searchlength Tsize_t 33515 var c1 Tuint32_t 33516 var pp TPCRE2_SPTR8 33517 var check_length Tsize_t 33518 var p TPCRE2_SPTR8 33519 var next uintptr 33520 was_zero_terminated = 0 33521 re = code 33522 has_first_cu = DFALSE 33523 has_req_cu = DFALSE 33524 memchr_found_first_cu = uintptr(0) 33525 memchr_found_first_cu2 = uintptr(0) 33526 first_cu = TPCRE2_UCHAR8(0) 33527 first_cu2 = TPCRE2_UCHAR8(0) 33528 req_cu = TPCRE2_UCHAR8(0) 33529 req_cu2 = TPCRE2_UCHAR8(0) 33530 start_bits = uintptr(0) 33531 mb = bp /* &actual_match_block */ 33532 rws = bp + 104 /* base_recursion_workspace */ 33533 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = uintptr(0) 33534 (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize = uint32(DDFA_START_RWS_SIZE) / uint32(unsafe.Sizeof(int32(0))) 33535 (*TRWS_anchor)(unsafe.Pointer(rws)).Ffree = uint32(DDFA_START_RWS_SIZE)/uint32(unsafe.Sizeof(int32(0))) - uint32(unsafe.Sizeof(TRWS_anchor{}))/uint32(unsafe.Sizeof(int32(0))) 33536 33537 // Recognize NULL, length 0 as an empty string. 33538 33539 if !(subject == uintptr(0) && length == Tsize_t(0)) { 33540 goto __1 33541 } 33542 subject = ts + 797 /* "" */ 33543 __1: 33544 ; 33545 33546 // Plausibility checks 33547 33548 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_ENDANCHORED|DPCRE2_NOTBOL|DPCRE2_NOTEOL|DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART|DPCRE2_NO_UTF_CHECK|DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT|DPCRE2_DFA_SHORTEST|DPCRE2_DFA_RESTART|DPCRE2_COPY_MATCHED_SUBJECT) != Tuint32_t(0)) { 33549 goto __2 33550 } 33551 return -34 33552 __2: 33553 ; 33554 if !(re == uintptr(0) || subject == uintptr(0) || workspace == uintptr(0) || match_data == uintptr(0)) { 33555 goto __3 33556 } 33557 return -51 33558 __3: 33559 ; 33560 33561 if !(length == libc.CplUint32(Tsize_t(0))) { 33562 goto __4 33563 } 33564 33565 length = X_pcre2_strlen_8(tls, subject) 33566 was_zero_terminated = 1 33567 __4: 33568 ; 33569 33570 if !(wscount < Tsize_t(20)) { 33571 goto __5 33572 } 33573 return -43 33574 __5: 33575 ; 33576 if !(start_offset > length) { 33577 goto __6 33578 } 33579 return -33 33580 __6: 33581 ; 33582 33583 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 33584 // time. 33585 33586 if !(options&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 33587 goto __7 33588 } 33589 return -34 33590 __7: 33591 ; 33592 33593 // Invalid UTF support is not available for DFA matching. 33594 33595 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 33596 goto __8 33597 } 33598 return -66 33599 __8: 33600 ; 33601 33602 // Check that the first field in the block is the magic number. If it is not, 33603 // return with PCRE2_ERROR_BADMAGIC. 33604 33605 if !(uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 33606 goto __9 33607 } 33608 return -31 33609 __9: 33610 ; 33611 33612 // Check the code unit width. 33613 33614 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 33615 goto __10 33616 } 33617 return -32 33618 __10: 33619 ; 33620 33621 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 33622 // options variable for this function. Users of PCRE2 who are not calling the 33623 // function directly would like to have a way of setting these flags, in the same 33624 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 33625 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 33626 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which can now be 33627 // transferred to the options for this function. The bits are guaranteed to be 33628 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 33629 // that the match-time bits are not more significant than the flag bits. If by 33630 // accident this is not the case, a compile-time division by zero error will 33631 // occur. 33632 33633 options = options | (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)/(uint32((DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)&(libc.CplInt32(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)+1))/((DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)&(libc.CplUint32(DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)+uint32(1)))) 33634 33635 // If restarting after a partial match, do some sanity checks on the contents 33636 // of the workspace. 33637 33638 if !(options&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 33639 goto __11 33640 } 33641 33642 if !(*(*int32)(unsafe.Pointer(workspace))&-2 != 0 || *(*int32)(unsafe.Pointer(workspace + 1*4)) < 1 || *(*int32)(unsafe.Pointer(workspace + 1*4)) > int32((wscount-Tsize_t(2))/Tsize_t(int32(uint32(unsafe.Sizeof(Tstateblock{}))/uint32(unsafe.Sizeof(int32(0))))))) { 33643 goto __12 33644 } 33645 return -38 33646 __12: 33647 ; 33648 __11: 33649 ; 33650 33651 // Set some local values 33652 33653 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 33654 start_match = subject + uintptr(start_offset) 33655 end_subject = subject + uintptr(length) 33656 req_cu_ptr = start_match - uintptr(1) 33657 anchored = libc.Bool32(options&(DPCRE2_ANCHORED|DPCRE2_DFA_RESTART) != Tuint32_t(0) || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED != Tuint32_t(0)) 33658 33659 // The "must be at the start of a line" flags are used in a loop when finding 33660 // where to start. 33661 33662 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 33663 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 33664 bumpalong_limit = end_subject 33665 33666 // Initialize and set up the fixed fields in the callout block, with a pointer 33667 // in the match block. 33668 33669 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb = bp + 30824 /* &cb */ 33670 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fversion = Tuint32_t(2) 33671 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fsubject = subject 33672 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fsubject_length = Tsize_t((int32(end_subject) - int32(subject)) / 1) 33673 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fcallout_flags = Tuint32_t(0) 33674 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fcapture_top = Tuint32_t(1) // No capture support 33675 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fcapture_last = Tuint32_t(0) 33676 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30824 /* &cb */)).Fmark = uintptr(0) // No (*MARK) support 33677 33678 // Get data from the match context, if present, and fill in the remaining 33679 // fields in the match block. It is an error to set an offset limit without 33680 // setting the flag at compile time. 33681 33682 if !(mcontext == uintptr(0)) { 33683 goto __13 33684 } 33685 33686 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = uintptr(0) 33687 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 33688 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = X_pcre2_default_match_context_8.Fmatch_limit 33689 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = X_pcre2_default_match_context_8.Fdepth_limit 33690 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t(X_pcre2_default_match_context_8.Fheap_limit) 33691 goto __14 33692 __13: 33693 33694 if !((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint32(Tsize_t(0))) { 33695 goto __15 33696 } 33697 33698 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 33699 goto __16 33700 } 33701 return -56 33702 __16: 33703 ; 33704 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 33705 __15: 33706 ; 33707 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 33708 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 33709 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 33710 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 33711 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 33712 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 33713 __14: 33714 ; 33715 33716 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match) { 33717 goto __17 33718 } 33719 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 33720 __17: 33721 ; 33722 33723 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth) { 33724 goto __18 33725 } 33726 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 33727 __18: 33728 ; 33729 33730 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit > Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap)) { 33731 goto __19 33732 } 33733 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 33734 __19: 33735 ; 33736 33737 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 33738 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 33739 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 33740 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 33741 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 33742 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fallowemptypartial = libc.Bool32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) > 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0)) 33743 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions = options 33744 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 33745 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 33746 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used = Tsize_t(0) 33747 33748 // Process the \R and newline settings. 33749 33750 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 33751 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 33752 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 33753 case DPCRE2_NEWLINE_CR: 33754 goto __21 33755 33756 case DPCRE2_NEWLINE_LF: 33757 goto __22 33758 33759 case DPCRE2_NEWLINE_NUL: 33760 goto __23 33761 33762 case DPCRE2_NEWLINE_CRLF: 33763 goto __24 33764 33765 case DPCRE2_NEWLINE_ANY: 33766 goto __25 33767 33768 case DPCRE2_NEWLINE_ANYCRLF: 33769 goto __26 33770 33771 default: 33772 goto __27 33773 } 33774 goto __20 33775 33776 __21: 33777 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33778 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)) = TPCRE2_UCHAR8('\015') 33779 goto __20 33780 33781 __22: 33782 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33783 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)) = TPCRE2_UCHAR8('\012') 33784 goto __20 33785 33786 __23: 33787 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33788 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)) = TPCRE2_UCHAR8(0) 33789 goto __20 33790 33791 __24: 33792 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 33793 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80)) = TPCRE2_UCHAR8('\015') 33794 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1)) = TPCRE2_UCHAR8('\012') 33795 goto __20 33796 33797 __25: 33798 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 33799 goto __20 33800 33801 __26: 33802 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 33803 goto __20 33804 33805 __27: 33806 return -44 33807 __20: 33808 ; 33809 33810 // Check a UTF string for validity if required. For 8-bit and 16-bit strings, 33811 // we must also check that a starting offset does not point into the middle of a 33812 // multiunit character. We check only the portion of the subject that is going to 33813 // be inspected during matching - from the offset minus the maximum back reference 33814 // to the given length. This saves time when a small part of a large subject is 33815 // being matched by the use of a starting offset. Note that the maximum lookbehind 33816 // is a number of characters, not code units. 33817 33818 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 33819 goto __28 33820 } 33821 33822 check_subject = start_match // start_match includes offset 33823 33824 if !(start_offset > Tsize_t(0)) { 33825 goto __29 33826 } 33827 33828 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 33829 goto __30 33830 } 33831 return -36 33832 __30: 33833 ; 33834 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 33835 __31: 33836 if !(i > uint32(0) && check_subject > subject) { 33837 goto __33 33838 } 33839 33840 check_subject-- 33841 __34: 33842 if !(check_subject > subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(check_subject)))&0xc0 == 0x80) { 33843 goto __35 33844 } 33845 check_subject-- 33846 goto __34 33847 __35: 33848 ; 33849 goto __32 33850 __32: 33851 i-- 33852 goto __31 33853 goto __33 33854 __33: 33855 ; 33856 __29: 33857 ; 33858 33859 // Validate the relevant portion of the subject. After an error, adjust the 33860 // offset to be an absolute offset in the whole string. 33861 33862 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, check_subject, 33863 length-Tsize_t((int32(check_subject)-int32(subject))/1), match_data+32) 33864 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc != 0) { 33865 goto __36 33866 } 33867 33868 *(*Tsize_t)(unsafe.Pointer(match_data + 32)) += Tsize_t((int32(check_subject) - int32(subject)) / 1) 33869 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 33870 __36: 33871 ; 33872 __28: 33873 ; 33874 33875 // Set up the first code unit to match, if available. If there's no first code 33876 // unit there may be a bitmap of possible first characters. 33877 33878 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 33879 goto __37 33880 } 33881 33882 has_first_cu = DTRUE 33883 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 33884 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 33885 goto __39 33886 } 33887 33888 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(first_cu))) 33889 if !(int32(first_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33890 goto __40 33891 } 33892 first_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(first_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(first_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(first_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 33893 __40: 33894 ; 33895 __39: 33896 ; 33897 goto __38 33898 __37: 33899 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 33900 goto __41 33901 } 33902 start_bits = re + 20 /* &.start_bitmap */ 33903 __41: 33904 ; 33905 __38: 33906 ; 33907 33908 // There may be a "last known required code unit" set. 33909 33910 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 33911 goto __42 33912 } 33913 33914 has_req_cu = DTRUE 33915 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 33916 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 33917 goto __43 33918 } 33919 33920 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(req_cu))) 33921 if !(int32(req_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33922 goto __44 33923 } 33924 req_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(req_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(req_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(req_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 33925 __44: 33926 ; 33927 __43: 33928 ; 33929 __42: 33930 ; 33931 33932 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 33933 // free the memory that was obtained. 33934 33935 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 33936 goto __45 33937 } 33938 33939 (*struct { 33940 f func(*libc.TLS, uintptr, uintptr) 33941 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 33942 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 33943 *(*Tuint8_t)(unsafe.Pointer(match_data + 37)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 33944 __45: 33945 ; 33946 33947 // Fill in fields that are always returned in the match data. 33948 33949 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 33950 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) // Default for no match 33951 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = uintptr(0) 33952 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_DFA_INTERPRETER 33953 33954 // Call the main matching function, looping for a non-anchored regex after a 33955 // failed match. If not restarting, perform certain optimizations at the start of 33956 // a match. 33957 33958 __46: 33959 33960 // ----------------- Start of match optimizations ---------------- 33961 33962 // There are some optimizations that avoid running the match if a known 33963 // starting point is not found, or if a known later code unit is not present. 33964 // However, there is an option (settable at compile time) that disables 33965 // these, for testing and for ensuring that all callouts do actually occur. 33966 // The optimizations must also be avoided when restarting a DFA match. 33967 33968 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0) && options&DPCRE2_DFA_RESTART == Tuint32_t(0)) { 33969 goto __49 33970 } 33971 33972 // If firstline is TRUE, the start of the match is constrained to the first 33973 // line of a multiline string. That is, the match must be before or at the 33974 // first newline following the start of matching. Temporarily adjust 33975 // end_subject so that we stop the optimization scans for a first code unit 33976 // immediately after the first character of a newline (the first code unit can 33977 // legitimately be a newline). If the match fails at the newline, later code 33978 // breaks this loop. 33979 33980 if !(firstline != 0) { 33981 goto __50 33982 } 33983 33984 t = start_match 33985 if !(utf != 0) { 33986 goto __51 33987 } 33988 33989 __53: 33990 if !(t < end_subject && !(func() int32 { 33991 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 33992 return libc.Bool32(t < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 33993 } 33994 return libc.Bool32(t <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 33995 }() != 0)) { 33996 goto __54 33997 } 33998 33999 t++ 34000 __55: 34001 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 34002 goto __56 34003 } 34004 t++ 34005 goto __55 34006 __56: 34007 ; 34008 goto __53 34009 __54: 34010 ; 34011 goto __52 34012 __51: 34013 __57: 34014 if !(t < end_subject && !(func() int32 { 34015 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34016 return libc.Bool32(t < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 34017 } 34018 return libc.Bool32(t <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 34019 }() != 0)) { 34020 goto __58 34021 } 34022 t++ 34023 goto __57 34024 __58: 34025 ; 34026 __52: 34027 ; 34028 end_subject = t 34029 __50: 34030 ; 34031 34032 // Anchored: check the first code unit if one is recorded. This may seem 34033 // pointless but it can help in detecting a no match case without scanning for 34034 // the required code unit. 34035 34036 if !(anchored != 0) { 34037 goto __59 34038 } 34039 34040 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 34041 goto __61 34042 } 34043 34044 ok = libc.Bool32(start_match < end_subject) 34045 if !(ok != 0) { 34046 goto __62 34047 } 34048 34049 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 34050 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 34051 if !(!(ok != 0) && start_bits != uintptr(0)) { 34052 goto __63 34053 } 34054 34055 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 34056 __63: 34057 ; 34058 __62: 34059 ; 34060 if !!(ok != 0) { 34061 goto __64 34062 } 34063 goto __48 34064 __64: 34065 ; 34066 __61: 34067 ; 34068 goto __60 34069 __59: 34070 34071 if !(has_first_cu != 0) { 34072 goto __65 34073 } 34074 34075 if !(int32(first_cu) != int32(first_cu2)) { 34076 goto __67 34077 } /* Caseless */ 34078 34079 // In 16-bit and 32_bit modes we have to do our own search, so can 34080 // look for both cases at once. 34081 34082 // In 8-bit mode, the use of memchr() gives a big speed up, even 34083 // though we have to call it twice in order to find the earliest 34084 // occurrence of the code unit in either of its cases. Caching is used 34085 // to remember the positions of previously found code units. This can 34086 // make a huge difference when the strings are very long and only one 34087 // case is actually present. 34088 34089 pp1 = uintptr(0) 34090 pp2 = uintptr(0) 34091 searchlength = Tsize_t((int32(end_subject) - int32(start_match)) / 1) 34092 34093 // If we haven't got a previously found position for first_cu, or if 34094 // the current starting position is later, we need to do a search. If 34095 // the code unit is not found, set it to the end. 34096 34097 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 34098 goto __69 34099 } 34100 34101 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 34102 if pp1 == uintptr(0) { 34103 memchr_found_first_cu = end_subject 34104 } else { 34105 memchr_found_first_cu = pp1 34106 } 34107 goto __70 34108 __69: 34109 if memchr_found_first_cu == end_subject { 34110 pp1 = uintptr(0) 34111 } else { 34112 pp1 = memchr_found_first_cu 34113 } 34114 __70: 34115 ; 34116 34117 // Do the same thing for the other case. 34118 34119 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 34120 goto __71 34121 } 34122 34123 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 34124 if pp2 == uintptr(0) { 34125 memchr_found_first_cu2 = end_subject 34126 } else { 34127 memchr_found_first_cu2 = pp2 34128 } 34129 goto __72 34130 __71: 34131 if memchr_found_first_cu2 == end_subject { 34132 pp2 = uintptr(0) 34133 } else { 34134 pp2 = memchr_found_first_cu2 34135 } 34136 __72: 34137 ; 34138 34139 // Set the start to the end of the subject if neither case was found. 34140 // Otherwise, use the earlier found point. 34141 34142 if !(pp1 == uintptr(0)) { 34143 goto __73 34144 } 34145 if pp2 == uintptr(0) { 34146 start_match = end_subject 34147 } else { 34148 start_match = pp2 34149 } 34150 goto __74 34151 __73: 34152 if pp2 == uintptr(0) || pp1 < pp2 { 34153 start_match = pp1 34154 } else { 34155 start_match = pp2 34156 } 34157 __74: 34158 ; 34159 34160 goto __68 34161 __67: 34162 34163 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint32((int32(end_subject)-int32(start_match))/1)) 34164 if !(start_match == uintptr(0)) { 34165 goto __75 34166 } 34167 start_match = end_subject 34168 __75: 34169 ; 34170 __68: 34171 ; 34172 34173 // If we can't find the required code unit, having reached the true end 34174 // of the subject, break the bumpalong loop, to force a match failure, 34175 // except when doing partial matching, when we let the next cycle run at 34176 // the end of the subject. To see why, consider the pattern /(?<=abc)def/, 34177 // which partially matches "abc", even though the string does not contain 34178 // the starting character "d". If we have not reached the true end of the 34179 // subject (PCRE2_FIRSTLINE caused end_subject to be temporarily modified) 34180 // we also let the cycle run, because the matching string is legitimately 34181 // allowed to start with the first code unit of a newline. 34182 34183 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0) && start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject) { 34184 goto __76 34185 } 34186 goto __48 34187 __76: 34188 ; 34189 goto __66 34190 __65: 34191 if !(startline != 0) { 34192 goto __77 34193 } 34194 34195 if !(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 34196 goto __79 34197 } 34198 34199 if !(utf != 0) { 34200 goto __80 34201 } 34202 34203 __82: 34204 if !(start_match < end_subject && !(func() int32 { 34205 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34206 return libc.Bool32(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+72, utf) != 0) 34207 } 34208 return libc.Bool32(start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 34209 }() != 0)) { 34210 goto __83 34211 } 34212 34213 start_match++ 34214 __84: 34215 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34216 goto __85 34217 } 34218 start_match++ 34219 goto __84 34220 __85: 34221 ; 34222 goto __82 34223 __83: 34224 ; 34225 goto __81 34226 __80: 34227 __86: 34228 if !(start_match < end_subject && !(func() int32 { 34229 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34230 return libc.Bool32(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+72, utf) != 0) 34231 } 34232 return libc.Bool32(start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 34233 }() != 0)) { 34234 goto __87 34235 } 34236 start_match++ 34237 goto __86 34238 __87: 34239 ; 34240 __81: 34241 ; 34242 34243 // If we have just passed a CR and the newline option is ANY or 34244 // ANYCRLF, and we are now at a LF, advance the match position by one 34245 // more code unit. 34246 34247 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF)) && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012') { 34248 goto __88 34249 } 34250 start_match++ 34251 __88: 34252 ; 34253 __79: 34254 ; 34255 goto __78 34256 __77: 34257 if !(start_bits != uintptr(0)) { 34258 goto __89 34259 } 34260 34261 __90: 34262 if !(start_match < end_subject) { 34263 goto __91 34264 } 34265 34266 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 34267 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 34268 goto __92 34269 } 34270 goto __91 34271 __92: 34272 ; 34273 start_match++ 34274 goto __90 34275 __91: 34276 ; 34277 34278 // See comment above in first_cu checking about the next line. 34279 34280 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0) && start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject) { 34281 goto __93 34282 } 34283 goto __48 34284 __93: 34285 ; 34286 __89: 34287 ; 34288 __78: 34289 ; 34290 __66: 34291 ; 34292 __60: 34293 ; // End of first code unit handling 34294 34295 // Restore fudged end_subject 34296 34297 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 34298 34299 // The following two optimizations are disabled for partial matching. 34300 34301 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0)) { 34302 goto __94 34303 } 34304 34305 // The minimum matching length is a lower bound; no actual string of that 34306 // length may actually match the pattern. Although the value is, strictly, 34307 // in characters, we treat it as code units to avoid spending too much time 34308 // in this optimization. 34309 34310 if !((int32(end_subject)-int32(start_match))/1 < int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 34311 goto __95 34312 } 34313 goto NOMATCH_EXIT 34314 __95: 34315 ; 34316 34317 // If req_cu is set, we know that that code unit must appear in the 34318 // subject for the match to succeed. If the first code unit is set, req_cu 34319 // must be later in the subject; otherwise the test starts at the match 34320 // point. This optimization can save a huge amount of backtracking in 34321 // patterns with nested unlimited repeats that aren't going to match. 34322 // Writing separate code for cased/caseless versions makes it go faster, as 34323 // does using an autoincrement and backing off on a match. As in the case of 34324 // the first code unit, using memchr() in the 8-bit library gives a big 34325 // speed up. Unlike the first_cu check above, we do not need to call 34326 // memchr() twice in the caseless case because we only need to check for the 34327 // presence of the character in either case, not find the first occurrence. 34328 // 34329 // The search can be skipped if the code unit was found later than the 34330 // current starting point in a previous iteration of the bumpalong loop. 34331 // 34332 // HOWEVER: when the subject string is very, very long, searching to its end 34333 // can take a long time, and give bad performance on quite ordinary 34334 // patterns. This showed up when somebody was matching something like 34335 // /^\d+C/ on a 32-megabyte string... so we don't do this when the string is 34336 // sufficiently long, but it's worth searching a lot more for unanchored 34337 // patterns. 34338 34339 p = start_match + uintptr(func() int32 { 34340 if has_first_cu != 0 { 34341 return 1 34342 } 34343 return 0 34344 }()) 34345 if !(has_req_cu != 0 && p > req_cu_ptr) { 34346 goto __96 34347 } 34348 34349 check_length = Tsize_t((int32(end_subject) - int32(start_match)) / 1) 34350 34351 if !(check_length < Tsize_t(DREQ_CU_MAX) || !(anchored != 0) && check_length < Tsize_t(DREQ_CU_MAX*1000)) { 34352 goto __97 34353 } 34354 34355 if !(int32(req_cu) != int32(req_cu2)) { 34356 goto __98 34357 } /* Caseless */ 34358 34359 pp = p 34360 p = libc.Xmemchr(tls, pp, int32(req_cu), uint32((int32(end_subject)-int32(pp))/1)) 34361 if !(p == uintptr(0)) { 34362 goto __100 34363 } 34364 34365 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint32((int32(end_subject)-int32(pp))/1)) 34366 if !(p == uintptr(0)) { 34367 goto __101 34368 } 34369 p = end_subject 34370 __101: 34371 ; 34372 __100: 34373 ; 34374 goto __99 34375 __98: 34376 34377 p = libc.Xmemchr(tls, p, int32(req_cu), uint32((int32(end_subject)-int32(p))/1)) 34378 if !(p == uintptr(0)) { 34379 goto __102 34380 } 34381 p = end_subject 34382 __102: 34383 ; 34384 __99: 34385 ; 34386 34387 // If we can't find the required code unit, break the matching loop, 34388 // forcing a match failure. 34389 34390 if !(p >= end_subject) { 34391 goto __103 34392 } 34393 goto __48 34394 __103: 34395 ; 34396 34397 // If we have found the required code unit, save the point where we 34398 // found it, so that we don't search again next time round the loop if 34399 // the start hasn't passed this code unit yet. 34400 34401 req_cu_ptr = p 34402 __97: 34403 ; 34404 __96: 34405 ; 34406 __94: 34407 ; 34408 __49: 34409 ; 34410 34411 // ------------ End of start of match optimizations ------------ 34412 34413 // Give no match if we have passed the bumpalong limit. 34414 34415 if !(start_match > bumpalong_limit) { 34416 goto __104 34417 } 34418 goto __48 34419 __104: 34420 ; 34421 34422 // OK, now we can do the business 34423 34424 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 34425 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 34426 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = uintptr(0) 34427 34428 rc = internal_dfa_match(tls, 34429 mb, // fixed match data 34430 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code, // this subexpression's code 34431 start_match, // where we currently are 34432 start_offset, // start offset in subject 34433 match_data+44, 34434 Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount)*Tuint32_t(2), 34435 workspace, // workspace vector 34436 int32(wscount), // size of same 34437 uint32(0), // function recurse level 34438 bp+104) // initial workspace for recursion 34439 34440 // Anything other than "no match" means we are done, always; otherwise, carry 34441 // on only if not anchored. 34442 34443 if !(rc != -1 || anchored != 0) { 34444 goto __105 34445 } 34446 34447 if !(rc == -2 && int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) > 0) { 34448 goto __106 34449 } 34450 34451 *(*Tsize_t)(unsafe.Pointer(match_data + 44)) = Tsize_t((int32(start_match) - int32(subject)) / 1) 34452 *(*Tsize_t)(unsafe.Pointer(match_data + 44 + 1*4)) = Tsize_t((int32(end_subject) - int32(subject)) / 1) 34453 __106: 34454 ; 34455 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int32(subject)) / 1) 34456 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) - int32(subject)) / 1) 34457 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int32(start_match) - int32(subject)) / 1) 34458 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 34459 34460 if !(rc >= 0 && options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 34461 goto __107 34462 } 34463 34464 length = (length + Tsize_t(was_zero_terminated)) * Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8) 34465 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 34466 f func(*libc.TLS, Tsize_t, uintptr) uintptr 34467 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 34468 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 34469 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 34470 goto __109 34471 } 34472 return -48 34473 __109: 34474 ; 34475 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 34476 *(*Tuint8_t)(unsafe.Pointer(match_data + 37)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 34477 goto __108 34478 __107: 34479 34480 if !(rc >= 0 || rc == -2) { 34481 goto __110 34482 } 34483 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 34484 __110: 34485 ; 34486 __108: 34487 ; 34488 goto EXIT 34489 __105: 34490 ; 34491 34492 // Advance to the next subject character unless we are at the end of a line 34493 // and firstline is set. 34494 34495 if !(firstline != 0 && func() int32 { 34496 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34497 return libc.Bool32(start_match < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+72, utf) != 0) 34498 } 34499 return libc.Bool32(start_match <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 80 + 1))))) 34500 }() != 0) { 34501 goto __111 34502 } 34503 goto __48 34504 __111: 34505 ; 34506 start_match++ 34507 if !(utf != 0) { 34508 goto __112 34509 } 34510 34511 __113: 34512 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34513 goto __114 34514 } 34515 start_match++ 34516 goto __113 34517 __114: 34518 ; 34519 __112: 34520 ; 34521 if !(start_match > end_subject) { 34522 goto __115 34523 } 34524 goto __48 34525 __115: 34526 ; 34527 34528 // If we have just passed a CR and we are now at a LF, and the pattern does 34529 // not contain any explicit matches for \r or \n, and the newline option is CRLF 34530 // or ANY or ANYCRLF, advance the match position by one more character. 34531 34532 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr(1)))) == '\015' && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012' && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) == Tuint32_t(0) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2))) { 34533 goto __116 34534 } 34535 start_match++ 34536 __116: 34537 ; 34538 34539 goto __47 34540 __47: 34541 goto __46 34542 goto __48 34543 __48: 34544 ; // "Bumpalong" loop 34545 34546 NOMATCH_EXIT: 34547 rc = -1 34548 34549 EXIT: 34550 __117: 34551 if !((*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0)) { 34552 goto __118 34553 } 34554 34555 next = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 34556 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = (*TRWS_anchor)(unsafe.Pointer(next)).Fnext 34557 (*struct { 34558 f func(*libc.TLS, uintptr, uintptr) 34559 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, next, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 34560 goto __117 34561 __118: 34562 ; 34563 34564 return rc 34565 } 34566 34567 // End of pcre2_dfa_match.c 34568 34569 // This function is needed only when memmove() is not available. 34570 34571 // End of pcre2_internal.h 34572 34573 // The texts of compile-time error messages. Compile-time error numbers start 34574 // at COMPILE_ERROR_BASE (100). 34575 // 34576 // This used to be a table of strings, but in order to reduce the number of 34577 // relocations needed when a shared library is loaded dynamically, it is now one 34578 // long string. We cannot use a table of offsets, because the lengths of inserts 34579 // such as XSTRING(MAX_NAME_SIZE) are not known. Instead, 34580 // pcre2_get_error_message() counts through to the one it wants - this isn't a 34581 // performance issue because these strings are used only when there is an error. 34582 // 34583 // Each substring ends with \0 to insert a null character. This includes the final 34584 // substring, so that the whole string ends with \0\0, which can be detected when 34585 // counting through. 34586 34587 var compile_error_texts = 34588 34589 // 5 34590 34591 // 10 34592 34593 // 15 34594 34595 // 20 34596 34597 // 25 34598 34599 // 30 34600 34601 // 35 34602 34603 // 40 34604 34605 // 45 34606 34607 // 50 34608 34609 // 55 34610 34611 // "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)\0" 34612 // Was the above 34613 // 60 34614 34615 // 65 34616 34617 // 70 34618 34619 // 75 34620 34621 // 80 34622 34623 // 85 34624 34625 // 90 34626 34627 // 95 34628 34629 *(*[4381]uint8)(unsafe.Pointer(ts + 798)) /* pcre2_error.c:65:28 */ 34630 34631 // Match-time and UTF error texts are in the same format. 34632 34633 var match_error_texts = 34634 34635 // 5 34636 34637 // 10 34638 34639 // 15 34640 34641 // 20 34642 34643 // 25 34644 34645 // 30 34646 34647 // 35 34648 34649 // Never returned by PCRE2 itself 34650 34651 // 40 34652 34653 // 45 34654 34655 // 50 34656 34657 // 55 34658 34659 // 60 34660 34661 // 65 34662 34663 *(*[2476]uint8)(unsafe.Pointer(ts + 5179)) /* pcre2_error.c:194:28 */ 34664 34665 // ************************************************ 34666 // 34667 // Return error message * 34668 // 34669 34670 // This function copies an error message into a buffer whose units are of an 34671 // appropriate width. Error numbers are positive for compile-time errors, and 34672 // negative for match-time errors (except for UTF errors), but the numbers are all 34673 // distinct. 34674 // 34675 // Arguments: 34676 // enumber error number 34677 // buffer where to put the message (zero terminated) 34678 // size size of the buffer in code units 34679 // 34680 // Returns: length of message if all is well 34681 // negative on error 34682 34683 func Xpcre2_get_error_message_8(tls *libc.TLS, enumber int32, buffer uintptr, size Tsize_t) int32 { /* pcre2_error.c:297:1: */ 34684 var message uintptr 34685 var i Tsize_t 34686 var n int32 34687 34688 if size == Tsize_t(0) { 34689 return -48 34690 } 34691 34692 if enumber >= DCOMPILE_ERROR_BASE { 34693 message = uintptr(unsafe.Pointer(&compile_error_texts)) 34694 n = enumber - DCOMPILE_ERROR_BASE 34695 } else if enumber < 0 { 34696 message = uintptr(unsafe.Pointer(&match_error_texts)) 34697 n = -enumber 34698 } else { 34699 message = ts + 7655 /* "\x00" */ // Empty message list 34700 n = 1 34701 } 34702 34703 for ; n > 0; n-- { 34704 for int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1)))) != 0 { 34705 } 34706 34707 if int32(*(*uint8)(unsafe.Pointer(message))) == 0 { 34708 return -29 34709 } 34710 } 34711 34712 for i = Tsize_t(0); int32(*(*uint8)(unsafe.Pointer(message))) != 0; i++ { 34713 if i >= size-Tsize_t(1) { 34714 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) // Terminate partial message 34715 return -48 34716 } 34717 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1))) 34718 } 34719 34720 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) 34721 return int32(i) 34722 } 34723 34724 // End of pcre2_error.c 34725 34726 // This function is needed only when memmove() is not available. 34727 34728 // End of pcre2_internal.h 34729 34730 // Dummy function 34731 34732 // ************************************************ 34733 // 34734 // Match an extended grapheme sequence * 34735 // 34736 34737 // 34738 // Arguments: 34739 // c the first character 34740 // eptr pointer to next character 34741 // start_subject pointer to start of subject 34742 // end_subject pointer to end of subject 34743 // utf TRUE if in UTF mode 34744 // xcount pointer to count of additional characters, 34745 // or NULL if count not needed 34746 // 34747 // Returns: pointer after the end of the sequence 34748 34749 func X_pcre2_extuni_8(tls *libc.TLS, c Tuint32_t, eptr TPCRE2_SPTR8, start_subject TPCRE2_SPTR8, end_subject TPCRE2_SPTR8, utf TBOOL, xcount uintptr) TPCRE2_SPTR8 { /* pcre2_extuni.c:92:1: */ 34750 var lgb int32 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 34751 34752 for eptr < end_subject { 34753 var rgb int32 34754 var len int32 = 1 34755 if !(utf != 0) { 34756 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34757 } else { 34758 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34759 if c >= 0xc0 { 34760 if c&0x20 == Tuint32_t(0) { 34761 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 34762 len++ 34763 } else if c&0x10 == Tuint32_t(0) { 34764 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f 34765 len = len + 2 34766 } else if c&0x08 == Tuint32_t(0) { 34767 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f 34768 len = len + 3 34769 } else if c&0x04 == Tuint32_t(0) { 34770 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f 34771 len = len + 4 34772 } else { 34773 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 5)))&0x3f 34774 len = len + 5 34775 } 34776 } 34777 34778 } 34779 rgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 34780 if X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0) { 34781 break 34782 } 34783 34784 // Not breaking between Regional Indicators is allowed only if there 34785 // are an even number of preceding RIs. 34786 34787 if lgb == ucp_gbRegional_Indicator && rgb == ucp_gbRegional_Indicator { 34788 var ricount int32 = 0 34789 var bptr TPCRE2_SPTR8 = eptr - uintptr(1) 34790 if utf != 0 { 34791 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34792 bptr-- 34793 } 34794 } 34795 34796 // bptr is pointing to the left-hand character 34797 34798 for bptr > start_subject { 34799 bptr-- 34800 if utf != 0 { 34801 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34802 bptr-- 34803 } 34804 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34805 if c >= 0xc0 { 34806 if c&0x20 == Tuint32_t(0) { 34807 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f 34808 } else if c&0x10 == Tuint32_t(0) { 34809 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f 34810 } else if c&0x08 == Tuint32_t(0) { 34811 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f 34812 } else if c&0x04 == Tuint32_t(0) { 34813 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 4)))&0x3f 34814 } else { 34815 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 5)))&0x3f 34816 } 34817 } 34818 34819 } else { 34820 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34821 } 34822 if int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) != ucp_gbRegional_Indicator { 34823 break 34824 } 34825 ricount++ 34826 } 34827 if ricount&1 != 0 { 34828 break 34829 } // Grapheme break required 34830 } 34831 34832 // If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this 34833 // allows any number of them before a following Extended_Pictographic. 34834 34835 if rgb != ucp_gbExtend && rgb != ucp_gbZWJ || lgb != ucp_gbExtended_Pictographic { 34836 lgb = rgb 34837 } 34838 34839 eptr += TPCRE2_SPTR8(len) 34840 if xcount != uintptr(0) { 34841 *(*int32)(unsafe.Pointer(xcount)) += 1 34842 } 34843 } 34844 34845 return eptr 34846 } 34847 34848 // End of pcre2_extuni.c 34849 34850 // This function is needed only when memmove() is not available. 34851 34852 // End of pcre2_internal.h 34853 34854 // ************************************************ 34855 // 34856 // Scan compiled regex for specific bracket * 34857 // 34858 34859 // 34860 // Arguments: 34861 // code points to start of expression 34862 // utf TRUE in UTF mode 34863 // number the required bracket number or negative to find a lookbehind 34864 // 34865 // Returns: pointer to the opcode for the bracket, or NULL if not found 34866 34867 func X_pcre2_find_bracket_8(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, number int32) TPCRE2_SPTR8 { /* pcre2_find_bracket.c:70:1: */ 34868 for { 34869 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 34870 34871 if int32(c) == OP_END { 34872 return uintptr(0) 34873 } 34874 34875 // XCLASS is used for classes that cannot be represented just by a bit map. 34876 // This includes negated single high-valued characters. CALLOUT_STR is used for 34877 // callouts with string arguments. In both cases the length in the table is 34878 // zero; the actual length is stored in the compiled code. 34879 34880 if int32(c) == OP_XCLASS { 34881 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 34882 } else if int32(c) == OP_CALLOUT_STR { 34883 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 34884 } else if int32(c) == OP_REVERSE { 34885 if number < 0 { 34886 return code 34887 } 34888 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34889 } else if int32(c) == OP_CBRA || int32(c) == OP_SCBRA || int32(c) == OP_CBRAPOS || int32(c) == OP_SCBRAPOS { 34890 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))))) 34891 if n == number { 34892 return code 34893 } 34894 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34895 } else { 34896 switch int32(c) { 34897 case OP_TYPESTAR: 34898 fallthrough 34899 case OP_TYPEMINSTAR: 34900 fallthrough 34901 case OP_TYPEPLUS: 34902 fallthrough 34903 case OP_TYPEMINPLUS: 34904 fallthrough 34905 case OP_TYPEQUERY: 34906 fallthrough 34907 case OP_TYPEMINQUERY: 34908 fallthrough 34909 case OP_TYPEPOSSTAR: 34910 fallthrough 34911 case OP_TYPEPOSPLUS: 34912 fallthrough 34913 case OP_TYPEPOSQUERY: 34914 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 34915 code += uintptr(2) 34916 } 34917 break 34918 fallthrough 34919 34920 case OP_TYPEUPTO: 34921 fallthrough 34922 case OP_TYPEMINUPTO: 34923 fallthrough 34924 case OP_TYPEEXACT: 34925 fallthrough 34926 case OP_TYPEPOSUPTO: 34927 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 34928 code += uintptr(2) 34929 } 34930 break 34931 fallthrough 34932 34933 case OP_MARK: 34934 fallthrough 34935 case OP_COMMIT_ARG: 34936 fallthrough 34937 case OP_PRUNE_ARG: 34938 fallthrough 34939 case OP_SKIP_ARG: 34940 fallthrough 34941 case OP_THEN_ARG: 34942 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 34943 break 34944 } 34945 34946 // Add in the fixed length from the table 34947 34948 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34949 34950 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 34951 // followed by a multi-byte character. The length in the table is a minimum, so 34952 // we have to arrange to skip the extra bytes. 34953 34954 if utf != 0 { 34955 switch int32(c) { 34956 case OP_CHAR: 34957 fallthrough 34958 case OP_CHARI: 34959 fallthrough 34960 case OP_NOT: 34961 fallthrough 34962 case OP_NOTI: 34963 fallthrough 34964 case OP_EXACT: 34965 fallthrough 34966 case OP_EXACTI: 34967 fallthrough 34968 case OP_NOTEXACT: 34969 fallthrough 34970 case OP_NOTEXACTI: 34971 fallthrough 34972 case OP_UPTO: 34973 fallthrough 34974 case OP_UPTOI: 34975 fallthrough 34976 case OP_NOTUPTO: 34977 fallthrough 34978 case OP_NOTUPTOI: 34979 fallthrough 34980 case OP_MINUPTO: 34981 fallthrough 34982 case OP_MINUPTOI: 34983 fallthrough 34984 case OP_NOTMINUPTO: 34985 fallthrough 34986 case OP_NOTMINUPTOI: 34987 fallthrough 34988 case OP_POSUPTO: 34989 fallthrough 34990 case OP_POSUPTOI: 34991 fallthrough 34992 case OP_NOTPOSUPTO: 34993 fallthrough 34994 case OP_NOTPOSUPTOI: 34995 fallthrough 34996 case OP_STAR: 34997 fallthrough 34998 case OP_STARI: 34999 fallthrough 35000 case OP_NOTSTAR: 35001 fallthrough 35002 case OP_NOTSTARI: 35003 fallthrough 35004 case OP_MINSTAR: 35005 fallthrough 35006 case OP_MINSTARI: 35007 fallthrough 35008 case OP_NOTMINSTAR: 35009 fallthrough 35010 case OP_NOTMINSTARI: 35011 fallthrough 35012 case OP_POSSTAR: 35013 fallthrough 35014 case OP_POSSTARI: 35015 fallthrough 35016 case OP_NOTPOSSTAR: 35017 fallthrough 35018 case OP_NOTPOSSTARI: 35019 fallthrough 35020 case OP_PLUS: 35021 fallthrough 35022 case OP_PLUSI: 35023 fallthrough 35024 case OP_NOTPLUS: 35025 fallthrough 35026 case OP_NOTPLUSI: 35027 fallthrough 35028 case OP_MINPLUS: 35029 fallthrough 35030 case OP_MINPLUSI: 35031 fallthrough 35032 case OP_NOTMINPLUS: 35033 fallthrough 35034 case OP_NOTMINPLUSI: 35035 fallthrough 35036 case OP_POSPLUS: 35037 fallthrough 35038 case OP_POSPLUSI: 35039 fallthrough 35040 case OP_NOTPOSPLUS: 35041 fallthrough 35042 case OP_NOTPOSPLUSI: 35043 fallthrough 35044 case OP_QUERY: 35045 fallthrough 35046 case OP_QUERYI: 35047 fallthrough 35048 case OP_NOTQUERY: 35049 fallthrough 35050 case OP_NOTQUERYI: 35051 fallthrough 35052 case OP_MINQUERY: 35053 fallthrough 35054 case OP_MINQUERYI: 35055 fallthrough 35056 case OP_NOTMINQUERY: 35057 fallthrough 35058 case OP_NOTMINQUERYI: 35059 fallthrough 35060 case OP_POSQUERY: 35061 fallthrough 35062 case OP_POSQUERYI: 35063 fallthrough 35064 case OP_NOTPOSQUERY: 35065 fallthrough 35066 case OP_NOTPOSQUERYI: 35067 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 35068 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 35069 } 35070 break 35071 } 35072 } 35073 } 35074 } 35075 return TPCRE2_SPTR8(0) 35076 } 35077 35078 // End of pcre2_find_bracket.c 35079 35080 // This function is needed only when memmove() is not available. 35081 35082 // End of pcre2_internal.h 35083 35084 // ************************************************ 35085 // 35086 // JIT compile a Regular Expression * 35087 // 35088 35089 // This function used JIT to convert a previously-compiled pattern into machine 35090 // code. 35091 // 35092 // Arguments: 35093 // code a compiled pattern 35094 // options JIT option bits 35095 // 35096 // Returns: 0: success or (*NOJIT) was used 35097 // <0: an error code 35098 35099 func Xpcre2_jit_compile_8(tls *libc.TLS, code uintptr, options Tuint32_t) int32 { /* pcre2_jit_compile.c:14382:1: */ 35100 var re uintptr = code 35101 35102 if code == uintptr(0) { 35103 return -51 35104 } 35105 35106 if options&libc.CplUint32(DPCRE2_JIT_COMPLETE|DPCRE2_JIT_PARTIAL_SOFT|DPCRE2_JIT_PARTIAL_HARD|DPCRE2_JIT_INVALID_UTF) != Tuint32_t(0) { 35107 return -45 35108 } 35109 35110 // Support for invalid UTF was first introduced in JIT, with the option 35111 // PCRE2_JIT_INVALID_UTF. Later, support was added to the interpreter, and the 35112 // compile-time option PCRE2_MATCH_INVALID_UTF was created. This is now the 35113 // preferred feature, with the earlier option deprecated. However, for backward 35114 // compatibility, if the earlier option is set, it forces the new option so that 35115 // if JIT matching falls back to the interpreter, there is still support for 35116 // invalid UTF. However, if this function has already been successfully called 35117 // without PCRE2_JIT_INVALID_UTF and without PCRE2_MATCH_INVALID_UTF (meaning that 35118 // non-invalid-supporting JIT code was compiled), give an error. 35119 // 35120 // If in the future support for PCRE2_JIT_INVALID_UTF is withdrawn, the following 35121 // actions are needed: 35122 // 35123 // 1. Remove the definition from pcre2.h.in and from the list in 35124 // PUBLIC_JIT_COMPILE_OPTIONS above. 35125 // 35126 // 2. Replace PCRE2_JIT_INVALID_UTF with a local flag in this module. 35127 // 35128 // 3. Replace PCRE2_JIT_INVALID_UTF in pcre2_jit_test.c. 35129 // 35130 // 4. Delete the following short block of code. The setting of "re" and 35131 // "functions" can be moved into the JIT-only block below, but if that is 35132 // done, (void)re and (void)functions will be needed in the non-JIT case, to 35133 // avoid compiler warnings. 35134 35135 if options&DPCRE2_JIT_INVALID_UTF != Tuint32_t(0) { 35136 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF == Tuint32_t(0) { 35137 *(*Tuint32_t)(unsafe.Pointer(re + 64)) |= DPCRE2_MATCH_INVALID_UTF 35138 } 35139 } 35140 35141 // The above tests are run with and without JIT support. This means that 35142 // PCRE2_JIT_INVALID_UTF propagates back into the regex options (ensuring 35143 // interpreter support) even in the absence of JIT. But now, if there is no JIT 35144 // support, give an error return. 35145 35146 return -45 35147 } 35148 35149 // JIT compiler uses an all-in-one approach. This improves security, 35150 // since the code generator functions are not exported. 35151 35152 // ************************************************ 35153 // 35154 // Perl-Compatible Regular Expressions * 35155 // 35156 35157 // PCRE is a library of functions to support regular expressions whose syntax 35158 // and semantics are as close as possible to those of the Perl 5 language. 35159 // 35160 // Written by Philip Hazel 35161 // Original API code Copyright (c) 1997-2012 University of Cambridge 35162 // New API code Copyright (c) 2016-2018 University of Cambridge 35163 // 35164 // ----------------------------------------------------------------------------- 35165 // Redistribution and use in source and binary forms, with or without 35166 // modification, are permitted provided that the following conditions are met: 35167 // 35168 // * Redistributions of source code must retain the above copyright notice, 35169 // this list of conditions and the following disclaimer. 35170 // 35171 // * Redistributions in binary form must reproduce the above copyright 35172 // notice, this list of conditions and the following disclaimer in the 35173 // documentation and/or other materials provided with the distribution. 35174 // 35175 // * Neither the name of the University of Cambridge nor the names of its 35176 // contributors may be used to endorse or promote products derived from 35177 // this software without specific prior written permission. 35178 // 35179 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35180 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35181 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35182 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35183 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35184 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35185 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35186 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35187 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35188 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35189 // POSSIBILITY OF SUCH DAMAGE. 35190 // ----------------------------------------------------------------------------- 35191 35192 // ************************************************ 35193 // 35194 // Do a JIT pattern match * 35195 // 35196 35197 // This function runs a JIT pattern match. 35198 // 35199 // Arguments: 35200 // code points to the compiled expression 35201 // subject points to the subject string 35202 // length length of subject string (may contain binary zeros) 35203 // start_offset where to start in the subject string 35204 // options option bits 35205 // match_data points to a match_data block 35206 // mcontext points to a match context 35207 // 35208 // Returns: > 0 => success; value is the number of ovector pairs filled 35209 // = 0 => success, but ovector is not big enough 35210 // -1 => failed to match (PCRE_ERROR_NOMATCH) 35211 // < -1 => some kind of unexpected problem 35212 35213 func Xpcre2_jit_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr) int32 { /* pcre2_jit_match.c:85:1: */ 35214 35215 _ = code 35216 _ = subject 35217 _ = length 35218 _ = start_offset 35219 _ = options 35220 _ = match_data 35221 _ = mcontext 35222 return -45 35223 35224 } 35225 35226 // End of pcre2_jit_match.c 35227 // ************************************************ 35228 // 35229 // Perl-Compatible Regular Expressions * 35230 // 35231 35232 // PCRE is a library of functions to support regular expressions whose syntax 35233 // and semantics are as close as possible to those of the Perl 5 language. 35234 // 35235 // Written by Philip Hazel 35236 // Original API code Copyright (c) 1997-2012 University of Cambridge 35237 // New API code Copyright (c) 2016 University of Cambridge 35238 // 35239 // ----------------------------------------------------------------------------- 35240 // Redistribution and use in source and binary forms, with or without 35241 // modification, are permitted provided that the following conditions are met: 35242 // 35243 // * Redistributions of source code must retain the above copyright notice, 35244 // this list of conditions and the following disclaimer. 35245 // 35246 // * Redistributions in binary form must reproduce the above copyright 35247 // notice, this list of conditions and the following disclaimer in the 35248 // documentation and/or other materials provided with the distribution. 35249 // 35250 // * Neither the name of the University of Cambridge nor the names of its 35251 // contributors may be used to endorse or promote products derived from 35252 // this software without specific prior written permission. 35253 // 35254 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35255 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35256 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35257 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35258 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35259 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35260 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35261 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35262 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35263 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35264 // POSSIBILITY OF SUCH DAMAGE. 35265 // ----------------------------------------------------------------------------- 35266 35267 // ************************************************ 35268 // 35269 // Free JIT read-only data * 35270 // 35271 35272 func X_pcre2_jit_free_rodata_8(tls *libc.TLS, current uintptr, allocator_data uintptr) { /* pcre2_jit_misc.c:53:1: */ 35273 _ = current 35274 _ = allocator_data 35275 } 35276 35277 // ************************************************ 35278 // 35279 // Free JIT compiled code * 35280 // 35281 35282 func X_pcre2_jit_free_8(tls *libc.TLS, executable_jit uintptr, memctl uintptr) { /* pcre2_jit_misc.c:78:1: */ 35283 _ = executable_jit 35284 _ = memctl 35285 } 35286 35287 // ************************************************ 35288 // 35289 // Free unused JIT memory * 35290 // 35291 35292 func Xpcre2_jit_free_unused_memory_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_jit_misc.c:107:1: */ 35293 _ = gcontext // Suppress warning 35294 } 35295 35296 // ************************************************ 35297 // 35298 // Allocate a JIT stack * 35299 // 35300 35301 func Xpcre2_jit_stack_create_8(tls *libc.TLS, startsize Tsize_t, maxsize Tsize_t, gcontext uintptr) uintptr { /* pcre2_jit_misc.c:123:32: */ 35302 35303 _ = gcontext 35304 _ = startsize 35305 _ = maxsize 35306 return uintptr(0) 35307 35308 } 35309 35310 // ************************************************ 35311 // 35312 // Assign a JIT stack to a pattern * 35313 // 35314 35315 func Xpcre2_jit_stack_assign_8(tls *libc.TLS, mcontext uintptr, callback Tpcre2_jit_callback_8, callback_data uintptr) { /* pcre2_jit_misc.c:164:1: */ 35316 _ = mcontext 35317 _ = callback 35318 _ = callback_data 35319 } 35320 35321 // ************************************************ 35322 // 35323 // Free a JIT stack * 35324 // 35325 35326 func Xpcre2_jit_stack_free_8(tls *libc.TLS, jit_stack uintptr) { /* pcre2_jit_misc.c:186:1: */ 35327 _ = jit_stack 35328 } 35329 35330 // ************************************************ 35331 // 35332 // Get target CPU type * 35333 // 35334 35335 func X_pcre2_jit_get_target_8(tls *libc.TLS) uintptr { /* pcre2_jit_misc.c:204:11: */ 35336 return ts + 7657 /* "JIT is not suppo..." */ 35337 } 35338 35339 // ************************************************ 35340 // 35341 // Get size of JIT code * 35342 // 35343 35344 func X_pcre2_jit_get_size_8(tls *libc.TLS, executable_jit uintptr) Tsize_t { /* pcre2_jit_misc.c:220:1: */ 35345 _ = executable_jit 35346 return Tsize_t(0) 35347 } 35348 35349 // End of pcre2_jit_misc.c 35350 35351 // End of pcre2_jit_compile.c 35352 35353 // This function is needed only when memmove() is not available. 35354 35355 // End of pcre2_internal.h 35356 35357 // ************************************************ 35358 // 35359 // Create PCRE2 character tables * 35360 // 35361 35362 // This function builds a set of character tables for use by PCRE2 and returns 35363 // a pointer to them. They are build using the ctype functions, and consequently 35364 // their contents will depend upon the current locale setting. When compiled as 35365 // part of the library, the store is obtained via a general context malloc, if 35366 // supplied, but when PCRE2_DFTABLES is defined (when compiling the pcre2_dftables 35367 // freestanding auxiliary program) malloc() is used, and the function has a 35368 // different name so as not to clash with the prototype in pcre2.h. 35369 // 35370 // Arguments: none when PCRE2_DFTABLES is defined 35371 // else a PCRE2 general context or NULL 35372 // Returns: pointer to the contiguous block of data 35373 // else NULL if memory allocation failed 35374 35375 func Xpcre2_maketables_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_maketables.c:81:30: */ 35376 var yield uintptr = func() uintptr { 35377 if gcontext != uintptr(0) { 35378 return (*struct { 35379 f func(*libc.TLS, Tsize_t, uintptr) uintptr 35380 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint32(Dcbits_offset+Dcbit_length+256), (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 35381 } 35382 return libc.Xmalloc(tls, uint32(Dcbits_offset+Dcbit_length+256)) 35383 }() 35384 var i int32 35385 var p uintptr 35386 35387 if yield == uintptr(0) { 35388 return uintptr(0) 35389 } 35390 p = yield 35391 35392 // First comes the lower casing table 35393 35394 for i = 0; i < 256; i++ { 35395 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(libc.Xtolower(tls, i)) 35396 } 35397 35398 // Next the case-flipping table 35399 35400 for i = 0; i < 256; i++ { 35401 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = func() uint8 { 35402 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35403 return uint8(libc.Xtoupper(tls, i)) 35404 } 35405 return uint8(libc.Xtolower(tls, i)) 35406 }() 35407 } 35408 35409 // Then the character class tables. Don't try to be clever and save effort on 35410 // exclusive ones - in some locales things may be different. 35411 // 35412 // Note that the table for "space" includes everything "isspace" gives, including 35413 // VT in the default locale. This makes it work for the POSIX class [:space:]. 35414 // From PCRE1 release 8.34 and for all PCRE2 releases it is also correct for Perl 35415 // space, because Perl added VT at release 5.18. 35416 // 35417 // Note also that it is possible for a character to be alnum or alpha without 35418 // being lower or upper, such as "male and female ordinals" (\xAA and \xBA) in the 35419 // fr_FR locale (at least under Debian Linux's locales as of 12/2005). So we must 35420 // test for alnum specially. 35421 35422 libc.Xmemset(tls, p, 0, uint32(Dcbit_length)) 35423 for i = 0; i < 256; i++ { 35424 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35425 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_digit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35426 } 35427 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISupper) != 0 { 35428 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_upper+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35429 } 35430 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35431 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_lower+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35432 } 35433 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 { 35434 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35435 } 35436 if i == '_' { 35437 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35438 } 35439 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35440 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_space+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35441 } 35442 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISxdigit) != 0 { 35443 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_xdigit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35444 } 35445 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISgraph) != 0 { 35446 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_graph+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35447 } 35448 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISprint) != 0 { 35449 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_print+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35450 } 35451 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISpunct) != 0 { 35452 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_punct+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35453 } 35454 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_IScntrl) != 0 { 35455 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_cntrl+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35456 } 35457 } 35458 p += uintptr(Dcbit_length) 35459 35460 // Finally, the character type table. In this, we used to exclude VT from the 35461 // white space chars, because Perl didn't recognize it as such for \s and for 35462 // comments within regexes. However, Perl changed at release 5.18, so PCRE1 35463 // changed at release 8.34 and it's always been this way for PCRE2. 35464 35465 for i = 0; i < 256; i++ { 35466 var x int32 = 0 35467 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35468 x = x + Dctype_space 35469 } 35470 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalpha) != 0 { 35471 x = x + Dctype_letter 35472 } 35473 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35474 x = x + Dctype_lcletter 35475 } 35476 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35477 x = x + Dctype_digit 35478 } 35479 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 || i == '_' { 35480 x = x + Dctype_word 35481 } 35482 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(x) 35483 } 35484 35485 return yield 35486 } 35487 35488 func Xpcre2_maketables_free_8(tls *libc.TLS, gcontext uintptr, tables uintptr) { /* pcre2_maketables.c:154:1: */ 35489 if gcontext != 0 { 35490 (*struct { 35491 f func(*libc.TLS, uintptr, uintptr) 35492 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree})).f(tls, tables, (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 35493 } else { 35494 libc.Xfree(tls, tables) 35495 } 35496 } 35497 35498 // End of pcre2_maketables.c 35499 35500 // Min and max values for the common repeats; a maximum of UINT32_MAX => 35501 // infinity. 35502 35503 var rep_min = [11]Tuint32_t{ 35504 Tuint32_t(0), Tuint32_t(0), // * and *? 35505 Tuint32_t(1), Tuint32_t(1), // + and +? 35506 Tuint32_t(0), Tuint32_t(0), // ? and ?? 35507 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35508 Tuint32_t(0), Tuint32_t(1), Tuint32_t(0)} /* pcre2_match.c:123:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35509 35510 var rep_max = [11]Tuint32_t{ 35511 4294967295, 4294967295, 35512 4294967295, 4294967295, 35513 Tuint32_t(1), Tuint32_t(1), // ? and ?? 35514 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35515 4294967295, 4294967295, Tuint32_t(1)} /* pcre2_match.c:130:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35516 35517 // Repetition types - must include OP_CRPOSRANGE (not needed above) 35518 35519 var rep_typ = [12]Tuint32_t{ 35520 REPTYPE_MAX, REPTYPE_MIN, // * and *? 35521 REPTYPE_MAX, REPTYPE_MIN, // + and +? 35522 REPTYPE_MAX, REPTYPE_MIN, // ? and ?? 35523 REPTYPE_MAX, REPTYPE_MIN, // OP_CRRANGE and OP_CRMINRANGE 35524 REPTYPE_POS, REPTYPE_POS, // OP_CRPOSSTAR, OP_CRPOSPLUS 35525 REPTYPE_POS, REPTYPE_POS} /* pcre2_match.c:139:23 */ 35526 35527 // Define short names for general fields in the current backtrack frame, which 35528 // is always pointed to by the F variable. Occasional references to fields in 35529 // other frames are written out explicitly. There are also some fields in the 35530 // current frame whose names start with "temp" that are used for short-term, 35531 // localised backtracking memory. These are #defined with Lxxx names at the point 35532 // of use and undefined afterwards. 35533 35534 // ************************************************ 35535 // 35536 // Process a callout * 35537 // 35538 35539 // This function is called for all callouts, whether "standalone" or at the 35540 // start of a conditional group. Feptr will be pointing to either OP_CALLOUT or 35541 // OP_CALLOUT_STR. A callout block is allocated in pcre2_match() and initialized 35542 // with fixed values. 35543 // 35544 // Arguments: 35545 // F points to the current backtracking frame 35546 // mb points to the match block 35547 // lengthptr where to return the length of the callout item 35548 // 35549 // Returns: the return from the callout 35550 // or 0 if no callout function exists 35551 35552 func do_callout1(tls *libc.TLS, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:267:1: */ 35553 var rc int32 35554 var save0 Tsize_t 35555 var save1 Tsize_t 35556 var callout_ovector uintptr 35557 var cb uintptr 35558 35559 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint32 { 35560 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35561 return uint32(X_pcre2_OP_lengths_8[OP_CALLOUT]) 35562 } 35563 return uint32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 6))))) 35564 }() 35565 35566 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 35567 return 0 35568 } // No callout function provided 35569 35570 // The original matching code (pre 10.30) worked directly with the ovector 35571 // passed by the user, and this was passed to callouts. Now that the working 35572 // ovector is in the backtracking frame, it no longer needs to reserve space for 35573 // the overall match offsets (which would waste space in the frame). For backward 35574 // compatibility, however, we pass capture_top and offset_vector to the callout as 35575 // if for the extended ovector, and we ensure that the first two slots are unset 35576 // by preserving and restoring their current contents. Picky compilers complain if 35577 // references such as Fovector[-2] are use directly, so we set up a separate 35578 // pointer. 35579 35580 callout_ovector = F + 84 - uintptr(2)*4 35581 35582 // The cb->version, cb->subject, cb->subject_length, and cb->start_match fields 35583 // are set externally. The first 3 never change; the last is updated for each 35584 // bumpalong. 35585 35586 cb = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb 35587 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_top = Tuint32_t((*Theapframe)(unsafe.Pointer(F)).Foffset_top)/Tuint32_t(2) + Tuint32_t(1) 35588 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_last = (*Theapframe)(unsafe.Pointer(F)).Fcapture_last 35589 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = callout_ovector 35590 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 35591 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int32((*Theapframe)(unsafe.Pointer(F)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 35592 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 35593 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 35594 35595 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35596 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5))) 35597 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(0) 35598 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 35599 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = Tsize_t(0) 35600 } else { 35601 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 35602 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 7)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 8))))) 35603 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1+4*DLINK_SIZE) + uintptr(1) 35604 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - Tsize_t(1+4*DLINK_SIZE) - Tsize_t(2) 35605 } 35606 35607 save0 = *(*Tsize_t)(unsafe.Pointer(callout_ovector)) 35608 save1 = *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*4)) 35609 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = libc.AssignPtrUint32(callout_ovector+1*4, libc.CplUint32(Tsize_t(0))) 35610 rc = (*struct { 35611 f func(*libc.TLS, uintptr, uintptr) int32 35612 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data) 35613 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = save0 35614 *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*4)) = save1 35615 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_flags = Tuint32_t(0) 35616 return rc 35617 } 35618 35619 // ************************************************ 35620 // 35621 // Match a back-reference * 35622 // 35623 35624 // This function is called only when it is known that the offset lies within 35625 // the offsets that have so far been used in the match. Note that in caseless 35626 // UTF-8 mode, the number of subject bytes matched may be different to the number 35627 // of reference bytes. (In theory this could also happen in UTF-16 mode, but it 35628 // seems unlikely.) 35629 // 35630 // Arguments: 35631 // offset index into the offset vector 35632 // caseless TRUE if caseless 35633 // F the current backtracking frame pointer 35634 // mb points to match block 35635 // lengthptr pointer for returning the length matched 35636 // 35637 // Returns: = 0 sucessful match; number of code units matched is set 35638 // < 0 no match 35639 // > 0 partial match 35640 35641 func match_ref(tls *libc.TLS, offset Tsize_t, caseless TBOOL, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:355:1: */ 35642 var p TPCRE2_SPTR8 35643 var length Tsize_t 35644 var eptr TPCRE2_SPTR8 35645 var eptr_start TPCRE2_SPTR8 35646 35647 // Deal with an unset group. The default is no match, but there is an option to 35648 // match an empty string. 35649 35650 if offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top || *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) == libc.CplUint32(Tsize_t(0)) { 35651 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0) { 35652 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = Tsize_t(0) 35653 return 0 // Match 35654 } else { 35655 return -1 35656 } // No match 35657 } 35658 35659 // Separate the caseless and UTF cases for speed. 35660 35661 eptr = libc.AssignUintptr(&eptr_start, (*Theapframe)(unsafe.Pointer(F)).Feptr) 35662 p = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4))) 35663 length = *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset+Tsize_t(1))*4)) - *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) 35664 35665 if caseless != 0 { 35666 var utf TBOOL = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 35667 35668 if utf != 0 || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0) { 35669 var endptr TPCRE2_SPTR8 = p + uintptr(length) 35670 35671 // Match characters up to the end of the reference. NOTE: the number of 35672 // code units matched may differ, because in UTF-8 there are some characters 35673 // whose upper and lower case codes have different numbers of bytes. For 35674 // example, U+023A (2 bytes in UTF-8) is the upper case version of U+2C65 (3 35675 // bytes in UTF-8); a sequence of 3 of the former uses 6 bytes, as does a 35676 // sequence of two of the latter. It is important, therefore, to check the 35677 // length along the reference, not along the subject (earlier code did this 35678 // wrong). UCP without uses Unicode properties but without UTF encoding. 35679 35680 for p < endptr { 35681 var c Tuint32_t 35682 var d Tuint32_t 35683 var ur uintptr 35684 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35685 return 1 35686 } // Partial match 35687 35688 if utf != 0 { 35689 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35690 if c >= 0xc0 { 35691 if c&0x20 == Tuint32_t(0) { 35692 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1))))&0x3f 35693 } else if c&0x10 == Tuint32_t(0) { 35694 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 35695 eptr += uintptr(2) 35696 } else if c&0x08 == Tuint32_t(0) { 35697 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f 35698 eptr += uintptr(3) 35699 } else if c&0x04 == Tuint32_t(0) { 35700 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f 35701 eptr += uintptr(4) 35702 } else { 35703 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f 35704 eptr += uintptr(5) 35705 } 35706 } 35707 35708 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35709 if d >= 0xc0 { 35710 if d&0x20 == Tuint32_t(0) { 35711 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 35712 } else if d&0x10 == Tuint32_t(0) { 35713 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 35714 p += uintptr(2) 35715 } else if d&0x08 == Tuint32_t(0) { 35716 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f 35717 p += uintptr(3) 35718 } else if d&0x04 == Tuint32_t(0) { 35719 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f 35720 p += uintptr(4) 35721 } else { 35722 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 4)))&0x3f 35723 p += uintptr(5) 35724 } 35725 } 35726 35727 } else { 35728 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35729 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35730 } 35731 35732 ur = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12 35733 if c != d && c != Tuint32_t(int32(d)+(*Tucd_record)(unsafe.Pointer(ur)).Fother_case) { 35734 var pp uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(ur)).Fcaseset)*4 35735 for { 35736 if c < *(*Tuint32_t)(unsafe.Pointer(pp)) { 35737 return -1 35738 } // No match 35739 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&pp, 4))) { 35740 break 35741 } 35742 } 35743 } 35744 } 35745 } else { 35746 for ; length > Tsize_t(0); length-- { 35747 var cc Tuint32_t 35748 var cp Tuint32_t 35749 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35750 return 1 35751 } // Partial match 35752 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 35753 cp = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 35754 if int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cp)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc)))) { 35755 return -1 35756 } // No match 35757 p++ 35758 eptr++ 35759 } 35760 } 35761 } else { 35762 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 { 35763 for ; length > Tsize_t(0); length-- { 35764 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35765 return 1 35766 } // Partial match 35767 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) { 35768 return -1 35769 } // No match 35770 } 35771 } else { 35772 if Tsize_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int32(eptr))/1) < length { 35773 return 1 35774 } // Partial 35775 if libc.Xmemcmp(tls, p, eptr, length*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) != 0 { 35776 return -1 35777 } // No match 35778 eptr += TPCRE2_SPTR8(length) 35779 } 35780 } 35781 35782 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = Tsize_t((int32(eptr) - int32(eptr_start)) / 1) 35783 return 0 // Match 35784 } 35785 35786 //***************************************************************************** 35787 // 35788 // "Recursion" in the match() function 35789 // 35790 // The original match() function was highly recursive, but this proved to be the 35791 // source of a number of problems over the years, mostly because of the relatively 35792 // small system stacks that are commonly found. As new features were added to 35793 // patterns, various kludges were invented to reduce the amount of stack used, 35794 // making the code hard to understand in places. 35795 // 35796 // A version did exist that used individual frames on the heap instead of calling 35797 // match() recursively, but this ran substantially slower. The current version is 35798 // a refactoring that uses a vector of frames to remember backtracking points. 35799 // This runs no slower, and possibly even a bit faster than the original recursive 35800 // implementation. An initial vector of size START_FRAMES_SIZE (enough for maybe 35801 // 50 frames) is allocated on the system stack. If this is not big enough, the 35802 // heap is used for a larger vector. 35803 // 35804 // ******************************************************************************* 35805 // ***************************************************************************** 35806 35807 // ************************************************ 35808 // 35809 // Macros for the match() function * 35810 // 35811 35812 // These macros pack up tests that are used for partial matching several times 35813 // in the code. The second one is used when we already know we are past the end of 35814 // the subject. We set the "hit end" flag if the pointer is at the end of the 35815 // subject and either (a) the pointer is past the earliest inspected character 35816 // (i.e. something has been matched, even if not part of the actual matched 35817 // string), or (b) the pattern contains a lookbehind. These are the conditions for 35818 // which adding more characters may allow the current match to continue. 35819 // 35820 // For hard partial matching, we immediately return a partial match. Otherwise, 35821 // carrying on means that a complete match on the current subject will be sought. 35822 // A partial match is returned only if no complete match can be found. 35823 35824 // These macros are used to implement backtracking. They simulate a recursive 35825 // call to the match() function by means of a local vector of frames which 35826 // remember the backtracking points. 35827 35828 // ************************************************ 35829 // 35830 // Match from current position * 35831 // 35832 35833 // This function is called to run one match attempt at a single starting point 35834 // in the subject. 35835 // 35836 // Performance note: It might be tempting to extract commonly used fields from the 35837 // mb structure (e.g. end_subject) into individual variables to improve 35838 // performance. Tests using gcc on a SPARC disproved this; in the first case, it 35839 // made performance worse. 35840 // 35841 // Arguments: 35842 // start_eptr starting character in subject 35843 // start_ecode starting position in compiled code 35844 // ovector pointer to the final output vector 35845 // oveccount number of pairs in ovector 35846 // top_bracket number of capturing parentheses in the pattern 35847 // frame_size size of each backtracking frame 35848 // mb pointer to "static" variables block 35849 // 35850 // Returns: MATCH_MATCH if matched ) these values are >= 0 35851 // MATCH_NOMATCH if failed to match ) 35852 // negative MATCH_xxx value for PRUNE, SKIP, etc 35853 // negative PCRE2_ERROR_xxx value if aborted by an error condition 35854 // (e.g. stopped by repeated call or depth limit) 35855 35856 func match(tls *libc.TLS, start_eptr TPCRE2_SPTR8, start_ecode TPCRE2_SPTR8, ovector uintptr, oveccount Tuint16_t, top_bracket Tuint16_t, frame_size Tsize_t, mb uintptr) int32 { /* pcre2_match.c:583:1: */ 35857 bp := tls.Alloc(20) 35858 defer tls.Free(20) 35859 35860 // Frame-handling variables 35861 35862 var F uintptr // Current frame pointer 35863 var N uintptr // Temporary frame pointers 35864 var P uintptr 35865 var assert_accept_frame uintptr // For passing back a frame with captures 35866 var frame_copy_size Tsize_t // Amount to copy when creating a new frame 35867 35868 // Local variables that do not need to be preserved over calls to RRMATCH(). 35869 35870 var bracode TPCRE2_SPTR8 // Temp pointer to start of group 35871 var offset Tsize_t // Used for group offsets 35872 // var length Tsize_t at bp, 4 35873 // Used for various length calculations 35874 35875 var rrc int32 // Return from functions & backtracking "recursions" 35876 var proptype int32 // Type of character property 35877 35878 var i Tuint32_t // Used for local loops 35879 var fc Tuint32_t // Character values 35880 var number Tuint32_t // Used for group and other numbers 35881 var reptype Tuint32_t // Type of repetition (0 to avoid compiler warning) 35882 var group_frame_type Tuint32_t // Specifies type for new group frames 35883 35884 var condition TBOOL // Used in conditional groups 35885 var cur_is_word TBOOL // Used in "word" tests 35886 var prev_is_word TBOOL // Used in "word" tests 35887 35888 // UTF and UCP flags 35889 35890 var utf TBOOL 35891 var ucp TBOOL 35892 var maxsize Tsize_t 35893 var newsize Tsize_t 35894 var new uintptr 35895 var cc Tuint32_t 35896 var dc Tuint32_t 35897 var cc1 Tuint32_t 35898 var ch Tuint32_t 35899 var ch1 Tuint32_t 35900 var ch2 Tuint32_t 35901 var othercase Tuint32_t 35902 var cc2 Tuint32_t 35903 var cc3 Tuint32_t 35904 var cc4 Tuint32_t 35905 var d Tuint32_t 35906 var d1 Tuint32_t 35907 var len int32 35908 var d2 Tuint32_t 35909 var d3 Tuint32_t 35910 var d4 Tuint32_t 35911 var len1 int32 35912 var d5 Tuint32_t 35913 var len2 int32 35914 var len3 int32 35915 var ok TBOOL 35916 var ok1 TBOOL 35917 var cp uintptr 35918 var prop uintptr 35919 var notmatch TBOOL 35920 var chartype int32 35921 var ok2 TBOOL 35922 var prop1 uintptr 35923 var category int32 35924 var category1 int32 35925 var cp1 uintptr 35926 var ok3 TBOOL 35927 var prop2 uintptr 35928 var notmatch1 TBOOL 35929 var cc5 Tuint32_t 35930 var cc6 Tuint32_t 35931 var cc7 Tuint32_t 35932 var cc8 Tuint32_t 35933 var cc9 Tuint32_t 35934 var chartype1 int32 35935 var ok4 TBOOL 35936 var prop3 uintptr 35937 var category2 int32 35938 var category3 int32 35939 var cp2 uintptr 35940 var ok5 TBOOL 35941 var prop4 uintptr 35942 var len4 int32 35943 var chartype2 int32 35944 var len5 int32 35945 var len6 int32 35946 var len7 int32 35947 var len8 int32 35948 var ok6 TBOOL 35949 var prop5 uintptr 35950 var len9 int32 35951 var category4 int32 35952 var len10 int32 35953 var len11 int32 35954 var category5 int32 35955 var len12 int32 35956 var cp3 uintptr 35957 var len13 int32 35958 var len14 int32 35959 var len15 int32 35960 var ok7 TBOOL 35961 var prop6 uintptr 35962 var len16 int32 35963 var notmatch2 TBOOL 35964 var lgb int32 35965 var rgb int32 35966 var fptr TPCRE2_SPTR8 35967 var len17 int32 35968 var gotspace TBOOL 35969 var len18 int32 35970 var gotspace1 TBOOL 35971 var len19 int32 35972 var len20 int32 35973 var len21 int32 35974 var len22 int32 35975 var len23 int32 35976 var len24 int32 35977 var len25 int32 35978 var count int32 35979 var slot TPCRE2_SPTR8 35980 // var slength Tsize_t at bp+4, 4 35981 35982 // var slength1 Tsize_t at bp+8, 4 35983 35984 // var slength2 Tsize_t at bp+12, 4 35985 35986 // var slength3 Tsize_t at bp+16, 4 35987 35988 var samelengths TBOOL 35989 var next_ecode TPCRE2_SPTR8 35990 var next_ecode1 TPCRE2_SPTR8 35991 var next_ecode2 TPCRE2_SPTR8 35992 var count1 int32 35993 var slot1 TPCRE2_SPTR8 35994 var count2 int32 35995 var slot2 TPCRE2_SPTR8 35996 var y Tuint32_t 35997 var cat int32 35998 var lastptr TPCRE2_SPTR8 35999 var cat1 int32 36000 var nextptr TPCRE2_SPTR8 36001 N = uintptr(0) 36002 P = uintptr(0) 36003 assert_accept_frame = uintptr(0) 36004 reptype = Tuint32_t(0) 36005 utf = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 36006 ucp = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 36007 36008 // This is the length of the last part of a backtracking frame that must be 36009 // copied when a new frame is created. 36010 36011 frame_copy_size = frame_size - Tsize_t(uintptr(0)+56) 36012 36013 // Set up the first current frame at the start of the vector, and initialize 36014 // fields that are not reset for new frames. 36015 36016 F = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames 36017 (*Theapframe)(unsafe.Pointer(F)).Frdepth = Tuint32_t(0) // "Recursion" depth 36018 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = Tuint32_t(0) // Number of most recent capture 36019 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = DRECURSE_UNSET // Not pattern recursing. 36020 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = libc.AssignPtrUintptr(F+56, start_eptr) // Current data pointer and start match 36021 (*Theapframe)(unsafe.Pointer(F)).Fmark = uintptr(0) // Most recent mark 36022 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = Tsize_t(0) // End of captures within the frame 36023 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = libc.CplUint32(Tsize_t(0)) // Saved frame of most recent group 36024 group_frame_type = Tuint32_t(0) // Not a start of group frame 36025 goto NEW_FRAME // Start processing with this frame 36026 36027 // Come back here when we want to create a new frame for remembering a 36028 // backtracking point. 36029 36030 MATCH_RECURSE: 36031 36032 // Set up a new backtracking frame. If the vector is full, get a new one 36033 // on the heap, doubling the size, but constrained by the heap limit. 36034 36035 N = F + uintptr(frame_size) 36036 if !(N >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top) { 36037 goto __1 36038 } 36039 36040 newsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size * Tsize_t(2) 36041 36042 if !(newsize/Tsize_t(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 36043 goto __2 36044 } 36045 36046 maxsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * Tsize_t(1024) / frame_size * frame_size 36047 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size >= maxsize) { 36048 goto __3 36049 } 36050 return -63 36051 __3: 36052 ; 36053 newsize = maxsize 36054 __2: 36055 ; 36056 36057 new = (*struct { 36058 f func(*libc.TLS, Tsize_t, uintptr) uintptr 36059 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, newsize, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 36060 if !(new == uintptr(0)) { 36061 goto __4 36062 } 36063 return -48 36064 __4: 36065 ; 36066 libc.Xmemcpy(tls, new, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size) 36067 36068 F = new + uintptr((int32(F)-int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames))/1) 36069 N = F + uintptr(frame_size) 36070 36071 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 36072 goto __5 36073 } 36074 (*struct { 36075 f func(*libc.TLS, uintptr, uintptr) 36076 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 36077 __5: 36078 ; 36079 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = new 36080 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(newsize) 36081 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = newsize 36082 __1: 36083 ; 36084 36085 // Copy those fields that must be copied into the new frame, increase the 36086 // "recursion" depth (i.e. the new frame's index) and then make the new frame 36087 // current. 36088 36089 libc.Xmemcpy(tls, N+uintptr(uint32(uintptr(0)+56)), 36090 F+uintptr(uint32(uintptr(0)+56)), 36091 frame_copy_size) 36092 36093 (*Theapframe)(unsafe.Pointer(N)).Frdepth = (*Theapframe)(unsafe.Pointer(F)).Frdepth + Tuint32_t(1) 36094 F = N 36095 36096 // Carry on processing with a new frame. 36097 36098 NEW_FRAME: 36099 (*Theapframe)(unsafe.Pointer(F)).Fgroup_frame_type = group_frame_type 36100 (*Theapframe)(unsafe.Pointer(F)).Fecode = start_ecode // Starting code pointer 36101 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = frame_size // Default is go back one frame 36102 36103 // If this is a special type of group frame, remember its offset for quick 36104 // access at the end of the group. If this is a recursion, set a new current 36105 // recursion value. 36106 36107 if !(group_frame_type != Tuint32_t(0)) { 36108 goto __6 36109 } 36110 36111 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = Tsize_t((int32(F) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames)) / 1) 36112 if !(group_frame_type&0xffff0000 == DGF_RECURSE) { 36113 goto __7 36114 } 36115 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = group_frame_type & 0x0000ffff 36116 __7: 36117 ; 36118 group_frame_type = Tuint32_t(0) 36119 __6: 36120 ; 36121 36122 // ========================================================================= 36123 // This is the main processing loop. First check that we haven't recorded too 36124 // many backtracks (search tree is too large), or that we haven't exceeded the 36125 // recursive depth limit (used too many backtracking frames). If not, process the 36126 // opcodes. 36127 36128 if !(libc.PostIncUint32(&(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 36129 goto __8 36130 } 36131 return -47 36132 __8: 36133 ; 36134 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 36135 goto __9 36136 } 36137 return -53 36138 __9: 36139 ; 36140 36141 __10: 36142 36143 (*Theapframe)(unsafe.Pointer(F)).Fop = *(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)) // Cast needed for 16-bit and 32-bit modes 36144 switch int32((*Theapframe)(unsafe.Pointer(F)).Fop) { 36145 // ===================================================================== 36146 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36147 // any currently open capturing brackets. Unlike reaching the end of a group, 36148 // where we know the starting frame is at the top of the chained frames, in 36149 // this case we have to search back for the relevant frame in case other types 36150 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36151 // come innermost first, which matches the chain order. We can ignore this in 36152 // a recursion, because captures are not passed out of recursions. 36153 36154 case OP_CLOSE: 36155 goto __14 36156 36157 // ===================================================================== 36158 // Real or forced end of the pattern, assertion, or recursion. In an 36159 // assertion ACCEPT, update the last used pointer and remember the current 36160 // frame so that the captures and mark can be fished out of it. 36161 36162 case OP_ASSERT_ACCEPT: 36163 goto __15 36164 36165 // If recursing, we have to find the most recent recursion. 36166 36167 case OP_ACCEPT: 36168 goto __16 36169 case OP_END: 36170 goto __17 // Note: NOT RRETURN 36171 36172 //===================================================================== 36173 // Match any single character type except newline; have to take care with 36174 // CRLF newlines and partial matching. 36175 36176 case OP_ANY: 36177 goto __18 36178 // Fall through 36179 36180 // Match any single character whatsoever. 36181 36182 case OP_ALLANY: 36183 goto __19 36184 36185 // ===================================================================== 36186 // Match a single code unit, even in UTF mode. This opcode really does 36187 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 36188 // of course - the byte name is from pre-16 bit days.) 36189 36190 case OP_ANYBYTE: 36191 goto __20 36192 36193 // ===================================================================== 36194 // Match a single character, casefully 36195 36196 case OP_CHAR: 36197 goto __21 36198 36199 // ===================================================================== 36200 // Match a single character, caselessly. If we are at the end of the 36201 // subject, give up immediately. We get here only when the pattern character 36202 // has at most one other case. Characters with more than two cases are coded 36203 // as OP_PROP with the pseudo-property PT_CLIST. 36204 36205 case OP_CHARI: 36206 goto __22 36207 36208 // ===================================================================== 36209 // Match not a single character. 36210 36211 case OP_NOT: 36212 goto __23 36213 case OP_NOTI: 36214 goto __24 36215 36216 // ===================================================================== 36217 // Match a single character repeatedly. 36218 36219 case OP_EXACT: 36220 goto __25 36221 case OP_EXACTI: 36222 goto __26 36223 36224 case OP_POSUPTO: 36225 goto __27 36226 case OP_POSUPTOI: 36227 goto __28 36228 36229 case OP_UPTO: 36230 goto __29 36231 case OP_UPTOI: 36232 goto __30 36233 36234 case OP_MINUPTO: 36235 goto __31 36236 case OP_MINUPTOI: 36237 goto __32 36238 36239 case OP_POSSTAR: 36240 goto __33 36241 case OP_POSSTARI: 36242 goto __34 36243 36244 case OP_POSPLUS: 36245 goto __35 36246 case OP_POSPLUSI: 36247 goto __36 36248 36249 case OP_POSQUERY: 36250 goto __37 36251 case OP_POSQUERYI: 36252 goto __38 36253 36254 case OP_STAR: 36255 goto __39 36256 case OP_STARI: 36257 goto __40 36258 case OP_MINSTAR: 36259 goto __41 36260 case OP_MINSTARI: 36261 goto __42 36262 case OP_PLUS: 36263 goto __43 36264 case OP_PLUSI: 36265 goto __44 36266 case OP_MINPLUS: 36267 goto __45 36268 case OP_MINPLUSI: 36269 goto __46 36270 case OP_QUERY: 36271 goto __47 36272 case OP_QUERYI: 36273 goto __48 36274 case OP_MINQUERY: 36275 goto __49 36276 case OP_MINQUERYI: 36277 goto __50 36278 36279 // ===================================================================== 36280 // Match a negated single one-byte character repeatedly. This is almost a 36281 // repeat of the code for a repeated single character, but I haven't found a 36282 // nice way of commoning these up that doesn't require a test of the 36283 // positive/negative option for each character match. Maybe that wouldn't add 36284 // very much to the time taken, but character matching *is* what this is all 36285 // about... 36286 36287 case OP_NOTEXACT: 36288 goto __51 36289 case OP_NOTEXACTI: 36290 goto __52 36291 36292 case OP_NOTUPTO: 36293 goto __53 36294 case OP_NOTUPTOI: 36295 goto __54 36296 36297 case OP_NOTMINUPTO: 36298 goto __55 36299 case OP_NOTMINUPTOI: 36300 goto __56 36301 36302 case OP_NOTPOSSTAR: 36303 goto __57 36304 case OP_NOTPOSSTARI: 36305 goto __58 36306 36307 case OP_NOTPOSPLUS: 36308 goto __59 36309 case OP_NOTPOSPLUSI: 36310 goto __60 36311 36312 case OP_NOTPOSQUERY: 36313 goto __61 36314 case OP_NOTPOSQUERYI: 36315 goto __62 36316 36317 case OP_NOTPOSUPTO: 36318 goto __63 36319 case OP_NOTPOSUPTOI: 36320 goto __64 36321 36322 case OP_NOTSTAR: 36323 goto __65 36324 case OP_NOTSTARI: 36325 goto __66 36326 case OP_NOTMINSTAR: 36327 goto __67 36328 case OP_NOTMINSTARI: 36329 goto __68 36330 case OP_NOTPLUS: 36331 goto __69 36332 case OP_NOTPLUSI: 36333 goto __70 36334 case OP_NOTMINPLUS: 36335 goto __71 36336 case OP_NOTMINPLUSI: 36337 goto __72 36338 case OP_NOTQUERY: 36339 goto __73 36340 case OP_NOTQUERYI: 36341 goto __74 36342 case OP_NOTMINQUERY: 36343 goto __75 36344 case OP_NOTMINQUERYI: 36345 goto __76 36346 36347 // ===================================================================== 36348 // Match a bit-mapped character class, possibly repeatedly. These opcodes 36349 // are used when all the characters in the class have values in the range 36350 // 0-255, and either the matching is caseful, or the characters are in the 36351 // range 0-127 when UTF processing is enabled. The only difference between 36352 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 36353 // encountered. 36354 36355 case OP_NCLASS: 36356 goto __77 36357 case OP_CLASS: 36358 goto __78 36359 // Control never gets here 36360 36361 // ===================================================================== 36362 // Match an extended character class. In the 8-bit library, this opcode is 36363 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 36364 // 32-bit libraries, codepoints greater than 255 may be encountered even when 36365 // UTF is not supported. 36366 36367 case OP_XCLASS: 36368 goto __79 36369 36370 // ===================================================================== 36371 // Match various character types when PCRE2_UCP is not set. These opcodes 36372 // are not generated when PCRE2_UCP is set - instead appropriate property 36373 // tests are compiled. 36374 36375 case OP_NOT_DIGIT: 36376 goto __80 36377 36378 case OP_DIGIT: 36379 goto __81 36380 36381 case OP_NOT_WHITESPACE: 36382 goto __82 36383 36384 case OP_WHITESPACE: 36385 goto __83 36386 36387 case OP_NOT_WORDCHAR: 36388 goto __84 36389 36390 case OP_WORDCHAR: 36391 goto __85 36392 36393 case OP_ANYNL: 36394 goto __86 36395 36396 case OP_NOT_HSPACE: 36397 goto __87 36398 36399 case OP_HSPACE: 36400 goto __88 36401 36402 case OP_NOT_VSPACE: 36403 goto __89 36404 36405 case OP_VSPACE: 36406 goto __90 36407 36408 // ===================================================================== 36409 // Check the next character by Unicode property. We will get here only 36410 // if the support is in the binary; otherwise a compile-time error occurs. 36411 36412 case OP_PROP: 36413 goto __91 36414 case OP_NOTPROP: 36415 goto __92 36416 36417 // ===================================================================== 36418 // Match an extended Unicode sequence. We will get here only if the support 36419 // is in the binary; otherwise a compile-time error occurs. 36420 36421 case OP_EXTUNI: 36422 goto __93 36423 36424 // ===================================================================== 36425 // Match a single character type repeatedly. Note that the property type 36426 // does not need to be in a stack frame as it is not used within an RMATCH() 36427 // loop. 36428 36429 case OP_TYPEEXACT: 36430 goto __94 36431 36432 case OP_TYPEUPTO: 36433 goto __95 36434 case OP_TYPEMINUPTO: 36435 goto __96 36436 36437 case OP_TYPEPOSSTAR: 36438 goto __97 36439 36440 case OP_TYPEPOSPLUS: 36441 goto __98 36442 36443 case OP_TYPEPOSQUERY: 36444 goto __99 36445 36446 case OP_TYPEPOSUPTO: 36447 goto __100 36448 36449 case OP_TYPESTAR: 36450 goto __101 36451 case OP_TYPEMINSTAR: 36452 goto __102 36453 case OP_TYPEPLUS: 36454 goto __103 36455 case OP_TYPEMINPLUS: 36456 goto __104 36457 case OP_TYPEQUERY: 36458 goto __105 36459 case OP_TYPEMINQUERY: 36460 goto __106 // End of repeat character type processing 36461 36462 // ===================================================================== 36463 // Match a back reference, possibly repeatedly. Look past the end of the 36464 // item to see if there is repeat information following. The OP_REF and 36465 // OP_REFI opcodes are used for a reference to a numbered group or to a 36466 // non-duplicated named group. For a duplicated named group, OP_DNREF and 36467 // OP_DNREFI are used. In this case we must scan the list of groups to which 36468 // the name refers, and use the first one that is set. 36469 36470 case OP_DNREF: 36471 goto __107 36472 case OP_DNREFI: 36473 goto __108 36474 36475 case OP_REF: 36476 goto __109 36477 case OP_REFI: 36478 goto __110 36479 // Control never gets here 36480 36481 // ========================================================================= 36482 // Opcodes for the start of various parenthesized items 36483 // ========================================================================= 36484 36485 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 36486 // (*THEN) is within the current branch by comparing the address of OP_THEN 36487 // that is passed back with the end of the branch. If (*THEN) is within the 36488 // current branch, and the branch is one of two or more alternatives (it 36489 // either starts or ends with OP_ALT), we have reached the limit of THEN's 36490 // action, so convert the return code to NOMATCH, which will cause normal 36491 // backtracking to happen from now on. Otherwise, THEN is passed back to an 36492 // outer alternative. This implements Perl's treatment of parenthesized 36493 // groups, where a group not containing | does not affect the current 36494 // alternative, that is, (X) is NOT the same as (X|(*F)). 36495 36496 // ===================================================================== 36497 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 36498 // bracket group, indicating that it may occur zero times. It may repeat 36499 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 36500 // the pattern. Brackets with fixed upper repeat limits are compiled as a 36501 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 36502 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 36503 36504 case OP_BRAZERO: 36505 goto __111 36506 36507 case OP_BRAMINZERO: 36508 goto __112 36509 36510 case OP_SKIPZERO: 36511 goto __113 36512 36513 // ===================================================================== 36514 // Handle possessive brackets with an unlimited repeat. The end of these 36515 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 36516 // going further in the pattern. 36517 36518 case OP_BRAPOSZERO: 36519 goto __114 36520 36521 case OP_BRAPOS: 36522 goto __115 36523 case OP_SBRAPOS: 36524 goto __116 36525 36526 case OP_CBRAPOS: 36527 goto __117 36528 case OP_SCBRAPOS: 36529 goto __118 36530 36531 // ===================================================================== 36532 // Handle non-capturing brackets that cannot match an empty string. When we 36533 // get to the final alternative within the brackets, as long as there are no 36534 // THEN's in the pattern, we can optimize by not recording a new backtracking 36535 // point. (Ideally we should test for a THEN within this group, but we don't 36536 // have that information.) Don't do this if we are at the very top level, 36537 // however, because that would make handling assertions and once-only brackets 36538 // messier when there is nothing to go back to. 36539 36540 case OP_BRA: 36541 goto __119 36542 36543 // ===================================================================== 36544 // Handle a capturing bracket, other than those that are possessive with an 36545 // unlimited repeat. 36546 36547 case OP_CBRA: 36548 goto __120 36549 case OP_SCBRA: 36550 goto __121 36551 36552 // ===================================================================== 36553 // Atomic groups and non-capturing brackets that can match an empty string 36554 // must record a backtracking point and also set up a chained frame. 36555 36556 case OP_ONCE: 36557 goto __122 36558 case OP_SCRIPT_RUN: 36559 goto __123 36560 case OP_SBRA: 36561 goto __124 36562 // Control never reaches here. 36563 36564 // ===================================================================== 36565 // Recursion either matches the current regex, or some subexpression. The 36566 // offset data is the offset to the starting bracket from the start of the 36567 // whole pattern. (This is so that it works from duplicated subpatterns.) 36568 36569 case OP_RECURSE: 36570 goto __125 36571 // Control never reaches here. 36572 36573 // ===================================================================== 36574 // Positive assertions are like other groups except that PCRE doesn't allow 36575 // the effect of (*THEN) to escape beyond an assertion; it is therefore 36576 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 36577 // captures and mark retained. Any other return is an error. 36578 36579 case OP_ASSERT: 36580 goto __126 36581 case OP_ASSERTBACK: 36582 goto __127 36583 case OP_ASSERT_NA: 36584 goto __128 36585 case OP_ASSERTBACK_NA: 36586 goto __129 36587 36588 // ===================================================================== 36589 // Handle negative assertions. Loop for each non-matching branch as for 36590 // positive assertions. 36591 36592 case OP_ASSERT_NOT: 36593 goto __130 36594 case OP_ASSERTBACK_NOT: 36595 goto __131 36596 36597 // ===================================================================== 36598 // The callout item calls an external function, if one is provided, passing 36599 // details of the match so far. This is mainly for debugging, though the 36600 // function is able to force a failure. 36601 36602 case OP_CALLOUT: 36603 goto __132 36604 case OP_CALLOUT_STR: 36605 goto __133 36606 36607 // ===================================================================== 36608 // Conditional group: compilation checked that there are no more than two 36609 // branches. If the condition is false, skipping the first branch takes us 36610 // past the end of the item if there is only one branch, but that's exactly 36611 // what we want. 36612 36613 case OP_COND: 36614 goto __134 36615 case OP_SCOND: 36616 goto __135 36617 36618 // ========================================================================= 36619 // End of start of parenthesis opcodes 36620 // ========================================================================= 36621 36622 // ===================================================================== 36623 // Move the subject pointer back. This occurs only at the start of each 36624 // branch of a lookbehind assertion. If we are too close to the start to move 36625 // back, fail. When working with UTF-8 we move back a number of characters, 36626 // not bytes. 36627 36628 case OP_REVERSE: 36629 goto __136 36630 36631 // ===================================================================== 36632 // An alternation is the end of a branch; scan along to find the end of the 36633 // bracketed group. 36634 36635 case OP_ALT: 36636 goto __137 36637 36638 // ===================================================================== 36639 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 36640 // starting frame was added to the chained frames in order to remember the 36641 // starting subject position for the group. 36642 36643 case OP_KET: 36644 goto __138 36645 case OP_KETRMIN: 36646 goto __139 36647 case OP_KETRMAX: 36648 goto __140 36649 case OP_KETRPOS: 36650 goto __141 36651 36652 // ===================================================================== 36653 // Start and end of line assertions, not multiline mode. 36654 36655 case OP_CIRC: 36656 goto __142 36657 36658 case OP_SOD: 36659 goto __143 36660 36661 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 36662 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 36663 36664 case OP_DOLL: 36665 goto __144 36666 36667 // Fall through 36668 // Unconditional end of subject assertion (\z) 36669 36670 case OP_EOD: 36671 goto __145 36672 36673 // End of subject or ending \n assertion (\Z) 36674 36675 case OP_EODN: 36676 goto __146 36677 36678 // ===================================================================== 36679 // Start and end of line assertions, multiline mode. 36680 36681 // Start of subject unless notbol, or after any newline except for one at 36682 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 36683 36684 case OP_CIRCM: 36685 goto __147 36686 36687 // Assert before any newline, or before end of subject unless noteol is 36688 // set. 36689 36690 case OP_DOLLM: 36691 goto __148 36692 36693 // ===================================================================== 36694 // Start of match assertion 36695 36696 case OP_SOM: 36697 goto __149 36698 36699 // ===================================================================== 36700 // Reset the start of match point 36701 36702 case OP_SET_SOM: 36703 goto __150 36704 36705 // ===================================================================== 36706 // Word boundary assertions. Find out if the previous and current 36707 // characters are "word" characters. It takes a bit more work in UTF mode. 36708 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 36709 // not set. When it is set, use Unicode properties if available, even when not 36710 // in UTF mode. Remember the earliest and latest consulted characters. 36711 36712 case OP_NOT_WORD_BOUNDARY: 36713 goto __151 36714 case OP_WORD_BOUNDARY: 36715 goto __152 36716 36717 // ===================================================================== 36718 // Backtracking (*VERB)s, with and without arguments. Note that if the 36719 // pattern is successfully matched, we do not come back from RMATCH. 36720 36721 case OP_MARK: 36722 goto __153 36723 36724 case OP_FAIL: 36725 goto __154 36726 36727 // Record the current recursing group number in mb->verb_current_recurse 36728 // when a backtracking return such as MATCH_COMMIT is given. This enables the 36729 // recurse processing to catch verbs from within the recursion. 36730 36731 case OP_COMMIT: 36732 goto __155 36733 36734 case OP_COMMIT_ARG: 36735 goto __156 36736 36737 case OP_PRUNE: 36738 goto __157 36739 36740 case OP_PRUNE_ARG: 36741 goto __158 36742 36743 case OP_SKIP: 36744 goto __159 36745 36746 // Note that, for Perl compatibility, SKIP with an argument does NOT set 36747 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 36748 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 36749 // that failed and any that precede it (either they also failed, or were not 36750 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 36751 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 36752 // set to the count of the one that failed. 36753 36754 case OP_SKIP_ARG: 36755 goto __160 36756 36757 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 36758 // the branch in which it occurs can be determined. 36759 36760 case OP_THEN: 36761 goto __161 36762 36763 case OP_THEN_ARG: 36764 goto __162 36765 36766 // ===================================================================== 36767 // There's been some horrible disaster. Arrival here can only mean there is 36768 // something seriously wrong in the code above or the OP_xxx definitions. 36769 36770 default: 36771 goto __163 36772 } 36773 goto __13 36774 36775 // ===================================================================== 36776 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36777 // any currently open capturing brackets. Unlike reaching the end of a group, 36778 // where we know the starting frame is at the top of the chained frames, in 36779 // this case we have to search back for the relevant frame in case other types 36780 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36781 // come innermost first, which matches the chain order. We can ignore this in 36782 // a recursion, because captures are not passed out of recursions. 36783 36784 __14: 36785 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == DRECURSE_UNSET) { 36786 goto __164 36787 } 36788 36789 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 36790 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36791 __165: 36792 36793 if !(offset == libc.CplUint32(Tsize_t(0))) { 36794 goto __168 36795 } 36796 return -44 36797 __168: 36798 ; 36799 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36800 P = N - uintptr(frame_size) 36801 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_CAPTURE|number) { 36802 goto __169 36803 } 36804 goto __167 36805 __169: 36806 ; 36807 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36808 goto __166 36809 __166: 36810 goto __165 36811 goto __167 36812 __167: 36813 ; 36814 offset = Tsize_t(number<<1 - Tuint32_t(2)) 36815 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 36816 *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(P)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36817 *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset+Tsize_t(1))*4)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(F)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36818 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 36819 goto __170 36820 } 36821 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + Tsize_t(2) 36822 __170: 36823 ; 36824 __164: 36825 ; 36826 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 36827 goto __13 36828 36829 // ===================================================================== 36830 // Real or forced end of the pattern, assertion, or recursion. In an 36831 // assertion ACCEPT, update the last used pointer and remember the current 36832 // frame so that the captures and mark can be fished out of it. 36833 36834 __15: 36835 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36836 goto __171 36837 } 36838 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36839 __171: 36840 ; 36841 assert_accept_frame = F 36842 rrc = -999 36843 goto RETURN_SWITCH 36844 36845 // If recursing, we have to find the most recent recursion. 36846 36847 __16: 36848 __17: 36849 36850 // Handle end of a recursion. 36851 36852 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 36853 goto __172 36854 } 36855 36856 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36857 __173: 36858 36859 if !(offset == libc.CplUint32(Tsize_t(0))) { 36860 goto __176 36861 } 36862 return -44 36863 __176: 36864 ; 36865 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36866 P = N - uintptr(frame_size) 36867 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_RECURSE) { 36868 goto __177 36869 } 36870 goto __175 36871 __177: 36872 ; 36873 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36874 goto __174 36875 __174: 36876 goto __173 36877 goto __175 36878 __175: 36879 ; 36880 36881 // N is now the frame of the recursion; the previous frame is at the 36882 // OP_RECURSE position. Go back there, copying the current subject position 36883 // and mark, and the start_match position (\K might have changed it), and 36884 // then move on past the OP_RECURSE. 36885 36886 (*Theapframe)(unsafe.Pointer(P)).Feptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36887 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 36888 (*Theapframe)(unsafe.Pointer(P)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Fstart_match 36889 F = P 36890 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 36891 goto __11 36892 __172: 36893 ; 36894 36895 // Not a recursion. Fail for an empty string match if either PCRE2_NOTEMPTY 36896 // is set, or if PCRE2_NOTEMPTY_ATSTART is set and we have matched at the 36897 // start of the subject. In both cases, backtracking will then try other 36898 // alternatives, if any. 36899 36900 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Theapframe)(unsafe.Pointer(F)).Fstart_match && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY != Tuint32_t(0) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY_ATSTART != Tuint32_t(0) && (*Theapframe)(unsafe.Pointer(F)).Fstart_match == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset))) { 36901 goto __178 36902 } 36903 rrc = DMATCH_NOMATCH 36904 goto RETURN_SWITCH 36905 __178: 36906 ; 36907 36908 // Also fail if PCRE2_ENDANCHORED is set and the end of the match is not 36909 // the end of the subject. After (*ACCEPT) we fail the entire match (at this 36910 // position) but backtrack on reaching the end of the pattern. 36911 36912 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions|(*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 36913 goto __179 36914 } 36915 36916 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_END) { 36917 goto __180 36918 } 36919 rrc = DMATCH_NOMATCH 36920 goto RETURN_SWITCH 36921 __180: 36922 ; 36923 36924 return DMATCH_NOMATCH 36925 __179: 36926 ; 36927 36928 // We have a successful match of the whole pattern. Record the result and 36929 // then do a direct return from the function. If there is space in the offset 36930 // vector, set any pairs that follow the highest-numbered captured string but 36931 // are less than the number of capturing groups in the pattern to PCRE2_UNSET. 36932 // It is documented that this happens. "Gaps" are set to PCRE2_UNSET 36933 // dynamically. It is only those at the end that need setting here. 36934 36935 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Record where we ended 36936 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top // and how many extracts were taken 36937 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark // and the last success mark 36938 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36939 goto __181 36940 } 36941 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36942 __181: 36943 ; 36944 36945 *(*Tsize_t)(unsafe.Pointer(ovector)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(F)).Fstart_match) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36946 *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(F)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36947 36948 // Set i to the smaller of the sizes of the external and frame ovectors. 36949 36950 i = Tuint32_t(2 * func() int32 { 36951 if int32(top_bracket)+1 > int32(oveccount) { 36952 return int32(oveccount) 36953 } 36954 return int32(top_bracket) + 1 36955 }()) 36956 libc.Xmemcpy(tls, ovector+uintptr(2)*4, F+84, uint32(i-Tuint32_t(2))*uint32(unsafe.Sizeof(Tsize_t(0)))) 36957 __182: 36958 if !(Tsize_t(libc.PreDecUint32(&i, 1)) >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top+Tsize_t(2)) { 36959 goto __183 36960 } 36961 *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4)) = libc.CplUint32(Tsize_t(0)) 36962 goto __182 36963 __183: 36964 ; 36965 return DMATCH_MATCH // Note: NOT RRETURN 36966 36967 //===================================================================== 36968 // Match any single character type except newline; have to take care with 36969 // CRLF newlines and partial matching. 36970 36971 __18: 36972 if !(func() int32 { 36973 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 36974 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 36975 } 36976 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 36977 }() != 0) { 36978 goto __184 36979 } 36980 rrc = DMATCH_NOMATCH 36981 goto RETURN_SWITCH 36982 __184: 36983 ; 36984 36985 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(1) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 36986 goto __185 36987 } 36988 36989 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 36990 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 36991 goto __186 36992 } 36993 return -2 36994 __186: 36995 ; 36996 __185: 36997 ; 36998 // Fall through 36999 37000 // Match any single character whatsoever. 37001 37002 __19: 37003 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37004 goto __187 37005 } /* DO NOT merge the Feptr++ here; it must */ 37006 // not be updated before SCHECK_PARTIAL. 37007 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37008 goto __188 37009 } 37010 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37011 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37012 goto __189 37013 } 37014 return -2 37015 __189: 37016 ; 37017 __188: 37018 ; 37019 37020 rrc = DMATCH_NOMATCH 37021 goto RETURN_SWITCH 37022 37023 __187: 37024 ; 37025 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37026 if !(utf != 0) { 37027 goto __190 37028 } 37029 __191: 37030 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 37031 goto __192 37032 } 37033 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37034 goto __191 37035 __192: 37036 ; 37037 __190: 37038 ; 37039 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37040 goto __13 37041 37042 // ===================================================================== 37043 // Match a single code unit, even in UTF mode. This opcode really does 37044 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 37045 // of course - the byte name is from pre-16 bit days.) 37046 37047 __20: 37048 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37049 goto __193 37050 } /* DO NOT merge the Feptr++ here; it must */ 37051 // not be updated before SCHECK_PARTIAL. 37052 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37053 goto __194 37054 } 37055 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37056 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37057 goto __195 37058 } 37059 return -2 37060 __195: 37061 ; 37062 __194: 37063 ; 37064 37065 rrc = DMATCH_NOMATCH 37066 goto RETURN_SWITCH 37067 37068 __193: 37069 ; 37070 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37071 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37072 goto __13 37073 37074 // ===================================================================== 37075 // Match a single character, casefully 37076 37077 __21: 37078 if !(utf != 0) { 37079 goto __196 37080 } 37081 37082 (*Theapframe)(unsafe.Pointer(F)).Flength = Tsize_t(1) 37083 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37084 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37085 if !(fc >= 0xc0) { 37086 goto __198 37087 } 37088 if !(fc&0x20 == Tuint32_t(0)) { 37089 goto __199 37090 } 37091 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37092 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37093 goto __200 37094 __199: 37095 if !(fc&0x10 == Tuint32_t(0)) { 37096 goto __201 37097 } 37098 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37099 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(2) 37100 goto __202 37101 __201: 37102 if !(fc&0x08 == Tuint32_t(0)) { 37103 goto __203 37104 } 37105 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37106 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(3) 37107 goto __204 37108 __203: 37109 if !(fc&0x04 == Tuint32_t(0)) { 37110 goto __205 37111 } 37112 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37113 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(4) 37114 goto __206 37115 __205: 37116 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37117 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(5) 37118 __206: 37119 ; 37120 __204: 37121 ; 37122 __202: 37123 ; 37124 __200: 37125 ; 37126 __198: 37127 ; 37128 37129 if !((*Theapframe)(unsafe.Pointer(F)).Flength > Tsize_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int32((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 37130 goto __207 37131 } 37132 37133 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37134 goto __208 37135 } 37136 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37137 goto __209 37138 } 37139 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37140 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37141 goto __210 37142 } 37143 return -2 37144 __210: 37145 ; 37146 __209: 37147 ; 37148 __208: 37149 ; 37150 /* Not SCHECK_PARTIAL() */ 37151 rrc = DMATCH_NOMATCH 37152 goto RETURN_SWITCH 37153 37154 __207: 37155 ; 37156 __211: 37157 if !((*Theapframe)(unsafe.Pointer(F)).Flength > Tsize_t(0)) { 37158 goto __213 37159 } 37160 37161 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 37162 goto __214 37163 } 37164 rrc = DMATCH_NOMATCH 37165 goto RETURN_SWITCH 37166 __214: 37167 ; 37168 37169 goto __212 37170 __212: 37171 (*Theapframe)(unsafe.Pointer(F)).Flength-- 37172 goto __211 37173 goto __213 37174 __213: 37175 ; 37176 goto __197 37177 __196: 37178 37179 /* Not UTF mode */ 37180 37181 if !((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int32((*Theapframe)(unsafe.Pointer(F)).Feptr))/1 < 1) { 37182 goto __215 37183 } 37184 37185 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37186 goto __216 37187 } 37188 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37189 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37190 goto __217 37191 } 37192 return -2 37193 __217: 37194 ; 37195 __216: 37196 ; 37197 /* This one can use SCHECK_PARTIAL() */ 37198 rrc = DMATCH_NOMATCH 37199 goto RETURN_SWITCH 37200 37201 __215: 37202 ; 37203 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 37204 goto __218 37205 } 37206 rrc = DMATCH_NOMATCH 37207 goto RETURN_SWITCH 37208 __218: 37209 ; 37210 37211 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37212 __197: 37213 ; 37214 goto __13 37215 37216 // ===================================================================== 37217 // Match a single character, caselessly. If we are at the end of the 37218 // subject, give up immediately. We get here only when the pattern character 37219 // has at most one other case. Characters with more than two cases are coded 37220 // as OP_PROP with the pseudo-property PT_CLIST. 37221 37222 __22: 37223 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37224 goto __219 37225 } 37226 37227 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37228 goto __220 37229 } 37230 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37231 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37232 goto __221 37233 } 37234 return -2 37235 __221: 37236 ; 37237 __220: 37238 ; 37239 37240 rrc = DMATCH_NOMATCH 37241 goto RETURN_SWITCH 37242 37243 __219: 37244 ; 37245 37246 if !(utf != 0) { 37247 goto __222 37248 } 37249 37250 (*Theapframe)(unsafe.Pointer(F)).Flength = Tsize_t(1) 37251 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37252 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37253 if !(fc >= 0xc0) { 37254 goto __224 37255 } 37256 if !(fc&0x20 == Tuint32_t(0)) { 37257 goto __225 37258 } 37259 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37260 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37261 goto __226 37262 __225: 37263 if !(fc&0x10 == Tuint32_t(0)) { 37264 goto __227 37265 } 37266 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37267 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(2) 37268 goto __228 37269 __227: 37270 if !(fc&0x08 == Tuint32_t(0)) { 37271 goto __229 37272 } 37273 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37274 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(3) 37275 goto __230 37276 __229: 37277 if !(fc&0x04 == Tuint32_t(0)) { 37278 goto __231 37279 } 37280 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37281 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(4) 37282 goto __232 37283 __231: 37284 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37285 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(5) 37286 __232: 37287 ; 37288 __230: 37289 ; 37290 __228: 37291 ; 37292 __226: 37293 ; 37294 __224: 37295 ; 37296 37297 // If the pattern character's value is < 128, we know that its other case 37298 // (if any) is also < 128 (and therefore only one code unit long in all 37299 // code-unit widths), so we can use the fast lookup table. We checked above 37300 // that there is at least one character left in the subject. 37301 37302 if !(fc < Tuint32_t(128)) { 37303 goto __233 37304 } 37305 37306 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37307 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(fc)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc))))) { 37308 goto __235 37309 } 37310 rrc = DMATCH_NOMATCH 37311 goto RETURN_SWITCH 37312 __235: 37313 ; 37314 37315 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37316 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37317 goto __234 37318 __233: 37319 37320 dc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37321 if !(dc >= 0xc0) { 37322 goto __236 37323 } 37324 if !(dc&0x20 == Tuint32_t(0)) { 37325 goto __237 37326 } 37327 dc = dc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37328 goto __238 37329 __237: 37330 if !(dc&0x10 == Tuint32_t(0)) { 37331 goto __239 37332 } 37333 dc = dc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 37334 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 37335 goto __240 37336 __239: 37337 if !(dc&0x08 == Tuint32_t(0)) { 37338 goto __241 37339 } 37340 dc = dc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 37341 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 37342 goto __242 37343 __241: 37344 if !(dc&0x04 == Tuint32_t(0)) { 37345 goto __243 37346 } 37347 dc = dc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 37348 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 37349 goto __244 37350 __243: 37351 dc = dc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 37352 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 37353 __244: 37354 ; 37355 __242: 37356 ; 37357 __240: 37358 ; 37359 __238: 37360 ; 37361 __236: 37362 ; 37363 37364 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37365 if !(dc != fc && dc != Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) { 37366 goto __245 37367 } 37368 rrc = DMATCH_NOMATCH 37369 goto RETURN_SWITCH 37370 __245: 37371 ; 37372 37373 __234: 37374 ; 37375 goto __223 37376 __222: 37377 if !(ucp != 0) { 37378 goto __246 37379 } 37380 37381 cc1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37382 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37383 if !(fc < Tuint32_t(128)) { 37384 goto __248 37385 } 37386 37387 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(fc)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc1))))) { 37388 goto __250 37389 } 37390 rrc = DMATCH_NOMATCH 37391 goto RETURN_SWITCH 37392 __250: 37393 ; 37394 37395 goto __249 37396 __248: 37397 37398 if !(cc1 != fc && cc1 != Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) { 37399 goto __251 37400 } 37401 rrc = DMATCH_NOMATCH 37402 goto RETURN_SWITCH 37403 __251: 37404 ; 37405 37406 __249: 37407 ; 37408 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37409 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37410 goto __247 37411 __246: 37412 37413 /* Not UTF or UCP mode; use the table for characters < 256. */ 37414 37415 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))))) != 37416 int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))) { 37417 goto __252 37418 } 37419 rrc = DMATCH_NOMATCH 37420 goto RETURN_SWITCH 37421 __252: 37422 ; 37423 37424 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37425 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37426 __247: 37427 ; 37428 __223: 37429 ; 37430 goto __13 37431 37432 // ===================================================================== 37433 // Match not a single character. 37434 37435 __23: 37436 __24: 37437 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37438 goto __253 37439 } 37440 37441 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37442 goto __254 37443 } 37444 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37445 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37446 goto __255 37447 } 37448 return -2 37449 __255: 37450 ; 37451 __254: 37452 ; 37453 37454 rrc = DMATCH_NOMATCH 37455 goto RETURN_SWITCH 37456 37457 __253: 37458 ; 37459 37460 if !(utf != 0) { 37461 goto __256 37462 } 37463 37464 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37465 ch = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 37466 if !(ch >= 0xc0) { 37467 goto __258 37468 } 37469 if !(ch&0x20 == Tuint32_t(0)) { 37470 goto __259 37471 } 37472 ch = ch&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 37473 goto __260 37474 __259: 37475 if !(ch&0x10 == Tuint32_t(0)) { 37476 goto __261 37477 } 37478 ch = ch&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37479 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37480 goto __262 37481 __261: 37482 if !(ch&0x08 == Tuint32_t(0)) { 37483 goto __263 37484 } 37485 ch = ch&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37486 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 37487 goto __264 37488 __263: 37489 if !(ch&0x04 == Tuint32_t(0)) { 37490 goto __265 37491 } 37492 ch = ch&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37493 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 37494 goto __266 37495 __265: 37496 ch = ch&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37497 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 37498 __266: 37499 ; 37500 __264: 37501 ; 37502 __262: 37503 ; 37504 __260: 37505 ; 37506 __258: 37507 ; 37508 37509 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37510 if !(fc >= 0xc0) { 37511 goto __267 37512 } 37513 if !(fc&0x20 == Tuint32_t(0)) { 37514 goto __268 37515 } 37516 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37517 goto __269 37518 __268: 37519 if !(fc&0x10 == Tuint32_t(0)) { 37520 goto __270 37521 } 37522 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 37523 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 37524 goto __271 37525 __270: 37526 if !(fc&0x08 == Tuint32_t(0)) { 37527 goto __272 37528 } 37529 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 37530 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 37531 goto __273 37532 __272: 37533 if !(fc&0x04 == Tuint32_t(0)) { 37534 goto __274 37535 } 37536 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 37537 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 37538 goto __275 37539 __274: 37540 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 37541 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 37542 __275: 37543 ; 37544 __273: 37545 ; 37546 __271: 37547 ; 37548 __269: 37549 ; 37550 __267: 37551 ; 37552 37553 if !(ch == fc) { 37554 goto __276 37555 } 37556 37557 rrc = DMATCH_NOMATCH 37558 goto RETURN_SWITCH 37559 // Caseful match 37560 goto __277 37561 __276: 37562 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37563 goto __278 37564 } /* If caseless */ 37565 37566 if !(ch > Tuint32_t(127)) { 37567 goto __279 37568 } 37569 ch = Tuint32_t(int32(ch) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(ch)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(ch)%DUCD_BLOCK_SIZE])*12)).Fother_case) 37570 goto __280 37571 __279: 37572 ch = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch)))) 37573 __280: 37574 ; 37575 if !(ch == fc) { 37576 goto __281 37577 } 37578 rrc = DMATCH_NOMATCH 37579 goto RETURN_SWITCH 37580 __281: 37581 ; 37582 37583 __278: 37584 ; 37585 __277: 37586 ; 37587 goto __257 37588 __256: 37589 if !(ucp != 0) { 37590 goto __282 37591 } 37592 37593 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37594 ch1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37595 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37596 37597 if !(ch1 == fc) { 37598 goto __284 37599 } 37600 37601 rrc = DMATCH_NOMATCH 37602 goto RETURN_SWITCH 37603 // Caseful match 37604 goto __285 37605 __284: 37606 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37607 goto __286 37608 } /* If caseless */ 37609 37610 if !(ch1 > Tuint32_t(127)) { 37611 goto __287 37612 } 37613 ch1 = Tuint32_t(int32(ch1) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(ch1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(ch1)%DUCD_BLOCK_SIZE])*12)).Fother_case) 37614 goto __288 37615 __287: 37616 ch1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch1)))) 37617 __288: 37618 ; 37619 if !(ch1 == fc) { 37620 goto __289 37621 } 37622 rrc = DMATCH_NOMATCH 37623 goto RETURN_SWITCH 37624 __289: 37625 ; 37626 37627 __286: 37628 ; 37629 __285: 37630 ; 37631 goto __283 37632 __282: 37633 37634 /* Neither UTF nor UCP is set */ 37635 37636 ch2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37637 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37638 if !(ch2 == fc || int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI && Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch2)))) == fc) { 37639 goto __290 37640 } 37641 rrc = DMATCH_NOMATCH 37642 goto RETURN_SWITCH 37643 __290: 37644 ; 37645 37646 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37647 __283: 37648 ; 37649 __257: 37650 ; 37651 goto __13 37652 37653 // ===================================================================== 37654 // Match a single character repeatedly. 37655 37656 __25: 37657 __26: 37658 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = libc.AssignPtrUint32(F+32+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 37659 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37660 goto REPEATCHAR 37661 37662 __27: 37663 __28: 37664 reptype = REPTYPE_POS 37665 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 37666 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37667 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37668 goto REPEATCHAR 37669 37670 __29: 37671 __30: 37672 reptype = REPTYPE_MAX 37673 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 37674 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37675 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37676 goto REPEATCHAR 37677 37678 __31: 37679 __32: 37680 reptype = REPTYPE_MIN 37681 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 37682 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37683 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37684 goto REPEATCHAR 37685 37686 __33: 37687 __34: 37688 reptype = REPTYPE_POS 37689 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 37690 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 37691 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37692 goto REPEATCHAR 37693 37694 __35: 37695 __36: 37696 reptype = REPTYPE_POS 37697 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(1) 37698 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 37699 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37700 goto REPEATCHAR 37701 37702 __37: 37703 __38: 37704 reptype = REPTYPE_POS 37705 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 37706 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = Tuint32_t(1) 37707 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37708 goto REPEATCHAR 37709 37710 __39: 37711 __40: 37712 __41: 37713 __42: 37714 __43: 37715 __44: 37716 __45: 37717 __46: 37718 __47: 37719 __48: 37720 __49: 37721 __50: 37722 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 37723 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) < OP_STARI { 37724 return OP_STAR 37725 } 37726 return OP_STARI 37727 }()) 37728 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 37729 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 37730 reptype = rep_typ[fc] 37731 37732 // Common code for all repeated single-character matches. We first check 37733 // for the minimum number of characters. If the minimum equals the maximum, we 37734 // are done. Otherwise, if minimizing, check the rest of the pattern for a 37735 // match; if there isn't one, advance up to the maximum, one character at a 37736 // time. 37737 // 37738 // If maximizing, advance up to the maximum number of matching characters, 37739 // until Feptr is past the end of the maximum run. If possessive, we are 37740 // then done (no backing up). Otherwise, match at this position; anything 37741 // other than no match is immediately returned. For nomatch, back up one 37742 // character, unless we are matching \R and the last thing matched was 37743 // \r\n, in which case, back up two code units until we reach the first 37744 // optional character position. 37745 // 37746 // The various UTF/non-UTF and caseful/caseless cases are handled separately, 37747 // for speed. 37748 37749 REPEATCHAR: 37750 if !(utf != 0) { 37751 goto __291 37752 } 37753 37754 (*Theapframe)(unsafe.Pointer(F)).Flength = Tsize_t(1) 37755 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 37756 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37757 if !(fc >= 0xc0) { 37758 goto __293 37759 } 37760 if !(fc&0x20 == Tuint32_t(0)) { 37761 goto __294 37762 } 37763 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37764 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37765 goto __295 37766 __294: 37767 if !(fc&0x10 == Tuint32_t(0)) { 37768 goto __296 37769 } 37770 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37771 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(2) 37772 goto __297 37773 __296: 37774 if !(fc&0x08 == Tuint32_t(0)) { 37775 goto __298 37776 } 37777 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37778 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(3) 37779 goto __299 37780 __298: 37781 if !(fc&0x04 == Tuint32_t(0)) { 37782 goto __300 37783 } 37784 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37785 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(4) 37786 goto __301 37787 __300: 37788 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37789 *(*Tsize_t)(unsafe.Pointer(F + 12)) += Tsize_t(5) 37790 __301: 37791 ; 37792 __299: 37793 ; 37794 __297: 37795 ; 37796 __295: 37797 ; 37798 __293: 37799 ; 37800 37801 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37802 37803 // Handle multi-code-unit character matching, caseful and caseless. 37804 37805 if !((*Theapframe)(unsafe.Pointer(F)).Flength > Tsize_t(1)) { 37806 goto __302 37807 } 37808 37809 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_STARI && libc.AssignUint32(&othercase, Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) != fc) { 37810 goto __303 37811 } 37812 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(X_pcre2_ord2utf_8(tls, othercase, F+50)) 37813 goto __304 37814 __303: 37815 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(0) 37816 __304: 37817 ; 37818 37819 i = Tuint32_t(1) 37820 __305: 37821 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 37822 goto __307 37823 } 37824 37825 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), (*Theapframe)(unsafe.Pointer(F)).Flength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37826 goto __308 37827 } 37828 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37829 goto __309 37830 __308: 37831 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > Tsize_t(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+50, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37832 goto __310 37833 } 37834 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37835 goto __311 37836 __310: 37837 37838 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37839 goto __312 37840 } 37841 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37842 goto __313 37843 } 37844 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37845 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37846 goto __314 37847 } 37848 return -2 37849 __314: 37850 ; 37851 __313: 37852 ; 37853 __312: 37854 ; 37855 37856 rrc = DMATCH_NOMATCH 37857 goto RETURN_SWITCH 37858 37859 __311: 37860 ; 37861 __309: 37862 ; 37863 goto __306 37864 __306: 37865 i++ 37866 goto __305 37867 goto __307 37868 __307: 37869 ; 37870 37871 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 37872 goto __315 37873 } 37874 goto __11 37875 __315: 37876 ; 37877 37878 if !(reptype == REPTYPE_MIN) { 37879 goto __316 37880 } 37881 37882 __318: 37883 37884 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 37885 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM202 37886 goto MATCH_RECURSE 37887 L_RM202: 37888 ; 37889 37890 if !(rrc != DMATCH_NOMATCH) { 37891 goto __321 37892 } 37893 rrc = rrc 37894 goto RETURN_SWITCH 37895 __321: 37896 ; 37897 37898 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 37899 goto __322 37900 } 37901 rrc = DMATCH_NOMATCH 37902 goto RETURN_SWITCH 37903 __322: 37904 ; 37905 37906 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), (*Theapframe)(unsafe.Pointer(F)).Flength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37907 goto __323 37908 } 37909 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37910 goto __324 37911 __323: 37912 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > Tsize_t(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+50, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37913 goto __325 37914 } 37915 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37916 goto __326 37917 __325: 37918 37919 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37920 goto __327 37921 } 37922 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37923 goto __328 37924 } 37925 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37926 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37927 goto __329 37928 } 37929 return -2 37930 __329: 37931 ; 37932 __328: 37933 ; 37934 __327: 37935 ; 37936 37937 rrc = DMATCH_NOMATCH 37938 goto RETURN_SWITCH 37939 37940 __326: 37941 ; 37942 __324: 37943 ; 37944 goto __319 37945 __319: 37946 goto __318 37947 goto __320 37948 __320: 37949 ; 37950 // Control never gets here 37951 goto __317 37952 __316: /* Maximize */ 37953 37954 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 37955 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 37956 __330: 37957 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 37958 goto __332 37959 } 37960 37961 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), (*Theapframe)(unsafe.Pointer(F)).Flength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37962 goto __333 37963 } 37964 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37965 goto __334 37966 __333: 37967 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > Tsize_t(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+50, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37968 goto __335 37969 } 37970 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37971 goto __336 37972 __335: 37973 37974 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37975 goto __337 37976 } 37977 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37978 goto __338 37979 } 37980 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37981 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37982 goto __339 37983 } 37984 return -2 37985 __339: 37986 ; 37987 __338: 37988 ; 37989 __337: 37990 ; 37991 37992 goto __332 37993 __336: 37994 ; 37995 __334: 37996 ; 37997 goto __331 37998 __331: 37999 i++ 38000 goto __330 38001 goto __332 38002 __332: 38003 ; 38004 38005 // After \C in UTF mode, Lstart_eptr might be in the middle of a 38006 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 38007 // go too far. 38008 38009 if !(reptype != REPTYPE_POS) { 38010 goto __340 38011 } 38012 __341: 38013 38014 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 38015 goto __344 38016 } 38017 goto __343 38018 __344: 38019 ; 38020 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38021 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM203 38022 goto MATCH_RECURSE 38023 L_RM203: 38024 ; 38025 38026 if !(rrc != DMATCH_NOMATCH) { 38027 goto __345 38028 } 38029 rrc = rrc 38030 goto RETURN_SWITCH 38031 __345: 38032 ; 38033 38034 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38035 __346: 38036 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 38037 goto __347 38038 } 38039 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38040 goto __346 38041 __347: 38042 ; 38043 goto __342 38044 __342: 38045 goto __341 38046 goto __343 38047 __343: 38048 ; 38049 __340: 38050 ; 38051 __317: 38052 ; 38053 goto __13 // End of repeated wide character handling 38054 __302: 38055 ; 38056 38057 // Length of UTF character is 1. Put it into the preserved variable and 38058 // fall through to the non-UTF code. 38059 38060 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = fc 38061 goto __292 38062 __291: 38063 38064 // When not in UTF mode, load a single-code-unit character. Then proceed as 38065 // above, using Unicode casing if either UTF or UCP is set. 38066 38067 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38068 __292: 38069 ; 38070 38071 // Caseless comparison 38072 38073 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_STARI) { 38074 goto __348 38075 } 38076 38077 if !(ucp != 0 && !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) > Tuint32_t(127)) { 38078 goto __350 38079 } 38080 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38081 goto __351 38082 __350: 38083 // Lc will be < 128 in UTF-8 mode. 38084 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))))) 38085 __351: 38086 ; 38087 38088 i = Tuint32_t(1) 38089 __352: 38090 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 38091 goto __354 38092 } 38093 // Faster than PCRE2_UCHAR 38094 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38095 goto __355 38096 } 38097 38098 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38099 goto __356 38100 } 38101 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38102 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38103 goto __357 38104 } 38105 return -2 38106 __357: 38107 ; 38108 __356: 38109 ; 38110 38111 rrc = DMATCH_NOMATCH 38112 goto RETURN_SWITCH 38113 38114 __355: 38115 ; 38116 cc2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38117 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != cc2 && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) != cc2) { 38118 goto __358 38119 } 38120 rrc = DMATCH_NOMATCH 38121 goto RETURN_SWITCH 38122 __358: 38123 ; 38124 38125 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38126 goto __353 38127 __353: 38128 i++ 38129 goto __352 38130 goto __354 38131 __354: 38132 ; 38133 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38134 goto __359 38135 } 38136 goto __11 38137 __359: 38138 ; 38139 38140 if !(reptype == REPTYPE_MIN) { 38141 goto __360 38142 } 38143 38144 __362: 38145 /* Faster than PCRE2_UCHAR */ 38146 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38147 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM25 38148 goto MATCH_RECURSE 38149 L_RM25: 38150 ; 38151 38152 if !(rrc != DMATCH_NOMATCH) { 38153 goto __365 38154 } 38155 rrc = rrc 38156 goto RETURN_SWITCH 38157 __365: 38158 ; 38159 38160 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38161 goto __366 38162 } 38163 rrc = DMATCH_NOMATCH 38164 goto RETURN_SWITCH 38165 __366: 38166 ; 38167 38168 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38169 goto __367 38170 } 38171 38172 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38173 goto __368 38174 } 38175 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38176 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38177 goto __369 38178 } 38179 return -2 38180 __369: 38181 ; 38182 __368: 38183 ; 38184 38185 rrc = DMATCH_NOMATCH 38186 goto RETURN_SWITCH 38187 38188 __367: 38189 ; 38190 cc3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38191 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != cc3 && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) != cc3) { 38192 goto __370 38193 } 38194 rrc = DMATCH_NOMATCH 38195 goto RETURN_SWITCH 38196 __370: 38197 ; 38198 38199 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38200 goto __363 38201 __363: 38202 goto __362 38203 goto __364 38204 __364: 38205 ; 38206 // Control never gets here 38207 goto __361 38208 __360: /* Maximize */ 38209 38210 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38211 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 38212 __371: 38213 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38214 goto __373 38215 } 38216 // Faster than PCRE2_UCHAR 38217 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38218 goto __374 38219 } 38220 38221 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38222 goto __375 38223 } 38224 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38225 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38226 goto __376 38227 } 38228 return -2 38229 __376: 38230 ; 38231 __375: 38232 ; 38233 38234 goto __373 38235 __374: 38236 ; 38237 cc4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38238 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != cc4 && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) != cc4) { 38239 goto __377 38240 } 38241 goto __373 38242 __377: 38243 ; 38244 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38245 goto __372 38246 __372: 38247 i++ 38248 goto __371 38249 goto __373 38250 __373: 38251 ; 38252 if !(reptype != REPTYPE_POS) { 38253 goto __378 38254 } 38255 __379: 38256 38257 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 38258 goto __382 38259 } 38260 goto __381 38261 __382: 38262 ; 38263 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38264 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM26 38265 goto MATCH_RECURSE 38266 L_RM26: 38267 ; 38268 38269 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38270 if !(rrc != DMATCH_NOMATCH) { 38271 goto __383 38272 } 38273 rrc = rrc 38274 goto RETURN_SWITCH 38275 __383: 38276 ; 38277 38278 goto __380 38279 __380: 38280 goto __379 38281 goto __381 38282 __381: 38283 ; 38284 __378: 38285 ; 38286 __361: 38287 ; 38288 goto __349 38289 __348: 38290 38291 i = Tuint32_t(1) 38292 __384: 38293 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 38294 goto __386 38295 } 38296 38297 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38298 goto __387 38299 } 38300 38301 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38302 goto __388 38303 } 38304 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38305 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38306 goto __389 38307 } 38308 return -2 38309 __389: 38310 ; 38311 __388: 38312 ; 38313 38314 rrc = DMATCH_NOMATCH 38315 goto RETURN_SWITCH 38316 38317 __387: 38318 ; 38319 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38320 goto __390 38321 } 38322 rrc = DMATCH_NOMATCH 38323 goto RETURN_SWITCH 38324 __390: 38325 ; 38326 38327 goto __385 38328 __385: 38329 i++ 38330 goto __384 38331 goto __386 38332 __386: 38333 ; 38334 38335 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38336 goto __391 38337 } 38338 goto __11 38339 __391: 38340 ; 38341 38342 if !(reptype == REPTYPE_MIN) { 38343 goto __392 38344 } 38345 38346 __394: 38347 38348 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38349 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM27 38350 goto MATCH_RECURSE 38351 L_RM27: 38352 ; 38353 38354 if !(rrc != DMATCH_NOMATCH) { 38355 goto __397 38356 } 38357 rrc = rrc 38358 goto RETURN_SWITCH 38359 __397: 38360 ; 38361 38362 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38363 goto __398 38364 } 38365 rrc = DMATCH_NOMATCH 38366 goto RETURN_SWITCH 38367 __398: 38368 ; 38369 38370 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38371 goto __399 38372 } 38373 38374 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38375 goto __400 38376 } 38377 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38378 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38379 goto __401 38380 } 38381 return -2 38382 __401: 38383 ; 38384 __400: 38385 ; 38386 38387 rrc = DMATCH_NOMATCH 38388 goto RETURN_SWITCH 38389 38390 __399: 38391 ; 38392 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38393 goto __402 38394 } 38395 rrc = DMATCH_NOMATCH 38396 goto RETURN_SWITCH 38397 __402: 38398 ; 38399 38400 goto __395 38401 __395: 38402 goto __394 38403 goto __396 38404 __396: 38405 ; 38406 // Control never gets here 38407 goto __393 38408 __392: /* Maximize */ 38409 38410 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38411 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 38412 __403: 38413 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38414 goto __405 38415 } 38416 38417 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38418 goto __406 38419 } 38420 38421 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38422 goto __407 38423 } 38424 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38425 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38426 goto __408 38427 } 38428 return -2 38429 __408: 38430 ; 38431 __407: 38432 ; 38433 38434 goto __405 38435 __406: 38436 ; 38437 38438 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38439 goto __409 38440 } 38441 goto __405 38442 __409: 38443 ; 38444 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38445 goto __404 38446 __404: 38447 i++ 38448 goto __403 38449 goto __405 38450 __405: 38451 ; 38452 38453 if !(reptype != REPTYPE_POS) { 38454 goto __410 38455 } 38456 __411: 38457 38458 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 38459 goto __414 38460 } 38461 goto __413 38462 __414: 38463 ; 38464 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38465 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM28 38466 goto MATCH_RECURSE 38467 L_RM28: 38468 ; 38469 38470 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38471 if !(rrc != DMATCH_NOMATCH) { 38472 goto __415 38473 } 38474 rrc = rrc 38475 goto RETURN_SWITCH 38476 __415: 38477 ; 38478 38479 goto __412 38480 __412: 38481 goto __411 38482 goto __413 38483 __413: 38484 ; 38485 __410: 38486 ; 38487 __393: 38488 ; 38489 __349: 38490 ; 38491 goto __13 38492 38493 // ===================================================================== 38494 // Match a negated single one-byte character repeatedly. This is almost a 38495 // repeat of the code for a repeated single character, but I haven't found a 38496 // nice way of commoning these up that doesn't require a test of the 38497 // positive/negative option for each character match. Maybe that wouldn't add 38498 // very much to the time taken, but character matching *is* what this is all 38499 // about... 38500 38501 __51: 38502 __52: 38503 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = libc.AssignPtrUint32(F+32+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 38504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38505 goto REPEATNOTCHAR 38506 38507 __53: 38508 __54: 38509 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 38510 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38511 reptype = REPTYPE_MAX 38512 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38513 goto REPEATNOTCHAR 38514 38515 __55: 38516 __56: 38517 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 38518 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38519 reptype = REPTYPE_MIN 38520 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38521 goto REPEATNOTCHAR 38522 38523 __57: 38524 __58: 38525 reptype = REPTYPE_POS 38526 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 38527 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 38528 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38529 goto REPEATNOTCHAR 38530 38531 __59: 38532 __60: 38533 reptype = REPTYPE_POS 38534 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(1) 38535 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 38536 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38537 goto REPEATNOTCHAR 38538 38539 __61: 38540 __62: 38541 reptype = REPTYPE_POS 38542 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 38543 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = Tuint32_t(1) 38544 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38545 goto REPEATNOTCHAR 38546 38547 __63: 38548 __64: 38549 reptype = REPTYPE_POS 38550 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 38551 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38552 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38553 goto REPEATNOTCHAR 38554 38555 __65: 38556 __66: 38557 __67: 38558 __68: 38559 __69: 38560 __70: 38561 __71: 38562 __72: 38563 __73: 38564 __74: 38565 __75: 38566 __76: 38567 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 38568 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI { 38569 return OP_NOTSTARI 38570 } 38571 return OP_NOTSTAR 38572 }()) 38573 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 38574 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 38575 reptype = rep_typ[fc] 38576 38577 // Common code for all repeated single-character non-matches. 38578 38579 REPEATNOTCHAR: 38580 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38581 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) >= 0xc0) { 38582 goto __416 38583 } 38584 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x20 == Tuint32_t(0)) { 38585 goto __417 38586 } 38587 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 38588 goto __418 38589 __417: 38590 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x10 == Tuint32_t(0)) { 38591 goto __419 38592 } 38593 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 38594 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 38595 goto __420 38596 __419: 38597 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x08 == Tuint32_t(0)) { 38598 goto __421 38599 } 38600 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 38601 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 38602 goto __422 38603 __421: 38604 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x04 == Tuint32_t(0)) { 38605 goto __423 38606 } 38607 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 38608 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 38609 goto __424 38610 __423: 38611 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 38612 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 38613 __424: 38614 ; 38615 __422: 38616 ; 38617 __420: 38618 ; 38619 __418: 38620 ; 38621 __416: 38622 ; 38623 38624 // The code is duplicated for the caseless and caseful cases, for speed, 38625 // since matching characters is likely to be quite common. First, ensure the 38626 // minimum number of matches are present. If Lmin = Lmax, we are done. 38627 // Otherwise, if minimizing, keep trying the rest of the expression and 38628 // advancing one matching character if failing, up to the maximum. 38629 // Alternatively, if maximizing, find the maximum number of characters and 38630 // work backwards. 38631 38632 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI) { 38633 goto __425 38634 } /* Caseless */ 38635 38636 if !((utf != 0 || ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) > Tuint32_t(127)) { 38637 goto __427 38638 } 38639 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38640 goto __428 38641 __427: 38642 38643 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)))))) 38644 __428: 38645 ; // Other case from table 38646 38647 if !(utf != 0) { 38648 goto __429 38649 } 38650 38651 i = Tuint32_t(1) 38652 __431: 38653 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 38654 goto __433 38655 } 38656 38657 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38658 goto __434 38659 } 38660 38661 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38662 goto __435 38663 } 38664 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38665 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38666 goto __436 38667 } 38668 return -2 38669 __436: 38670 ; 38671 __435: 38672 ; 38673 38674 rrc = DMATCH_NOMATCH 38675 goto RETURN_SWITCH 38676 38677 __434: 38678 ; 38679 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38680 if !(d >= 0xc0) { 38681 goto __437 38682 } 38683 if !(d&0x20 == Tuint32_t(0)) { 38684 goto __438 38685 } 38686 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38687 goto __439 38688 __438: 38689 if !(d&0x10 == Tuint32_t(0)) { 38690 goto __440 38691 } 38692 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 38693 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 38694 goto __441 38695 __440: 38696 if !(d&0x08 == Tuint32_t(0)) { 38697 goto __442 38698 } 38699 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 38700 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 38701 goto __443 38702 __442: 38703 if !(d&0x04 == Tuint32_t(0)) { 38704 goto __444 38705 } 38706 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 38707 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 38708 goto __445 38709 __444: 38710 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 38711 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 38712 __445: 38713 ; 38714 __443: 38715 ; 38716 __441: 38717 ; 38718 __439: 38719 ; 38720 __437: 38721 ; 38722 38723 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == d) { 38724 goto __446 38725 } 38726 rrc = DMATCH_NOMATCH 38727 goto RETURN_SWITCH 38728 __446: 38729 ; 38730 38731 goto __432 38732 __432: 38733 i++ 38734 goto __431 38735 goto __433 38736 __433: 38737 ; 38738 goto __430 38739 __429: 38740 38741 /* Not UTF mode */ 38742 38743 i = Tuint32_t(1) 38744 __447: 38745 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 38746 goto __449 38747 } 38748 38749 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38750 goto __450 38751 } 38752 38753 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38754 goto __451 38755 } 38756 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38757 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38758 goto __452 38759 } 38760 return -2 38761 __452: 38762 ; 38763 __451: 38764 ; 38765 38766 rrc = DMATCH_NOMATCH 38767 goto RETURN_SWITCH 38768 38769 __450: 38770 ; 38771 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38772 goto __453 38773 } 38774 rrc = DMATCH_NOMATCH 38775 goto RETURN_SWITCH 38776 __453: 38777 ; 38778 38779 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38780 goto __448 38781 __448: 38782 i++ 38783 goto __447 38784 goto __449 38785 __449: 38786 ; 38787 __430: 38788 ; 38789 38790 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38791 goto __454 38792 } 38793 goto __11 38794 __454: 38795 ; // Finished for exact count 38796 38797 if !(reptype == REPTYPE_MIN) { 38798 goto __455 38799 } 38800 38801 if !(utf != 0) { 38802 goto __457 38803 } 38804 38805 __459: 38806 38807 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38808 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM204 38809 goto MATCH_RECURSE 38810 L_RM204: 38811 ; 38812 38813 if !(rrc != DMATCH_NOMATCH) { 38814 goto __462 38815 } 38816 rrc = rrc 38817 goto RETURN_SWITCH 38818 __462: 38819 ; 38820 38821 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38822 goto __463 38823 } 38824 rrc = DMATCH_NOMATCH 38825 goto RETURN_SWITCH 38826 __463: 38827 ; 38828 38829 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38830 goto __464 38831 } 38832 38833 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38834 goto __465 38835 } 38836 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38837 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38838 goto __466 38839 } 38840 return -2 38841 __466: 38842 ; 38843 __465: 38844 ; 38845 38846 rrc = DMATCH_NOMATCH 38847 goto RETURN_SWITCH 38848 38849 __464: 38850 ; 38851 d1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38852 if !(d1 >= 0xc0) { 38853 goto __467 38854 } 38855 if !(d1&0x20 == Tuint32_t(0)) { 38856 goto __468 38857 } 38858 d1 = d1&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38859 goto __469 38860 __468: 38861 if !(d1&0x10 == Tuint32_t(0)) { 38862 goto __470 38863 } 38864 d1 = d1&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 38865 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 38866 goto __471 38867 __470: 38868 if !(d1&0x08 == Tuint32_t(0)) { 38869 goto __472 38870 } 38871 d1 = d1&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 38872 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 38873 goto __473 38874 __472: 38875 if !(d1&0x04 == Tuint32_t(0)) { 38876 goto __474 38877 } 38878 d1 = d1&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 38879 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 38880 goto __475 38881 __474: 38882 d1 = d1&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 38883 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 38884 __475: 38885 ; 38886 __473: 38887 ; 38888 __471: 38889 ; 38890 __469: 38891 ; 38892 __467: 38893 ; 38894 38895 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d1 || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == d1) { 38896 goto __476 38897 } 38898 rrc = DMATCH_NOMATCH 38899 goto RETURN_SWITCH 38900 __476: 38901 ; 38902 38903 goto __460 38904 __460: 38905 goto __459 38906 goto __461 38907 __461: 38908 ; 38909 goto __458 38910 __457: 38911 38912 /* Not UTF mode */ 38913 38914 __477: 38915 38916 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38917 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM29 38918 goto MATCH_RECURSE 38919 L_RM29: 38920 ; 38921 38922 if !(rrc != DMATCH_NOMATCH) { 38923 goto __480 38924 } 38925 rrc = rrc 38926 goto RETURN_SWITCH 38927 __480: 38928 ; 38929 38930 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38931 goto __481 38932 } 38933 rrc = DMATCH_NOMATCH 38934 goto RETURN_SWITCH 38935 __481: 38936 ; 38937 38938 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38939 goto __482 38940 } 38941 38942 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38943 goto __483 38944 } 38945 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38946 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38947 goto __484 38948 } 38949 return -2 38950 __484: 38951 ; 38952 __483: 38953 ; 38954 38955 rrc = DMATCH_NOMATCH 38956 goto RETURN_SWITCH 38957 38958 __482: 38959 ; 38960 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38961 goto __485 38962 } 38963 rrc = DMATCH_NOMATCH 38964 goto RETURN_SWITCH 38965 __485: 38966 ; 38967 38968 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38969 goto __478 38970 __478: 38971 goto __477 38972 goto __479 38973 __479: 38974 ; 38975 __458: 38976 ; 38977 // Control never gets here 38978 goto __456 38979 __455: 38980 38981 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38982 38983 if !(utf != 0) { 38984 goto __486 38985 } 38986 38987 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 38988 __488: 38989 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 38990 goto __490 38991 } 38992 38993 len = 1 38994 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38995 goto __491 38996 } 38997 38998 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38999 goto __492 39000 } 39001 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39002 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39003 goto __493 39004 } 39005 return -2 39006 __493: 39007 ; 39008 __492: 39009 ; 39010 39011 goto __490 39012 __491: 39013 ; 39014 d2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39015 if !(d2 >= 0xc0) { 39016 goto __494 39017 } 39018 if !(d2&0x20 == Tuint32_t(0)) { 39019 goto __495 39020 } 39021 d2 = d2&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39022 len++ 39023 goto __496 39024 __495: 39025 if !(d2&0x10 == Tuint32_t(0)) { 39026 goto __497 39027 } 39028 d2 = d2&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39029 len = len + 2 39030 goto __498 39031 __497: 39032 if !(d2&0x08 == Tuint32_t(0)) { 39033 goto __499 39034 } 39035 d2 = d2&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39036 len = len + 3 39037 goto __500 39038 __499: 39039 if !(d2&0x04 == Tuint32_t(0)) { 39040 goto __501 39041 } 39042 d2 = d2&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39043 len = len + 4 39044 goto __502 39045 __501: 39046 d2 = d2&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 39047 len = len + 5 39048 __502: 39049 ; 39050 __500: 39051 ; 39052 __498: 39053 ; 39054 __496: 39055 ; 39056 __494: 39057 ; 39058 39059 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d2 || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == d2) { 39060 goto __503 39061 } 39062 goto __490 39063 __503: 39064 ; 39065 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len) 39066 goto __489 39067 __489: 39068 i++ 39069 goto __488 39070 goto __490 39071 __490: 39072 ; 39073 39074 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39075 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39076 // go too far. 39077 39078 if !(reptype != REPTYPE_POS) { 39079 goto __504 39080 } 39081 __505: 39082 39083 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 39084 goto __508 39085 } 39086 goto __507 39087 __508: 39088 ; 39089 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39090 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM205 39091 goto MATCH_RECURSE 39092 L_RM205: 39093 ; 39094 39095 if !(rrc != DMATCH_NOMATCH) { 39096 goto __509 39097 } 39098 rrc = rrc 39099 goto RETURN_SWITCH 39100 __509: 39101 ; 39102 39103 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39104 __510: 39105 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39106 goto __511 39107 } 39108 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39109 goto __510 39110 __511: 39111 ; 39112 goto __506 39113 __506: 39114 goto __505 39115 goto __507 39116 __507: 39117 ; 39118 __504: 39119 ; 39120 goto __487 39121 __486: 39122 39123 /* Not UTF mode */ 39124 39125 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 39126 __512: 39127 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39128 goto __514 39129 } 39130 39131 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39132 goto __515 39133 } 39134 39135 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39136 goto __516 39137 } 39138 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39139 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39140 goto __517 39141 } 39142 return -2 39143 __517: 39144 ; 39145 __516: 39146 ; 39147 39148 goto __514 39149 __515: 39150 ; 39151 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39152 goto __518 39153 } 39154 goto __514 39155 __518: 39156 ; 39157 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39158 goto __513 39159 __513: 39160 i++ 39161 goto __512 39162 goto __514 39163 __514: 39164 ; 39165 if !(reptype != REPTYPE_POS) { 39166 goto __519 39167 } 39168 __520: 39169 39170 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 39171 goto __523 39172 } 39173 goto __522 39174 __523: 39175 ; 39176 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39177 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM30 39178 goto MATCH_RECURSE 39179 L_RM30: 39180 ; 39181 39182 if !(rrc != DMATCH_NOMATCH) { 39183 goto __524 39184 } 39185 rrc = rrc 39186 goto RETURN_SWITCH 39187 __524: 39188 ; 39189 39190 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39191 goto __521 39192 __521: 39193 goto __520 39194 goto __522 39195 __522: 39196 ; 39197 __519: 39198 ; 39199 __487: 39200 ; 39201 __456: 39202 ; 39203 goto __426 39204 __425: 39205 39206 if !(utf != 0) { 39207 goto __525 39208 } 39209 39210 i = Tuint32_t(1) 39211 __527: 39212 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 39213 goto __529 39214 } 39215 39216 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39217 goto __530 39218 } 39219 39220 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39221 goto __531 39222 } 39223 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39224 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39225 goto __532 39226 } 39227 return -2 39228 __532: 39229 ; 39230 __531: 39231 ; 39232 39233 rrc = DMATCH_NOMATCH 39234 goto RETURN_SWITCH 39235 39236 __530: 39237 ; 39238 d3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39239 if !(d3 >= 0xc0) { 39240 goto __533 39241 } 39242 if !(d3&0x20 == Tuint32_t(0)) { 39243 goto __534 39244 } 39245 d3 = d3&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39246 goto __535 39247 __534: 39248 if !(d3&0x10 == Tuint32_t(0)) { 39249 goto __536 39250 } 39251 d3 = d3&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39252 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 39253 goto __537 39254 __536: 39255 if !(d3&0x08 == Tuint32_t(0)) { 39256 goto __538 39257 } 39258 d3 = d3&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39259 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 39260 goto __539 39261 __538: 39262 if !(d3&0x04 == Tuint32_t(0)) { 39263 goto __540 39264 } 39265 d3 = d3&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39266 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 39267 goto __541 39268 __540: 39269 d3 = d3&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39270 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 39271 __541: 39272 ; 39273 __539: 39274 ; 39275 __537: 39276 ; 39277 __535: 39278 ; 39279 __533: 39280 ; 39281 39282 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d3) { 39283 goto __542 39284 } 39285 rrc = DMATCH_NOMATCH 39286 goto RETURN_SWITCH 39287 __542: 39288 ; 39289 39290 goto __528 39291 __528: 39292 i++ 39293 goto __527 39294 goto __529 39295 __529: 39296 ; 39297 goto __526 39298 __525: 39299 /* Not UTF mode */ 39300 39301 i = Tuint32_t(1) 39302 __543: 39303 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 39304 goto __545 39305 } 39306 39307 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39308 goto __546 39309 } 39310 39311 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39312 goto __547 39313 } 39314 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39315 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39316 goto __548 39317 } 39318 return -2 39319 __548: 39320 ; 39321 __547: 39322 ; 39323 39324 rrc = DMATCH_NOMATCH 39325 goto RETURN_SWITCH 39326 39327 __546: 39328 ; 39329 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39330 goto __549 39331 } 39332 rrc = DMATCH_NOMATCH 39333 goto RETURN_SWITCH 39334 __549: 39335 ; 39336 39337 goto __544 39338 __544: 39339 i++ 39340 goto __543 39341 goto __545 39342 __545: 39343 ; 39344 __526: 39345 ; 39346 39347 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39348 goto __550 39349 } 39350 goto __11 39351 __550: 39352 ; 39353 39354 if !(reptype == REPTYPE_MIN) { 39355 goto __551 39356 } 39357 39358 if !(utf != 0) { 39359 goto __553 39360 } 39361 39362 __555: 39363 39364 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39365 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM206 39366 goto MATCH_RECURSE 39367 L_RM206: 39368 ; 39369 39370 if !(rrc != DMATCH_NOMATCH) { 39371 goto __558 39372 } 39373 rrc = rrc 39374 goto RETURN_SWITCH 39375 __558: 39376 ; 39377 39378 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39379 goto __559 39380 } 39381 rrc = DMATCH_NOMATCH 39382 goto RETURN_SWITCH 39383 __559: 39384 ; 39385 39386 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39387 goto __560 39388 } 39389 39390 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39391 goto __561 39392 } 39393 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39394 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39395 goto __562 39396 } 39397 return -2 39398 __562: 39399 ; 39400 __561: 39401 ; 39402 39403 rrc = DMATCH_NOMATCH 39404 goto RETURN_SWITCH 39405 39406 __560: 39407 ; 39408 d4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39409 if !(d4 >= 0xc0) { 39410 goto __563 39411 } 39412 if !(d4&0x20 == Tuint32_t(0)) { 39413 goto __564 39414 } 39415 d4 = d4&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39416 goto __565 39417 __564: 39418 if !(d4&0x10 == Tuint32_t(0)) { 39419 goto __566 39420 } 39421 d4 = d4&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39422 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 39423 goto __567 39424 __566: 39425 if !(d4&0x08 == Tuint32_t(0)) { 39426 goto __568 39427 } 39428 d4 = d4&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39429 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 39430 goto __569 39431 __568: 39432 if !(d4&0x04 == Tuint32_t(0)) { 39433 goto __570 39434 } 39435 d4 = d4&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39436 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 39437 goto __571 39438 __570: 39439 d4 = d4&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39440 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 39441 __571: 39442 ; 39443 __569: 39444 ; 39445 __567: 39446 ; 39447 __565: 39448 ; 39449 __563: 39450 ; 39451 39452 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d4) { 39453 goto __572 39454 } 39455 rrc = DMATCH_NOMATCH 39456 goto RETURN_SWITCH 39457 __572: 39458 ; 39459 39460 goto __556 39461 __556: 39462 goto __555 39463 goto __557 39464 __557: 39465 ; 39466 goto __554 39467 __553: 39468 /* Not UTF mode */ 39469 39470 __573: 39471 39472 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39473 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM31 39474 goto MATCH_RECURSE 39475 L_RM31: 39476 ; 39477 39478 if !(rrc != DMATCH_NOMATCH) { 39479 goto __576 39480 } 39481 rrc = rrc 39482 goto RETURN_SWITCH 39483 __576: 39484 ; 39485 39486 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39487 goto __577 39488 } 39489 rrc = DMATCH_NOMATCH 39490 goto RETURN_SWITCH 39491 __577: 39492 ; 39493 39494 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39495 goto __578 39496 } 39497 39498 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39499 goto __579 39500 } 39501 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39502 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39503 goto __580 39504 } 39505 return -2 39506 __580: 39507 ; 39508 __579: 39509 ; 39510 39511 rrc = DMATCH_NOMATCH 39512 goto RETURN_SWITCH 39513 39514 __578: 39515 ; 39516 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39517 goto __581 39518 } 39519 rrc = DMATCH_NOMATCH 39520 goto RETURN_SWITCH 39521 __581: 39522 ; 39523 39524 goto __574 39525 __574: 39526 goto __573 39527 goto __575 39528 __575: 39529 ; 39530 __554: 39531 ; 39532 // Control never gets here 39533 goto __552 39534 __551: 39535 39536 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 39537 39538 if !(utf != 0) { 39539 goto __582 39540 } 39541 39542 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 39543 __584: 39544 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39545 goto __586 39546 } 39547 39548 len1 = 1 39549 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39550 goto __587 39551 } 39552 39553 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39554 goto __588 39555 } 39556 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39557 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39558 goto __589 39559 } 39560 return -2 39561 __589: 39562 ; 39563 __588: 39564 ; 39565 39566 goto __586 39567 __587: 39568 ; 39569 d5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39570 if !(d5 >= 0xc0) { 39571 goto __590 39572 } 39573 if !(d5&0x20 == Tuint32_t(0)) { 39574 goto __591 39575 } 39576 d5 = d5&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39577 len1++ 39578 goto __592 39579 __591: 39580 if !(d5&0x10 == Tuint32_t(0)) { 39581 goto __593 39582 } 39583 d5 = d5&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39584 len1 = len1 + 2 39585 goto __594 39586 __593: 39587 if !(d5&0x08 == Tuint32_t(0)) { 39588 goto __595 39589 } 39590 d5 = d5&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39591 len1 = len1 + 3 39592 goto __596 39593 __595: 39594 if !(d5&0x04 == Tuint32_t(0)) { 39595 goto __597 39596 } 39597 d5 = d5&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39598 len1 = len1 + 4 39599 goto __598 39600 __597: 39601 d5 = d5&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 39602 len1 = len1 + 5 39603 __598: 39604 ; 39605 __596: 39606 ; 39607 __594: 39608 ; 39609 __592: 39610 ; 39611 __590: 39612 ; 39613 39614 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == d5) { 39615 goto __599 39616 } 39617 goto __586 39618 __599: 39619 ; 39620 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len1) 39621 goto __585 39622 __585: 39623 i++ 39624 goto __584 39625 goto __586 39626 __586: 39627 ; 39628 39629 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39630 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39631 // go too far. 39632 39633 if !(reptype != REPTYPE_POS) { 39634 goto __600 39635 } 39636 __601: 39637 39638 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 39639 goto __604 39640 } 39641 goto __603 39642 __604: 39643 ; 39644 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39645 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM207 39646 goto MATCH_RECURSE 39647 L_RM207: 39648 ; 39649 39650 if !(rrc != DMATCH_NOMATCH) { 39651 goto __605 39652 } 39653 rrc = rrc 39654 goto RETURN_SWITCH 39655 __605: 39656 ; 39657 39658 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39659 __606: 39660 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39661 goto __607 39662 } 39663 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39664 goto __606 39665 __607: 39666 ; 39667 goto __602 39668 __602: 39669 goto __601 39670 goto __603 39671 __603: 39672 ; 39673 __600: 39674 ; 39675 goto __583 39676 __582: 39677 /* Not UTF mode */ 39678 39679 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 39680 __608: 39681 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 39682 goto __610 39683 } 39684 39685 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39686 goto __611 39687 } 39688 39689 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39690 goto __612 39691 } 39692 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39693 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39694 goto __613 39695 } 39696 return -2 39697 __613: 39698 ; 39699 __612: 39700 ; 39701 39702 goto __610 39703 __611: 39704 ; 39705 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39706 goto __614 39707 } 39708 goto __610 39709 __614: 39710 ; 39711 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39712 goto __609 39713 __609: 39714 i++ 39715 goto __608 39716 goto __610 39717 __610: 39718 ; 39719 if !(reptype != REPTYPE_POS) { 39720 goto __615 39721 } 39722 __616: 39723 39724 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 39725 goto __619 39726 } 39727 goto __618 39728 __619: 39729 ; 39730 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39731 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM32 39732 goto MATCH_RECURSE 39733 L_RM32: 39734 ; 39735 39736 if !(rrc != DMATCH_NOMATCH) { 39737 goto __620 39738 } 39739 rrc = rrc 39740 goto RETURN_SWITCH 39741 __620: 39742 ; 39743 39744 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39745 goto __617 39746 __617: 39747 goto __616 39748 goto __618 39749 __618: 39750 ; 39751 __615: 39752 ; 39753 __583: 39754 ; 39755 __552: 39756 ; 39757 __426: 39758 ; 39759 goto __13 39760 39761 // ===================================================================== 39762 // Match a bit-mapped character class, possibly repeatedly. These opcodes 39763 // are used when all the characters in the class have values in the range 39764 // 0-255, and either the matching is caseful, or the characters are in the 39765 // range 0-127 when UTF processing is enabled. The only difference between 39766 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 39767 // encountered. 39768 39769 __77: 39770 __78: 39771 39772 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) // Save for matching 39773 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(1) + uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) // Advance past the item 39774 39775 // Look past the end of the item to see if there is repeat information 39776 // following. Then obey similar code to character type repeats. 39777 39778 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 39779 case OP_CRSTAR: 39780 goto __622 39781 case OP_CRMINSTAR: 39782 goto __623 39783 case OP_CRPLUS: 39784 goto __624 39785 case OP_CRMINPLUS: 39786 goto __625 39787 case OP_CRQUERY: 39788 goto __626 39789 case OP_CRMINQUERY: 39790 goto __627 39791 case OP_CRPOSSTAR: 39792 goto __628 39793 case OP_CRPOSPLUS: 39794 goto __629 39795 case OP_CRPOSQUERY: 39796 goto __630 39797 39798 case OP_CRRANGE: 39799 goto __631 39800 case OP_CRMINRANGE: 39801 goto __632 39802 case OP_CRPOSRANGE: 39803 goto __633 39804 39805 default: 39806 goto __634 39807 } 39808 goto __621 39809 39810 __622: 39811 __623: 39812 __624: 39813 __625: 39814 __626: 39815 __627: 39816 __628: 39817 __629: 39818 __630: 39819 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 39820 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 39821 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 39822 reptype = rep_typ[fc] 39823 goto __621 39824 39825 __631: 39826 __632: 39827 __633: 39828 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 39829 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 39830 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) == Tuint32_t(0)) { 39831 goto __635 39832 } 39833 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 39834 __635: 39835 ; // Max 0 => infinity 39836 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 39837 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 39838 goto __621 39839 39840 __634: // No repeat follows 39841 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = libc.AssignPtrUint32(F+32+1*4, Tuint32_t(1)) 39842 goto __621 39843 __621: 39844 ; 39845 39846 // First, ensure the minimum number of matches are present. 39847 39848 if !(utf != 0) { 39849 goto __636 39850 } 39851 39852 i = Tuint32_t(1) 39853 __638: 39854 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 39855 goto __640 39856 } 39857 39858 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39859 goto __641 39860 } 39861 39862 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39863 goto __642 39864 } 39865 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39866 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39867 goto __643 39868 } 39869 return -2 39870 __643: 39871 ; 39872 __642: 39873 ; 39874 39875 rrc = DMATCH_NOMATCH 39876 goto RETURN_SWITCH 39877 39878 __641: 39879 ; 39880 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39881 if !(fc >= 0xc0) { 39882 goto __644 39883 } 39884 if !(fc&0x20 == Tuint32_t(0)) { 39885 goto __645 39886 } 39887 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39888 goto __646 39889 __645: 39890 if !(fc&0x10 == Tuint32_t(0)) { 39891 goto __647 39892 } 39893 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39894 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 39895 goto __648 39896 __647: 39897 if !(fc&0x08 == Tuint32_t(0)) { 39898 goto __649 39899 } 39900 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39901 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 39902 goto __650 39903 __649: 39904 if !(fc&0x04 == Tuint32_t(0)) { 39905 goto __651 39906 } 39907 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39908 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 39909 goto __652 39910 __651: 39911 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39912 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 39913 __652: 39914 ; 39915 __650: 39916 ; 39917 __648: 39918 ; 39919 __646: 39920 ; 39921 __644: 39922 ; 39923 39924 if !(fc > Tuint32_t(255)) { 39925 goto __653 39926 } 39927 39928 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 39929 goto __655 39930 } 39931 rrc = DMATCH_NOMATCH 39932 goto RETURN_SWITCH 39933 __655: 39934 ; 39935 39936 goto __654 39937 __653: 39938 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 39939 goto __656 39940 } 39941 rrc = DMATCH_NOMATCH 39942 goto RETURN_SWITCH 39943 __656: 39944 ; 39945 __654: 39946 ; 39947 39948 goto __639 39949 __639: 39950 i++ 39951 goto __638 39952 goto __640 39953 __640: 39954 ; 39955 goto __637 39956 __636: 39957 /* Not UTF mode */ 39958 39959 i = Tuint32_t(1) 39960 __657: 39961 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 39962 goto __659 39963 } 39964 39965 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39966 goto __660 39967 } 39968 39969 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39970 goto __661 39971 } 39972 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39973 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39974 goto __662 39975 } 39976 return -2 39977 __662: 39978 ; 39979 __661: 39980 ; 39981 39982 rrc = DMATCH_NOMATCH 39983 goto RETURN_SWITCH 39984 39985 __660: 39986 ; 39987 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39988 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 39989 goto __663 39990 } 39991 rrc = DMATCH_NOMATCH 39992 goto RETURN_SWITCH 39993 __663: 39994 ; 39995 39996 goto __658 39997 __658: 39998 i++ 39999 goto __657 40000 goto __659 40001 __659: 40002 ; 40003 __637: 40004 ; 40005 40006 // If Lmax == Lmin we are done. Continue with main loop. 40007 40008 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40009 goto __664 40010 } 40011 goto __11 40012 __664: 40013 ; 40014 40015 // If minimizing, keep testing the rest of the expression and advancing 40016 // the pointer while it matches the class. 40017 40018 if !(reptype == REPTYPE_MIN) { 40019 goto __665 40020 } 40021 40022 if !(utf != 0) { 40023 goto __667 40024 } 40025 40026 __669: 40027 40028 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40029 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM200 40030 goto MATCH_RECURSE 40031 L_RM200: 40032 ; 40033 40034 if !(rrc != DMATCH_NOMATCH) { 40035 goto __672 40036 } 40037 rrc = rrc 40038 goto RETURN_SWITCH 40039 __672: 40040 ; 40041 40042 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40043 goto __673 40044 } 40045 rrc = DMATCH_NOMATCH 40046 goto RETURN_SWITCH 40047 __673: 40048 ; 40049 40050 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40051 goto __674 40052 } 40053 40054 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40055 goto __675 40056 } 40057 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40058 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40059 goto __676 40060 } 40061 return -2 40062 __676: 40063 ; 40064 __675: 40065 ; 40066 40067 rrc = DMATCH_NOMATCH 40068 goto RETURN_SWITCH 40069 40070 __674: 40071 ; 40072 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40073 if !(fc >= 0xc0) { 40074 goto __677 40075 } 40076 if !(fc&0x20 == Tuint32_t(0)) { 40077 goto __678 40078 } 40079 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40080 goto __679 40081 __678: 40082 if !(fc&0x10 == Tuint32_t(0)) { 40083 goto __680 40084 } 40085 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40086 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 40087 goto __681 40088 __680: 40089 if !(fc&0x08 == Tuint32_t(0)) { 40090 goto __682 40091 } 40092 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40093 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 40094 goto __683 40095 __682: 40096 if !(fc&0x04 == Tuint32_t(0)) { 40097 goto __684 40098 } 40099 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40100 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 40101 goto __685 40102 __684: 40103 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40104 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 40105 __685: 40106 ; 40107 __683: 40108 ; 40109 __681: 40110 ; 40111 __679: 40112 ; 40113 __677: 40114 ; 40115 40116 if !(fc > Tuint32_t(255)) { 40117 goto __686 40118 } 40119 40120 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40121 goto __688 40122 } 40123 rrc = DMATCH_NOMATCH 40124 goto RETURN_SWITCH 40125 __688: 40126 ; 40127 40128 goto __687 40129 __686: 40130 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40131 goto __689 40132 } 40133 rrc = DMATCH_NOMATCH 40134 goto RETURN_SWITCH 40135 __689: 40136 ; 40137 __687: 40138 ; 40139 40140 goto __670 40141 __670: 40142 goto __669 40143 goto __671 40144 __671: 40145 ; 40146 goto __668 40147 __667: 40148 /* Not UTF mode */ 40149 40150 __690: 40151 40152 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40153 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM23 40154 goto MATCH_RECURSE 40155 L_RM23: 40156 ; 40157 40158 if !(rrc != DMATCH_NOMATCH) { 40159 goto __693 40160 } 40161 rrc = rrc 40162 goto RETURN_SWITCH 40163 __693: 40164 ; 40165 40166 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40167 goto __694 40168 } 40169 rrc = DMATCH_NOMATCH 40170 goto RETURN_SWITCH 40171 __694: 40172 ; 40173 40174 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40175 goto __695 40176 } 40177 40178 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40179 goto __696 40180 } 40181 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40182 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40183 goto __697 40184 } 40185 return -2 40186 __697: 40187 ; 40188 __696: 40189 ; 40190 40191 rrc = DMATCH_NOMATCH 40192 goto RETURN_SWITCH 40193 40194 __695: 40195 ; 40196 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40197 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40198 goto __698 40199 } 40200 rrc = DMATCH_NOMATCH 40201 goto RETURN_SWITCH 40202 __698: 40203 ; 40204 40205 goto __691 40206 __691: 40207 goto __690 40208 goto __692 40209 __692: 40210 ; 40211 __668: 40212 ; 40213 // Control never gets here 40214 goto __666 40215 __665: 40216 40217 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40218 40219 if !(utf != 0) { 40220 goto __699 40221 } 40222 40223 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 40224 __701: 40225 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40226 goto __703 40227 } 40228 40229 len2 = 1 40230 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40231 goto __704 40232 } 40233 40234 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40235 goto __705 40236 } 40237 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40238 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40239 goto __706 40240 } 40241 return -2 40242 __706: 40243 ; 40244 __705: 40245 ; 40246 40247 goto __703 40248 __704: 40249 ; 40250 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40251 if !(fc >= 0xc0) { 40252 goto __707 40253 } 40254 if !(fc&0x20 == Tuint32_t(0)) { 40255 goto __708 40256 } 40257 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40258 len2++ 40259 goto __709 40260 __708: 40261 if !(fc&0x10 == Tuint32_t(0)) { 40262 goto __710 40263 } 40264 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40265 len2 = len2 + 2 40266 goto __711 40267 __710: 40268 if !(fc&0x08 == Tuint32_t(0)) { 40269 goto __712 40270 } 40271 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40272 len2 = len2 + 3 40273 goto __713 40274 __712: 40275 if !(fc&0x04 == Tuint32_t(0)) { 40276 goto __714 40277 } 40278 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40279 len2 = len2 + 4 40280 goto __715 40281 __714: 40282 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 40283 len2 = len2 + 5 40284 __715: 40285 ; 40286 __713: 40287 ; 40288 __711: 40289 ; 40290 __709: 40291 ; 40292 __707: 40293 ; 40294 40295 if !(fc > Tuint32_t(255)) { 40296 goto __716 40297 } 40298 40299 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40300 goto __718 40301 } 40302 goto __703 40303 __718: 40304 ; 40305 goto __717 40306 __716: 40307 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40308 goto __719 40309 } 40310 goto __703 40311 __719: 40312 ; 40313 __717: 40314 ; 40315 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len2) 40316 goto __702 40317 __702: 40318 i++ 40319 goto __701 40320 goto __703 40321 __703: 40322 ; 40323 40324 if !(reptype == REPTYPE_POS) { 40325 goto __720 40326 } 40327 goto __11 40328 __720: 40329 ; // No backtracking 40330 40331 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40332 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40333 // go too far. 40334 40335 __721: 40336 40337 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40338 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM201 40339 goto MATCH_RECURSE 40340 L_RM201: 40341 ; 40342 40343 if !(rrc != DMATCH_NOMATCH) { 40344 goto __724 40345 } 40346 rrc = rrc 40347 goto RETURN_SWITCH 40348 __724: 40349 ; 40350 40351 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 40352 goto __725 40353 } 40354 goto __723 40355 __725: 40356 ; // Tried at original position 40357 __726: 40358 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40359 goto __727 40360 } 40361 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40362 goto __726 40363 __727: 40364 ; 40365 goto __722 40366 __722: 40367 goto __721 40368 goto __723 40369 __723: 40370 ; 40371 goto __700 40372 __699: 40373 /* Not UTF mode */ 40374 40375 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 40376 __728: 40377 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40378 goto __730 40379 } 40380 40381 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40382 goto __731 40383 } 40384 40385 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40386 goto __732 40387 } 40388 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40389 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40390 goto __733 40391 } 40392 return -2 40393 __733: 40394 ; 40395 __732: 40396 ; 40397 40398 goto __730 40399 __731: 40400 ; 40401 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40402 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40403 goto __734 40404 } 40405 goto __730 40406 __734: 40407 ; 40408 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 40409 goto __729 40410 __729: 40411 i++ 40412 goto __728 40413 goto __730 40414 __730: 40415 ; 40416 40417 if !(reptype == REPTYPE_POS) { 40418 goto __735 40419 } 40420 goto __11 40421 __735: 40422 ; // No backtracking 40423 40424 __736: 40425 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 40426 goto __737 40427 } 40428 40429 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40430 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM24 40431 goto MATCH_RECURSE 40432 L_RM24: 40433 ; 40434 40435 if !(rrc != DMATCH_NOMATCH) { 40436 goto __738 40437 } 40438 rrc = rrc 40439 goto RETURN_SWITCH 40440 __738: 40441 ; 40442 40443 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40444 goto __736 40445 __737: 40446 ; 40447 __700: 40448 ; 40449 40450 rrc = DMATCH_NOMATCH 40451 goto RETURN_SWITCH 40452 40453 __666: 40454 ; 40455 40456 // Control never gets here 40457 40458 // ===================================================================== 40459 // Match an extended character class. In the 8-bit library, this opcode is 40460 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 40461 // 32-bit libraries, codepoints greater than 255 may be encountered even when 40462 // UTF is not supported. 40463 40464 __79: 40465 40466 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) // Save for matching 40467 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) // Advance past the item 40468 40469 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 40470 case OP_CRSTAR: 40471 goto __740 40472 case OP_CRMINSTAR: 40473 goto __741 40474 case OP_CRPLUS: 40475 goto __742 40476 case OP_CRMINPLUS: 40477 goto __743 40478 case OP_CRQUERY: 40479 goto __744 40480 case OP_CRMINQUERY: 40481 goto __745 40482 case OP_CRPOSSTAR: 40483 goto __746 40484 case OP_CRPOSPLUS: 40485 goto __747 40486 case OP_CRPOSQUERY: 40487 goto __748 40488 40489 case OP_CRRANGE: 40490 goto __749 40491 case OP_CRMINRANGE: 40492 goto __750 40493 case OP_CRPOSRANGE: 40494 goto __751 40495 40496 default: 40497 goto __752 40498 } 40499 goto __739 40500 40501 __740: 40502 __741: 40503 __742: 40504 __743: 40505 __744: 40506 __745: 40507 __746: 40508 __747: 40509 __748: 40510 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 40511 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 40512 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 40513 reptype = rep_typ[fc] 40514 goto __739 40515 40516 __749: 40517 __750: 40518 __751: 40519 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 40520 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 40521 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) == Tuint32_t(0)) { 40522 goto __753 40523 } 40524 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 40525 __753: 40526 ; // Max 0 => infinity 40527 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 40528 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 40529 goto __739 40530 40531 __752: // No repeat follows 40532 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = libc.AssignPtrUint32(F+32+1*4, Tuint32_t(1)) 40533 goto __739 40534 __739: 40535 ; 40536 40537 // First, ensure the minimum number of matches are present. 40538 40539 i = Tuint32_t(1) 40540 __754: 40541 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 40542 goto __756 40543 } 40544 40545 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40546 goto __757 40547 } 40548 40549 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40550 goto __758 40551 } 40552 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40553 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40554 goto __759 40555 } 40556 return -2 40557 __759: 40558 ; 40559 __758: 40560 ; 40561 40562 rrc = DMATCH_NOMATCH 40563 goto RETURN_SWITCH 40564 40565 __757: 40566 ; 40567 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40568 if !(utf != 0 && fc >= 0xc0) { 40569 goto __760 40570 } 40571 if !(fc&0x20 == Tuint32_t(0)) { 40572 goto __761 40573 } 40574 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40575 goto __762 40576 __761: 40577 if !(fc&0x10 == Tuint32_t(0)) { 40578 goto __763 40579 } 40580 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40581 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 40582 goto __764 40583 __763: 40584 if !(fc&0x08 == Tuint32_t(0)) { 40585 goto __765 40586 } 40587 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40588 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 40589 goto __766 40590 __765: 40591 if !(fc&0x04 == Tuint32_t(0)) { 40592 goto __767 40593 } 40594 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40595 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 40596 goto __768 40597 __767: 40598 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40599 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 40600 __768: 40601 ; 40602 __766: 40603 ; 40604 __764: 40605 ; 40606 __762: 40607 ; 40608 __760: 40609 ; 40610 40611 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), utf) != 0) { 40612 goto __769 40613 } 40614 rrc = DMATCH_NOMATCH 40615 goto RETURN_SWITCH 40616 __769: 40617 ; 40618 40619 goto __755 40620 __755: 40621 i++ 40622 goto __754 40623 goto __756 40624 __756: 40625 ; 40626 40627 // If Lmax == Lmin we can just continue with the main loop. 40628 40629 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40630 goto __770 40631 } 40632 goto __11 40633 __770: 40634 ; 40635 40636 // If minimizing, keep testing the rest of the expression and advancing 40637 // the pointer while it matches the class. 40638 40639 if !(reptype == REPTYPE_MIN) { 40640 goto __771 40641 } 40642 40643 __773: 40644 40645 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40646 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM100 40647 goto MATCH_RECURSE 40648 L_RM100: 40649 ; 40650 40651 if !(rrc != DMATCH_NOMATCH) { 40652 goto __776 40653 } 40654 rrc = rrc 40655 goto RETURN_SWITCH 40656 __776: 40657 ; 40658 40659 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40660 goto __777 40661 } 40662 rrc = DMATCH_NOMATCH 40663 goto RETURN_SWITCH 40664 __777: 40665 ; 40666 40667 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40668 goto __778 40669 } 40670 40671 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40672 goto __779 40673 } 40674 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40675 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40676 goto __780 40677 } 40678 return -2 40679 __780: 40680 ; 40681 __779: 40682 ; 40683 40684 rrc = DMATCH_NOMATCH 40685 goto RETURN_SWITCH 40686 40687 __778: 40688 ; 40689 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40690 if !(utf != 0 && fc >= 0xc0) { 40691 goto __781 40692 } 40693 if !(fc&0x20 == Tuint32_t(0)) { 40694 goto __782 40695 } 40696 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40697 goto __783 40698 __782: 40699 if !(fc&0x10 == Tuint32_t(0)) { 40700 goto __784 40701 } 40702 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40703 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 40704 goto __785 40705 __784: 40706 if !(fc&0x08 == Tuint32_t(0)) { 40707 goto __786 40708 } 40709 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40710 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 40711 goto __787 40712 __786: 40713 if !(fc&0x04 == Tuint32_t(0)) { 40714 goto __788 40715 } 40716 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40717 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 40718 goto __789 40719 __788: 40720 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40721 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 40722 __789: 40723 ; 40724 __787: 40725 ; 40726 __785: 40727 ; 40728 __783: 40729 ; 40730 __781: 40731 ; 40732 40733 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), utf) != 0) { 40734 goto __790 40735 } 40736 rrc = DMATCH_NOMATCH 40737 goto RETURN_SWITCH 40738 __790: 40739 ; 40740 40741 goto __774 40742 __774: 40743 goto __773 40744 goto __775 40745 __775: 40746 ; 40747 // Control never gets here 40748 goto __772 40749 __771: 40750 40751 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40752 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 40753 __791: 40754 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 40755 goto __793 40756 } 40757 40758 len3 = 1 40759 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40760 goto __794 40761 } 40762 40763 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40764 goto __795 40765 } 40766 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40767 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40768 goto __796 40769 } 40770 return -2 40771 __796: 40772 ; 40773 __795: 40774 ; 40775 40776 goto __793 40777 __794: 40778 ; 40779 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40780 if !(utf != 0 && fc >= 0xc0) { 40781 goto __797 40782 } 40783 if !(fc&0x20 == Tuint32_t(0)) { 40784 goto __798 40785 } 40786 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40787 len3++ 40788 goto __799 40789 __798: 40790 if !(fc&0x10 == Tuint32_t(0)) { 40791 goto __800 40792 } 40793 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40794 len3 = len3 + 2 40795 goto __801 40796 __800: 40797 if !(fc&0x08 == Tuint32_t(0)) { 40798 goto __802 40799 } 40800 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40801 len3 = len3 + 3 40802 goto __803 40803 __802: 40804 if !(fc&0x04 == Tuint32_t(0)) { 40805 goto __804 40806 } 40807 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40808 len3 = len3 + 4 40809 goto __805 40810 __804: 40811 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 40812 len3 = len3 + 5 40813 __805: 40814 ; 40815 __803: 40816 ; 40817 __801: 40818 ; 40819 __799: 40820 ; 40821 __797: 40822 ; 40823 40824 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)), utf) != 0) { 40825 goto __806 40826 } 40827 goto __793 40828 __806: 40829 ; 40830 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len3) 40831 goto __792 40832 __792: 40833 i++ 40834 goto __791 40835 goto __793 40836 __793: 40837 ; 40838 40839 if !(reptype == REPTYPE_POS) { 40840 goto __807 40841 } 40842 goto __11 40843 __807: 40844 ; // No backtracking 40845 40846 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40847 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40848 // go too far. 40849 40850 __808: 40851 40852 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40853 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM101 40854 goto MATCH_RECURSE 40855 L_RM101: 40856 ; 40857 40858 if !(rrc != DMATCH_NOMATCH) { 40859 goto __811 40860 } 40861 rrc = rrc 40862 goto RETURN_SWITCH 40863 __811: 40864 ; 40865 40866 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 40867 goto __812 40868 } 40869 goto __810 40870 __812: 40871 ; // Tried at original position 40872 if !(utf != 0) { 40873 goto __813 40874 } 40875 __814: 40876 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40877 goto __815 40878 } 40879 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40880 goto __814 40881 __815: 40882 ; 40883 __813: 40884 ; 40885 goto __809 40886 __809: 40887 goto __808 40888 goto __810 40889 __810: 40890 ; 40891 rrc = DMATCH_NOMATCH 40892 goto RETURN_SWITCH 40893 40894 __772: 40895 ; 40896 40897 // Control never gets here 40898 40899 // ===================================================================== 40900 // Match various character types when PCRE2_UCP is not set. These opcodes 40901 // are not generated when PCRE2_UCP is set - instead appropriate property 40902 // tests are compiled. 40903 40904 __80: 40905 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40906 goto __816 40907 } 40908 40909 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40910 goto __817 40911 } 40912 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40913 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40914 goto __818 40915 } 40916 return -2 40917 __818: 40918 ; 40919 __817: 40920 ; 40921 40922 rrc = DMATCH_NOMATCH 40923 goto RETURN_SWITCH 40924 40925 __816: 40926 ; 40927 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40928 if !(utf != 0 && fc >= 0xc0) { 40929 goto __819 40930 } 40931 if !(fc&0x20 == Tuint32_t(0)) { 40932 goto __820 40933 } 40934 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40935 goto __821 40936 __820: 40937 if !(fc&0x10 == Tuint32_t(0)) { 40938 goto __822 40939 } 40940 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40941 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 40942 goto __823 40943 __822: 40944 if !(fc&0x08 == Tuint32_t(0)) { 40945 goto __824 40946 } 40947 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40948 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 40949 goto __825 40950 __824: 40951 if !(fc&0x04 == Tuint32_t(0)) { 40952 goto __826 40953 } 40954 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40955 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 40956 goto __827 40957 __826: 40958 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40959 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 40960 __827: 40961 ; 40962 __825: 40963 ; 40964 __823: 40965 ; 40966 __821: 40967 ; 40968 __819: 40969 ; 40970 40971 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 40972 goto __828 40973 } 40974 rrc = DMATCH_NOMATCH 40975 goto RETURN_SWITCH 40976 __828: 40977 ; 40978 40979 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 40980 goto __13 40981 40982 __81: 40983 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40984 goto __829 40985 } 40986 40987 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40988 goto __830 40989 } 40990 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40991 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40992 goto __831 40993 } 40994 return -2 40995 __831: 40996 ; 40997 __830: 40998 ; 40999 41000 rrc = DMATCH_NOMATCH 41001 goto RETURN_SWITCH 41002 41003 __829: 41004 ; 41005 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41006 if !(utf != 0 && fc >= 0xc0) { 41007 goto __832 41008 } 41009 if !(fc&0x20 == Tuint32_t(0)) { 41010 goto __833 41011 } 41012 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41013 goto __834 41014 __833: 41015 if !(fc&0x10 == Tuint32_t(0)) { 41016 goto __835 41017 } 41018 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41019 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41020 goto __836 41021 __835: 41022 if !(fc&0x08 == Tuint32_t(0)) { 41023 goto __837 41024 } 41025 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41026 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41027 goto __838 41028 __837: 41029 if !(fc&0x04 == Tuint32_t(0)) { 41030 goto __839 41031 } 41032 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41033 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41034 goto __840 41035 __839: 41036 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41037 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41038 __840: 41039 ; 41040 __838: 41041 ; 41042 __836: 41043 ; 41044 __834: 41045 ; 41046 __832: 41047 ; 41048 41049 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 41050 goto __841 41051 } 41052 rrc = DMATCH_NOMATCH 41053 goto RETURN_SWITCH 41054 __841: 41055 ; 41056 41057 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41058 goto __13 41059 41060 __82: 41061 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41062 goto __842 41063 } 41064 41065 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41066 goto __843 41067 } 41068 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41069 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41070 goto __844 41071 } 41072 return -2 41073 __844: 41074 ; 41075 __843: 41076 ; 41077 41078 rrc = DMATCH_NOMATCH 41079 goto RETURN_SWITCH 41080 41081 __842: 41082 ; 41083 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41084 if !(utf != 0 && fc >= 0xc0) { 41085 goto __845 41086 } 41087 if !(fc&0x20 == Tuint32_t(0)) { 41088 goto __846 41089 } 41090 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41091 goto __847 41092 __846: 41093 if !(fc&0x10 == Tuint32_t(0)) { 41094 goto __848 41095 } 41096 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41097 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41098 goto __849 41099 __848: 41100 if !(fc&0x08 == Tuint32_t(0)) { 41101 goto __850 41102 } 41103 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41104 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41105 goto __851 41106 __850: 41107 if !(fc&0x04 == Tuint32_t(0)) { 41108 goto __852 41109 } 41110 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41111 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41112 goto __853 41113 __852: 41114 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41115 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41116 __853: 41117 ; 41118 __851: 41119 ; 41120 __849: 41121 ; 41122 __847: 41123 ; 41124 __845: 41125 ; 41126 41127 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 41128 goto __854 41129 } 41130 rrc = DMATCH_NOMATCH 41131 goto RETURN_SWITCH 41132 __854: 41133 ; 41134 41135 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41136 goto __13 41137 41138 __83: 41139 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41140 goto __855 41141 } 41142 41143 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41144 goto __856 41145 } 41146 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41147 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41148 goto __857 41149 } 41150 return -2 41151 __857: 41152 ; 41153 __856: 41154 ; 41155 41156 rrc = DMATCH_NOMATCH 41157 goto RETURN_SWITCH 41158 41159 __855: 41160 ; 41161 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41162 if !(utf != 0 && fc >= 0xc0) { 41163 goto __858 41164 } 41165 if !(fc&0x20 == Tuint32_t(0)) { 41166 goto __859 41167 } 41168 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41169 goto __860 41170 __859: 41171 if !(fc&0x10 == Tuint32_t(0)) { 41172 goto __861 41173 } 41174 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41175 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41176 goto __862 41177 __861: 41178 if !(fc&0x08 == Tuint32_t(0)) { 41179 goto __863 41180 } 41181 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41182 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41183 goto __864 41184 __863: 41185 if !(fc&0x04 == Tuint32_t(0)) { 41186 goto __865 41187 } 41188 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41189 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41190 goto __866 41191 __865: 41192 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41193 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41194 __866: 41195 ; 41196 __864: 41197 ; 41198 __862: 41199 ; 41200 __860: 41201 ; 41202 __858: 41203 ; 41204 41205 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 41206 goto __867 41207 } 41208 rrc = DMATCH_NOMATCH 41209 goto RETURN_SWITCH 41210 __867: 41211 ; 41212 41213 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41214 goto __13 41215 41216 __84: 41217 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41218 goto __868 41219 } 41220 41221 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41222 goto __869 41223 } 41224 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41225 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41226 goto __870 41227 } 41228 return -2 41229 __870: 41230 ; 41231 __869: 41232 ; 41233 41234 rrc = DMATCH_NOMATCH 41235 goto RETURN_SWITCH 41236 41237 __868: 41238 ; 41239 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41240 if !(utf != 0 && fc >= 0xc0) { 41241 goto __871 41242 } 41243 if !(fc&0x20 == Tuint32_t(0)) { 41244 goto __872 41245 } 41246 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41247 goto __873 41248 __872: 41249 if !(fc&0x10 == Tuint32_t(0)) { 41250 goto __874 41251 } 41252 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41253 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41254 goto __875 41255 __874: 41256 if !(fc&0x08 == Tuint32_t(0)) { 41257 goto __876 41258 } 41259 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41260 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41261 goto __877 41262 __876: 41263 if !(fc&0x04 == Tuint32_t(0)) { 41264 goto __878 41265 } 41266 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41267 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41268 goto __879 41269 __878: 41270 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41271 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41272 __879: 41273 ; 41274 __877: 41275 ; 41276 __875: 41277 ; 41278 __873: 41279 ; 41280 __871: 41281 ; 41282 41283 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 41284 goto __880 41285 } 41286 rrc = DMATCH_NOMATCH 41287 goto RETURN_SWITCH 41288 __880: 41289 ; 41290 41291 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41292 goto __13 41293 41294 __85: 41295 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41296 goto __881 41297 } 41298 41299 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41300 goto __882 41301 } 41302 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41303 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41304 goto __883 41305 } 41306 return -2 41307 __883: 41308 ; 41309 __882: 41310 ; 41311 41312 rrc = DMATCH_NOMATCH 41313 goto RETURN_SWITCH 41314 41315 __881: 41316 ; 41317 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41318 if !(utf != 0 && fc >= 0xc0) { 41319 goto __884 41320 } 41321 if !(fc&0x20 == Tuint32_t(0)) { 41322 goto __885 41323 } 41324 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41325 goto __886 41326 __885: 41327 if !(fc&0x10 == Tuint32_t(0)) { 41328 goto __887 41329 } 41330 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41331 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41332 goto __888 41333 __887: 41334 if !(fc&0x08 == Tuint32_t(0)) { 41335 goto __889 41336 } 41337 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41338 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41339 goto __890 41340 __889: 41341 if !(fc&0x04 == Tuint32_t(0)) { 41342 goto __891 41343 } 41344 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41345 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41346 goto __892 41347 __891: 41348 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41349 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41350 __892: 41351 ; 41352 __890: 41353 ; 41354 __888: 41355 ; 41356 __886: 41357 ; 41358 __884: 41359 ; 41360 41361 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 41362 goto __893 41363 } 41364 rrc = DMATCH_NOMATCH 41365 goto RETURN_SWITCH 41366 __893: 41367 ; 41368 41369 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41370 goto __13 41371 41372 __86: 41373 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41374 goto __894 41375 } 41376 41377 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41378 goto __895 41379 } 41380 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41381 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41382 goto __896 41383 } 41384 return -2 41385 __896: 41386 ; 41387 __895: 41388 ; 41389 41390 rrc = DMATCH_NOMATCH 41391 goto RETURN_SWITCH 41392 41393 __894: 41394 ; 41395 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41396 if !(utf != 0 && fc >= 0xc0) { 41397 goto __897 41398 } 41399 if !(fc&0x20 == Tuint32_t(0)) { 41400 goto __898 41401 } 41402 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41403 goto __899 41404 __898: 41405 if !(fc&0x10 == Tuint32_t(0)) { 41406 goto __900 41407 } 41408 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41409 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41410 goto __901 41411 __900: 41412 if !(fc&0x08 == Tuint32_t(0)) { 41413 goto __902 41414 } 41415 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41416 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41417 goto __903 41418 __902: 41419 if !(fc&0x04 == Tuint32_t(0)) { 41420 goto __904 41421 } 41422 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41423 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41424 goto __905 41425 __904: 41426 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41427 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41428 __905: 41429 ; 41430 __903: 41431 ; 41432 __901: 41433 ; 41434 __899: 41435 ; 41436 __897: 41437 ; 41438 41439 switch fc { 41440 default: 41441 goto __907 41442 41443 case Tuint32_t('\015'): 41444 goto __908 41445 41446 case Tuint32_t('\012'): 41447 goto __909 41448 41449 case Tuint32_t('\013'): 41450 goto __910 41451 case Tuint32_t('\014'): 41452 goto __911 41453 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41454 goto __912 41455 case Tuint32_t(0x2028): 41456 goto __913 41457 case Tuint32_t(0x2029): 41458 goto __914 41459 } 41460 goto __906 41461 41462 __907: 41463 rrc = DMATCH_NOMATCH 41464 goto RETURN_SWITCH 41465 41466 __908: 41467 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41468 goto __915 41469 } 41470 41471 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41472 goto __917 41473 } 41474 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41475 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41476 goto __918 41477 } 41478 return -2 41479 __918: 41480 ; 41481 __917: 41482 ; 41483 41484 goto __916 41485 __915: 41486 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 41487 goto __919 41488 } 41489 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 41490 __919: 41491 ; 41492 __916: 41493 ; 41494 goto __906 41495 41496 __909: 41497 goto __906 41498 41499 __910: 41500 __911: 41501 __912: 41502 __913: 41503 __914: 41504 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 41505 goto __920 41506 } 41507 rrc = DMATCH_NOMATCH 41508 goto RETURN_SWITCH 41509 __920: 41510 ; 41511 41512 goto __906 41513 __906: 41514 ; 41515 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41516 goto __13 41517 41518 __87: 41519 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41520 goto __921 41521 } 41522 41523 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41524 goto __922 41525 } 41526 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41527 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41528 goto __923 41529 } 41530 return -2 41531 __923: 41532 ; 41533 __922: 41534 ; 41535 41536 rrc = DMATCH_NOMATCH 41537 goto RETURN_SWITCH 41538 41539 __921: 41540 ; 41541 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41542 if !(utf != 0 && fc >= 0xc0) { 41543 goto __924 41544 } 41545 if !(fc&0x20 == Tuint32_t(0)) { 41546 goto __925 41547 } 41548 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41549 goto __926 41550 __925: 41551 if !(fc&0x10 == Tuint32_t(0)) { 41552 goto __927 41553 } 41554 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41555 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41556 goto __928 41557 __927: 41558 if !(fc&0x08 == Tuint32_t(0)) { 41559 goto __929 41560 } 41561 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41562 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41563 goto __930 41564 __929: 41565 if !(fc&0x04 == Tuint32_t(0)) { 41566 goto __931 41567 } 41568 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41569 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41570 goto __932 41571 __931: 41572 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41573 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41574 __932: 41575 ; 41576 __930: 41577 ; 41578 __928: 41579 ; 41580 __926: 41581 ; 41582 __924: 41583 ; 41584 41585 switch fc { 41586 case Tuint32_t('\011'): 41587 goto __934 41588 case Tuint32_t('\040'): 41589 goto __935 41590 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 41591 goto __936 41592 case Tuint32_t(0x1680): 41593 goto __937 /* OGHAM SPACE MARK */ 41594 case Tuint32_t(0x180e): 41595 goto __938 /* MONGOLIAN VOWEL SEPARATOR */ 41596 case Tuint32_t(0x2000): 41597 goto __939 /* EN QUAD */ 41598 case Tuint32_t(0x2001): 41599 goto __940 /* EM QUAD */ 41600 case Tuint32_t(0x2002): 41601 goto __941 /* EN SPACE */ 41602 case Tuint32_t(0x2003): 41603 goto __942 /* EM SPACE */ 41604 case Tuint32_t(0x2004): 41605 goto __943 /* THREE-PER-EM SPACE */ 41606 case Tuint32_t(0x2005): 41607 goto __944 /* FOUR-PER-EM SPACE */ 41608 case Tuint32_t(0x2006): 41609 goto __945 /* SIX-PER-EM SPACE */ 41610 case Tuint32_t(0x2007): 41611 goto __946 /* FIGURE SPACE */ 41612 case Tuint32_t(0x2008): 41613 goto __947 /* PUNCTUATION SPACE */ 41614 case Tuint32_t(0x2009): 41615 goto __948 /* THIN SPACE */ 41616 case Tuint32_t(0x200A): 41617 goto __949 /* HAIR SPACE */ 41618 case Tuint32_t(0x202f): 41619 goto __950 /* NARROW NO-BREAK SPACE */ 41620 case Tuint32_t(0x205f): 41621 goto __951 /* MEDIUM MATHEMATICAL SPACE */ 41622 case Tuint32_t(0x3000): 41623 goto __952 // Byte and multibyte cases 41624 default: 41625 goto __953 41626 } 41627 goto __933 41628 41629 __934: 41630 __935: 41631 __936: 41632 __937: /* OGHAM SPACE MARK */ 41633 __938: /* MONGOLIAN VOWEL SEPARATOR */ 41634 __939: /* EN QUAD */ 41635 __940: /* EM QUAD */ 41636 __941: /* EN SPACE */ 41637 __942: /* EM SPACE */ 41638 __943: /* THREE-PER-EM SPACE */ 41639 __944: /* FOUR-PER-EM SPACE */ 41640 __945: /* SIX-PER-EM SPACE */ 41641 __946: /* FIGURE SPACE */ 41642 __947: /* PUNCTUATION SPACE */ 41643 __948: /* THIN SPACE */ 41644 __949: /* HAIR SPACE */ 41645 __950: /* NARROW NO-BREAK SPACE */ 41646 __951: /* MEDIUM MATHEMATICAL SPACE */ 41647 __952: 41648 rrc = DMATCH_NOMATCH 41649 goto RETURN_SWITCH 41650 // Byte and multibyte cases 41651 __953: 41652 goto __933 41653 __933: 41654 ; 41655 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41656 goto __13 41657 41658 __88: 41659 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41660 goto __954 41661 } 41662 41663 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41664 goto __955 41665 } 41666 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41667 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41668 goto __956 41669 } 41670 return -2 41671 __956: 41672 ; 41673 __955: 41674 ; 41675 41676 rrc = DMATCH_NOMATCH 41677 goto RETURN_SWITCH 41678 41679 __954: 41680 ; 41681 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41682 if !(utf != 0 && fc >= 0xc0) { 41683 goto __957 41684 } 41685 if !(fc&0x20 == Tuint32_t(0)) { 41686 goto __958 41687 } 41688 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41689 goto __959 41690 __958: 41691 if !(fc&0x10 == Tuint32_t(0)) { 41692 goto __960 41693 } 41694 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41695 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41696 goto __961 41697 __960: 41698 if !(fc&0x08 == Tuint32_t(0)) { 41699 goto __962 41700 } 41701 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41702 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41703 goto __963 41704 __962: 41705 if !(fc&0x04 == Tuint32_t(0)) { 41706 goto __964 41707 } 41708 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41709 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41710 goto __965 41711 __964: 41712 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41713 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41714 __965: 41715 ; 41716 __963: 41717 ; 41718 __961: 41719 ; 41720 __959: 41721 ; 41722 __957: 41723 ; 41724 41725 switch fc { 41726 case Tuint32_t('\011'): 41727 goto __967 41728 case Tuint32_t('\040'): 41729 goto __968 41730 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 41731 goto __969 41732 case Tuint32_t(0x1680): 41733 goto __970 /* OGHAM SPACE MARK */ 41734 case Tuint32_t(0x180e): 41735 goto __971 /* MONGOLIAN VOWEL SEPARATOR */ 41736 case Tuint32_t(0x2000): 41737 goto __972 /* EN QUAD */ 41738 case Tuint32_t(0x2001): 41739 goto __973 /* EM QUAD */ 41740 case Tuint32_t(0x2002): 41741 goto __974 /* EN SPACE */ 41742 case Tuint32_t(0x2003): 41743 goto __975 /* EM SPACE */ 41744 case Tuint32_t(0x2004): 41745 goto __976 /* THREE-PER-EM SPACE */ 41746 case Tuint32_t(0x2005): 41747 goto __977 /* FOUR-PER-EM SPACE */ 41748 case Tuint32_t(0x2006): 41749 goto __978 /* SIX-PER-EM SPACE */ 41750 case Tuint32_t(0x2007): 41751 goto __979 /* FIGURE SPACE */ 41752 case Tuint32_t(0x2008): 41753 goto __980 /* PUNCTUATION SPACE */ 41754 case Tuint32_t(0x2009): 41755 goto __981 /* THIN SPACE */ 41756 case Tuint32_t(0x200A): 41757 goto __982 /* HAIR SPACE */ 41758 case Tuint32_t(0x202f): 41759 goto __983 /* NARROW NO-BREAK SPACE */ 41760 case Tuint32_t(0x205f): 41761 goto __984 /* MEDIUM MATHEMATICAL SPACE */ 41762 case Tuint32_t(0x3000): 41763 goto __985 // Byte and multibyte cases 41764 default: 41765 goto __986 41766 } 41767 goto __966 41768 41769 __967: 41770 __968: 41771 __969: 41772 __970: /* OGHAM SPACE MARK */ 41773 __971: /* MONGOLIAN VOWEL SEPARATOR */ 41774 __972: /* EN QUAD */ 41775 __973: /* EM QUAD */ 41776 __974: /* EN SPACE */ 41777 __975: /* EM SPACE */ 41778 __976: /* THREE-PER-EM SPACE */ 41779 __977: /* FOUR-PER-EM SPACE */ 41780 __978: /* SIX-PER-EM SPACE */ 41781 __979: /* FIGURE SPACE */ 41782 __980: /* PUNCTUATION SPACE */ 41783 __981: /* THIN SPACE */ 41784 __982: /* HAIR SPACE */ 41785 __983: /* NARROW NO-BREAK SPACE */ 41786 __984: /* MEDIUM MATHEMATICAL SPACE */ 41787 __985: 41788 goto __966 // Byte and multibyte cases 41789 __986: 41790 rrc = DMATCH_NOMATCH 41791 goto RETURN_SWITCH 41792 41793 __966: 41794 ; 41795 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41796 goto __13 41797 41798 __89: 41799 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41800 goto __987 41801 } 41802 41803 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41804 goto __988 41805 } 41806 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41807 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41808 goto __989 41809 } 41810 return -2 41811 __989: 41812 ; 41813 __988: 41814 ; 41815 41816 rrc = DMATCH_NOMATCH 41817 goto RETURN_SWITCH 41818 41819 __987: 41820 ; 41821 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41822 if !(utf != 0 && fc >= 0xc0) { 41823 goto __990 41824 } 41825 if !(fc&0x20 == Tuint32_t(0)) { 41826 goto __991 41827 } 41828 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41829 goto __992 41830 __991: 41831 if !(fc&0x10 == Tuint32_t(0)) { 41832 goto __993 41833 } 41834 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41835 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41836 goto __994 41837 __993: 41838 if !(fc&0x08 == Tuint32_t(0)) { 41839 goto __995 41840 } 41841 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41842 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41843 goto __996 41844 __995: 41845 if !(fc&0x04 == Tuint32_t(0)) { 41846 goto __997 41847 } 41848 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41849 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41850 goto __998 41851 __997: 41852 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41853 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41854 __998: 41855 ; 41856 __996: 41857 ; 41858 __994: 41859 ; 41860 __992: 41861 ; 41862 __990: 41863 ; 41864 41865 switch fc { 41866 case Tuint32_t('\012'): 41867 goto __1000 41868 case Tuint32_t('\013'): 41869 goto __1001 41870 case Tuint32_t('\014'): 41871 goto __1002 41872 case Tuint32_t('\015'): 41873 goto __1003 41874 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41875 goto __1004 41876 case Tuint32_t(0x2028): 41877 goto __1005 /* LINE SEPARATOR */ 41878 case Tuint32_t(0x2029): 41879 goto __1006 41880 default: 41881 goto __1007 41882 } 41883 goto __999 41884 41885 __1000: 41886 __1001: 41887 __1002: 41888 __1003: 41889 __1004: 41890 __1005: /* LINE SEPARATOR */ 41891 __1006: 41892 rrc = DMATCH_NOMATCH 41893 goto RETURN_SWITCH 41894 41895 __1007: 41896 goto __999 41897 __999: 41898 ; 41899 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41900 goto __13 41901 41902 __90: 41903 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41904 goto __1008 41905 } 41906 41907 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41908 goto __1009 41909 } 41910 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41911 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41912 goto __1010 41913 } 41914 return -2 41915 __1010: 41916 ; 41917 __1009: 41918 ; 41919 41920 rrc = DMATCH_NOMATCH 41921 goto RETURN_SWITCH 41922 41923 __1008: 41924 ; 41925 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41926 if !(utf != 0 && fc >= 0xc0) { 41927 goto __1011 41928 } 41929 if !(fc&0x20 == Tuint32_t(0)) { 41930 goto __1012 41931 } 41932 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41933 goto __1013 41934 __1012: 41935 if !(fc&0x10 == Tuint32_t(0)) { 41936 goto __1014 41937 } 41938 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41939 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 41940 goto __1015 41941 __1014: 41942 if !(fc&0x08 == Tuint32_t(0)) { 41943 goto __1016 41944 } 41945 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41946 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 41947 goto __1017 41948 __1016: 41949 if !(fc&0x04 == Tuint32_t(0)) { 41950 goto __1018 41951 } 41952 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41953 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 41954 goto __1019 41955 __1018: 41956 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41957 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 41958 __1019: 41959 ; 41960 __1017: 41961 ; 41962 __1015: 41963 ; 41964 __1013: 41965 ; 41966 __1011: 41967 ; 41968 41969 switch fc { 41970 case Tuint32_t('\012'): 41971 goto __1021 41972 case Tuint32_t('\013'): 41973 goto __1022 41974 case Tuint32_t('\014'): 41975 goto __1023 41976 case Tuint32_t('\015'): 41977 goto __1024 41978 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41979 goto __1025 41980 case Tuint32_t(0x2028): 41981 goto __1026 /* LINE SEPARATOR */ 41982 case Tuint32_t(0x2029): 41983 goto __1027 41984 default: 41985 goto __1028 41986 } 41987 goto __1020 41988 41989 __1021: 41990 __1022: 41991 __1023: 41992 __1024: 41993 __1025: 41994 __1026: /* LINE SEPARATOR */ 41995 __1027: 41996 goto __1020 41997 __1028: 41998 rrc = DMATCH_NOMATCH 41999 goto RETURN_SWITCH 42000 42001 __1020: 42002 ; 42003 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42004 goto __13 42005 42006 // ===================================================================== 42007 // Check the next character by Unicode property. We will get here only 42008 // if the support is in the binary; otherwise a compile-time error occurs. 42009 42010 __91: 42011 __92: 42012 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42013 goto __1029 42014 } 42015 42016 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42017 goto __1030 42018 } 42019 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42020 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42021 goto __1031 42022 } 42023 return -2 42024 __1031: 42025 ; 42026 __1030: 42027 ; 42028 42029 rrc = DMATCH_NOMATCH 42030 goto RETURN_SWITCH 42031 42032 __1029: 42033 ; 42034 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42035 if !(utf != 0 && fc >= 0xc0) { 42036 goto __1032 42037 } 42038 if !(fc&0x20 == Tuint32_t(0)) { 42039 goto __1033 42040 } 42041 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42042 goto __1034 42043 __1033: 42044 if !(fc&0x10 == Tuint32_t(0)) { 42045 goto __1035 42046 } 42047 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42048 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42049 goto __1036 42050 __1035: 42051 if !(fc&0x08 == Tuint32_t(0)) { 42052 goto __1037 42053 } 42054 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42055 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42056 goto __1038 42057 __1037: 42058 if !(fc&0x04 == Tuint32_t(0)) { 42059 goto __1039 42060 } 42061 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42062 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 42063 goto __1040 42064 __1039: 42065 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42066 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 42067 __1040: 42068 ; 42069 __1038: 42070 ; 42071 __1036: 42072 ; 42073 __1034: 42074 ; 42075 __1032: 42076 ; 42077 42078 prop = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 42079 notmatch = libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTPROP) 42080 42081 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) { 42082 case DPT_ANY: 42083 goto __1042 42084 42085 case DPT_LAMP: 42086 goto __1043 42087 42088 case DPT_GC: 42089 goto __1044 42090 42091 case DPT_PC: 42092 goto __1045 42093 42094 case DPT_SC: 42095 goto __1046 42096 42097 case DPT_SCX: 42098 goto __1047 42099 42100 // These are specials 42101 42102 case DPT_ALNUM: 42103 goto __1048 42104 42105 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42106 // which means that Perl space and POSIX space are now identical. PCRE 42107 // was changed at release 8.34. 42108 42109 case DPT_SPACE: 42110 goto __1049 // Perl space 42111 case DPT_PXSPACE: 42112 goto __1050 42113 42114 case DPT_WORD: 42115 goto __1051 42116 42117 case DPT_CLIST: 42118 goto __1052 42119 42120 case DPT_UCNC: 42121 goto __1053 42122 42123 case DPT_BIDICL: 42124 goto __1054 42125 42126 case DPT_BOOL: 42127 goto __1055 42128 42129 // This should never occur 42130 42131 default: 42132 goto __1056 42133 } 42134 goto __1041 42135 42136 __1042: 42137 if !(notmatch != 0) { 42138 goto __1057 42139 } 42140 rrc = DMATCH_NOMATCH 42141 goto RETURN_SWITCH 42142 __1057: 42143 ; 42144 42145 goto __1041 42146 42147 __1043: 42148 if !(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == notmatch) { 42149 goto __1058 42150 } 42151 rrc = DMATCH_NOMATCH 42152 goto RETURN_SWITCH 42153 __1058: 42154 ; 42155 42156 goto __1041 42157 42158 __1044: 42159 if !(libc.Bool32(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == notmatch) { 42160 goto __1059 42161 } 42162 rrc = DMATCH_NOMATCH 42163 goto RETURN_SWITCH 42164 __1059: 42165 ; 42166 42167 goto __1041 42168 42169 __1045: 42170 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == notmatch) { 42171 goto __1060 42172 } 42173 rrc = DMATCH_NOMATCH 42174 goto RETURN_SWITCH 42175 __1060: 42176 ; 42177 42178 goto __1041 42179 42180 __1046: 42181 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == notmatch) { 42182 goto __1061 42183 } 42184 rrc = DMATCH_NOMATCH 42185 goto RETURN_SWITCH 42186 __1061: 42187 ; 42188 42189 goto __1041 42190 42191 __1047: 42192 42193 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))%32)) != Tuint32_t(0)) 42194 if !(ok == notmatch) { 42195 goto __1062 42196 } 42197 rrc = DMATCH_NOMATCH 42198 goto RETURN_SWITCH 42199 __1062: 42200 ; 42201 42202 goto __1041 42203 42204 // These are specials 42205 42206 __1048: 42207 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == notmatch) { 42208 goto __1063 42209 } 42210 rrc = DMATCH_NOMATCH 42211 goto RETURN_SWITCH 42212 __1063: 42213 ; 42214 42215 goto __1041 42216 42217 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42218 // which means that Perl space and POSIX space are now identical. PCRE 42219 // was changed at release 8.34. 42220 42221 __1049: // Perl space 42222 __1050: // POSIX space 42223 switch fc { 42224 case Tuint32_t('\011'): 42225 goto __1065 42226 case Tuint32_t('\040'): 42227 goto __1066 42228 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 42229 goto __1067 42230 case Tuint32_t(0x1680): 42231 goto __1068 /* OGHAM SPACE MARK */ 42232 case Tuint32_t(0x180e): 42233 goto __1069 /* MONGOLIAN VOWEL SEPARATOR */ 42234 case Tuint32_t(0x2000): 42235 goto __1070 /* EN QUAD */ 42236 case Tuint32_t(0x2001): 42237 goto __1071 /* EM QUAD */ 42238 case Tuint32_t(0x2002): 42239 goto __1072 /* EN SPACE */ 42240 case Tuint32_t(0x2003): 42241 goto __1073 /* EM SPACE */ 42242 case Tuint32_t(0x2004): 42243 goto __1074 /* THREE-PER-EM SPACE */ 42244 case Tuint32_t(0x2005): 42245 goto __1075 /* FOUR-PER-EM SPACE */ 42246 case Tuint32_t(0x2006): 42247 goto __1076 /* SIX-PER-EM SPACE */ 42248 case Tuint32_t(0x2007): 42249 goto __1077 /* FIGURE SPACE */ 42250 case Tuint32_t(0x2008): 42251 goto __1078 /* PUNCTUATION SPACE */ 42252 case Tuint32_t(0x2009): 42253 goto __1079 /* THIN SPACE */ 42254 case Tuint32_t(0x200A): 42255 goto __1080 /* HAIR SPACE */ 42256 case Tuint32_t(0x202f): 42257 goto __1081 /* NARROW NO-BREAK SPACE */ 42258 case Tuint32_t(0x205f): 42259 goto __1082 /* MEDIUM MATHEMATICAL SPACE */ 42260 case Tuint32_t(0x3000): 42261 goto __1083 42262 case Tuint32_t('\012'): 42263 goto __1084 42264 case Tuint32_t('\013'): 42265 goto __1085 42266 case Tuint32_t('\014'): 42267 goto __1086 42268 case Tuint32_t('\015'): 42269 goto __1087 42270 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 42271 goto __1088 42272 case Tuint32_t(0x2028): 42273 goto __1089 /* LINE SEPARATOR */ 42274 case Tuint32_t(0x2029): 42275 goto __1090 42276 42277 default: 42278 goto __1091 42279 } 42280 goto __1064 42281 42282 __1065: 42283 __1066: 42284 __1067: 42285 __1068: /* OGHAM SPACE MARK */ 42286 __1069: /* MONGOLIAN VOWEL SEPARATOR */ 42287 __1070: /* EN QUAD */ 42288 __1071: /* EM QUAD */ 42289 __1072: /* EN SPACE */ 42290 __1073: /* EM SPACE */ 42291 __1074: /* THREE-PER-EM SPACE */ 42292 __1075: /* FOUR-PER-EM SPACE */ 42293 __1076: /* SIX-PER-EM SPACE */ 42294 __1077: /* FIGURE SPACE */ 42295 __1078: /* PUNCTUATION SPACE */ 42296 __1079: /* THIN SPACE */ 42297 __1080: /* HAIR SPACE */ 42298 __1081: /* NARROW NO-BREAK SPACE */ 42299 __1082: /* MEDIUM MATHEMATICAL SPACE */ 42300 __1083: 42301 __1084: 42302 __1085: 42303 __1086: 42304 __1087: 42305 __1088: 42306 __1089: /* LINE SEPARATOR */ 42307 __1090: 42308 if !(notmatch != 0) { 42309 goto __1092 42310 } 42311 rrc = DMATCH_NOMATCH 42312 goto RETURN_SWITCH 42313 __1092: 42314 ; 42315 42316 goto __1064 42317 42318 __1091: 42319 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == notmatch) { 42320 goto __1093 42321 } 42322 rrc = DMATCH_NOMATCH 42323 goto RETURN_SWITCH 42324 __1093: 42325 ; 42326 42327 goto __1064 42328 __1064: 42329 ; 42330 goto __1041 42331 42332 __1051: 42333 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || fc == Tuint32_t('\137')) == notmatch) { 42334 goto __1094 42335 } 42336 rrc = DMATCH_NOMATCH 42337 goto RETURN_SWITCH 42338 __1094: 42339 ; 42340 42341 goto __1041 42342 42343 __1052: 42344 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))*4 42345 __1095: 42346 42347 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp))) { 42348 goto __1098 42349 } 42350 if !(notmatch != 0) { 42351 goto __1099 42352 } 42353 goto __1097 42354 goto __1100 42355 __1099: 42356 rrc = DMATCH_NOMATCH 42357 goto RETURN_SWITCH 42358 __1100: 42359 ; 42360 __1098: 42361 ; 42362 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 42363 goto __1101 42364 } 42365 if !(notmatch != 0) { 42366 goto __1102 42367 } 42368 rrc = DMATCH_NOMATCH 42369 goto RETURN_SWITCH 42370 goto __1103 42371 __1102: 42372 goto __1097 42373 __1103: 42374 ; 42375 __1101: 42376 ; 42377 goto __1096 42378 __1096: 42379 goto __1095 42380 goto __1097 42381 __1097: 42382 ; 42383 goto __1041 42384 42385 __1053: 42386 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch) { 42387 goto __1104 42388 } 42389 rrc = DMATCH_NOMATCH 42390 goto RETURN_SWITCH 42391 __1104: 42392 ; 42393 42394 goto __1041 42395 42396 __1054: 42397 if !(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) == notmatch) { 42398 goto __1105 42399 } 42400 rrc = DMATCH_NOMATCH 42401 goto RETURN_SWITCH 42402 __1105: 42403 ; 42404 42405 goto __1041 42406 42407 __1055: 42408 42409 ok1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))%32)) != Tuint32_t(0)) 42410 if !(ok1 == notmatch) { 42411 goto __1106 42412 } 42413 rrc = DMATCH_NOMATCH 42414 goto RETURN_SWITCH 42415 __1106: 42416 ; 42417 42418 goto __1041 42419 42420 // This should never occur 42421 42422 __1056: 42423 return -44 42424 __1041: 42425 ; 42426 42427 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 42428 42429 goto __13 42430 42431 // ===================================================================== 42432 // Match an extended Unicode sequence. We will get here only if the support 42433 // is in the binary; otherwise a compile-time error occurs. 42434 42435 __93: 42436 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42437 goto __1107 42438 } 42439 42440 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42441 goto __1109 42442 } 42443 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42444 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42445 goto __1110 42446 } 42447 return -2 42448 __1110: 42449 ; 42450 __1109: 42451 ; 42452 42453 rrc = DMATCH_NOMATCH 42454 goto RETURN_SWITCH 42455 42456 goto __1108 42457 __1107: 42458 42459 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42460 if !(utf != 0 && fc >= 0xc0) { 42461 goto __1111 42462 } 42463 if !(fc&0x20 == Tuint32_t(0)) { 42464 goto __1112 42465 } 42466 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42467 goto __1113 42468 __1112: 42469 if !(fc&0x10 == Tuint32_t(0)) { 42470 goto __1114 42471 } 42472 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42473 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42474 goto __1115 42475 __1114: 42476 if !(fc&0x08 == Tuint32_t(0)) { 42477 goto __1116 42478 } 42479 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42480 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42481 goto __1117 42482 __1116: 42483 if !(fc&0x04 == Tuint32_t(0)) { 42484 goto __1118 42485 } 42486 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42487 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 42488 goto __1119 42489 __1118: 42490 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 42492 __1119: 42493 ; 42494 __1117: 42495 ; 42496 __1115: 42497 ; 42498 __1113: 42499 ; 42500 __1111: 42501 ; 42502 42503 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, utf, 42504 uintptr(0)) 42505 __1108: 42506 ; 42507 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42508 goto __1120 42509 } 42510 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42511 goto __1121 42512 } 42513 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42514 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42515 goto __1122 42516 } 42517 return -2 42518 __1122: 42519 ; 42520 __1121: 42521 ; 42522 __1120: 42523 ; 42524 42525 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42526 goto __13 42527 42528 // ===================================================================== 42529 // Match a single character type repeatedly. Note that the property type 42530 // does not need to be in a stack frame as it is not used within an RMATCH() 42531 // loop. 42532 42533 __94: 42534 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = libc.AssignPtrUint32(F+32+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 42535 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42536 goto REPEATTYPE 42537 42538 __95: 42539 __96: 42540 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 42541 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 42542 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_TYPEMINUPTO { 42543 reptype = REPTYPE_MIN 42544 } else { 42545 reptype = REPTYPE_MAX 42546 } 42547 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42548 goto REPEATTYPE 42549 42550 __97: 42551 reptype = REPTYPE_POS 42552 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 42553 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 42554 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42555 goto REPEATTYPE 42556 42557 __98: 42558 reptype = REPTYPE_POS 42559 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(1) 42560 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 42561 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42562 goto REPEATTYPE 42563 42564 __99: 42565 reptype = REPTYPE_POS 42566 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 42567 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = Tuint32_t(1) 42568 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42569 goto REPEATTYPE 42570 42571 __100: 42572 reptype = REPTYPE_POS 42573 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 42574 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 42575 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42576 goto REPEATTYPE 42577 42578 __101: 42579 __102: 42580 __103: 42581 __104: 42582 __105: 42583 __106: 42584 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_TYPESTAR) 42585 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 42586 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 42587 reptype = rep_typ[fc] 42588 42589 // Common code for all repeated character type matches. 42590 42591 REPEATTYPE: 42592 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) // Code for the character type 42593 42594 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_PROP || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) { 42595 goto __1123 42596 } 42597 42598 proptype = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42599 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42600 goto __1124 42601 __1123: 42602 proptype = -1 42603 __1124: 42604 ; 42605 42606 // First, ensure the minimum number of matches are present. Use inline 42607 // code for maximizing the speed, and do the type test once at the start 42608 // (i.e. keep it out of the loops). As there are no calls to RMATCH in the 42609 // loops, we can use an ordinary variable for "notmatch". The code for UTF 42610 // mode is separated out for tidiness, except for Unicode property tests. 42611 42612 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) > Tuint32_t(0)) { 42613 goto __1125 42614 } 42615 42616 if !(proptype >= 0) { 42617 goto __1126 42618 } /* Property tests in all modes */ 42619 42620 notmatch1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) 42621 switch proptype { 42622 case DPT_ANY: 42623 goto __1129 42624 42625 case DPT_LAMP: 42626 goto __1130 42627 42628 case DPT_GC: 42629 goto __1131 42630 42631 case DPT_PC: 42632 goto __1132 42633 42634 case DPT_SC: 42635 goto __1133 42636 42637 case DPT_SCX: 42638 goto __1134 42639 42640 case DPT_ALNUM: 42641 goto __1135 42642 42643 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42644 // which means that Perl space and POSIX space are now identical. PCRE 42645 // was changed at release 8.34. 42646 42647 case DPT_SPACE: 42648 goto __1136 // Perl space 42649 case DPT_PXSPACE: 42650 goto __1137 42651 42652 case DPT_WORD: 42653 goto __1138 42654 42655 case DPT_CLIST: 42656 goto __1139 42657 42658 case DPT_UCNC: 42659 goto __1140 42660 42661 case DPT_BIDICL: 42662 goto __1141 42663 42664 case DPT_BOOL: 42665 goto __1142 42666 42667 // This should not occur 42668 42669 default: 42670 goto __1143 42671 } 42672 goto __1128 42673 42674 __1129: 42675 if !(notmatch1 != 0) { 42676 goto __1144 42677 } 42678 rrc = DMATCH_NOMATCH 42679 goto RETURN_SWITCH 42680 __1144: 42681 ; 42682 42683 i = Tuint32_t(1) 42684 __1145: 42685 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 42686 goto __1147 42687 } 42688 42689 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42690 goto __1148 42691 } 42692 42693 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42694 goto __1149 42695 } 42696 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42697 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42698 goto __1150 42699 } 42700 return -2 42701 __1150: 42702 ; 42703 __1149: 42704 ; 42705 42706 rrc = DMATCH_NOMATCH 42707 goto RETURN_SWITCH 42708 42709 __1148: 42710 ; 42711 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42712 if !(utf != 0 && fc >= 0xc0) { 42713 goto __1151 42714 } 42715 if !(fc&0x20 == Tuint32_t(0)) { 42716 goto __1152 42717 } 42718 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42719 goto __1153 42720 __1152: 42721 if !(fc&0x10 == Tuint32_t(0)) { 42722 goto __1154 42723 } 42724 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42725 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42726 goto __1155 42727 __1154: 42728 if !(fc&0x08 == Tuint32_t(0)) { 42729 goto __1156 42730 } 42731 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42732 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42733 goto __1157 42734 __1156: 42735 if !(fc&0x04 == Tuint32_t(0)) { 42736 goto __1158 42737 } 42738 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42739 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 42740 goto __1159 42741 __1158: 42742 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42743 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 42744 __1159: 42745 ; 42746 __1157: 42747 ; 42748 __1155: 42749 ; 42750 __1153: 42751 ; 42752 __1151: 42753 ; 42754 42755 goto __1146 42756 __1146: 42757 i++ 42758 goto __1145 42759 goto __1147 42760 __1147: 42761 ; 42762 goto __1128 42763 42764 __1130: 42765 i = Tuint32_t(1) 42766 __1160: 42767 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 42768 goto __1162 42769 } 42770 42771 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42772 goto __1163 42773 } 42774 42775 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42776 goto __1164 42777 } 42778 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42779 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42780 goto __1165 42781 } 42782 return -2 42783 __1165: 42784 ; 42785 __1164: 42786 ; 42787 42788 rrc = DMATCH_NOMATCH 42789 goto RETURN_SWITCH 42790 42791 __1163: 42792 ; 42793 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42794 if !(utf != 0 && fc >= 0xc0) { 42795 goto __1166 42796 } 42797 if !(fc&0x20 == Tuint32_t(0)) { 42798 goto __1167 42799 } 42800 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42801 goto __1168 42802 __1167: 42803 if !(fc&0x10 == Tuint32_t(0)) { 42804 goto __1169 42805 } 42806 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42807 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42808 goto __1170 42809 __1169: 42810 if !(fc&0x08 == Tuint32_t(0)) { 42811 goto __1171 42812 } 42813 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42814 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42815 goto __1172 42816 __1171: 42817 if !(fc&0x04 == Tuint32_t(0)) { 42818 goto __1173 42819 } 42820 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42821 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 42822 goto __1174 42823 __1173: 42824 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42825 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 42826 __1174: 42827 ; 42828 __1172: 42829 ; 42830 __1170: 42831 ; 42832 __1168: 42833 ; 42834 __1166: 42835 ; 42836 42837 chartype = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 42838 if !(libc.Bool32(chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == notmatch1) { 42839 goto __1175 42840 } 42841 rrc = DMATCH_NOMATCH 42842 goto RETURN_SWITCH 42843 __1175: 42844 ; 42845 42846 goto __1161 42847 __1161: 42848 i++ 42849 goto __1160 42850 goto __1162 42851 __1162: 42852 ; 42853 goto __1128 42854 42855 __1131: 42856 i = Tuint32_t(1) 42857 __1176: 42858 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 42859 goto __1178 42860 } 42861 42862 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42863 goto __1179 42864 } 42865 42866 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42867 goto __1180 42868 } 42869 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42870 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42871 goto __1181 42872 } 42873 return -2 42874 __1181: 42875 ; 42876 __1180: 42877 ; 42878 42879 rrc = DMATCH_NOMATCH 42880 goto RETURN_SWITCH 42881 42882 __1179: 42883 ; 42884 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42885 if !(utf != 0 && fc >= 0xc0) { 42886 goto __1182 42887 } 42888 if !(fc&0x20 == Tuint32_t(0)) { 42889 goto __1183 42890 } 42891 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42892 goto __1184 42893 __1183: 42894 if !(fc&0x10 == Tuint32_t(0)) { 42895 goto __1185 42896 } 42897 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42898 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42899 goto __1186 42900 __1185: 42901 if !(fc&0x08 == Tuint32_t(0)) { 42902 goto __1187 42903 } 42904 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42905 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42906 goto __1188 42907 __1187: 42908 if !(fc&0x04 == Tuint32_t(0)) { 42909 goto __1189 42910 } 42911 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42912 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 42913 goto __1190 42914 __1189: 42915 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42916 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 42917 __1190: 42918 ; 42919 __1188: 42920 ; 42921 __1186: 42922 ; 42923 __1184: 42924 ; 42925 __1182: 42926 ; 42927 42928 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch1) { 42929 goto __1191 42930 } 42931 rrc = DMATCH_NOMATCH 42932 goto RETURN_SWITCH 42933 __1191: 42934 ; 42935 42936 goto __1177 42937 __1177: 42938 i++ 42939 goto __1176 42940 goto __1178 42941 __1178: 42942 ; 42943 goto __1128 42944 42945 __1132: 42946 i = Tuint32_t(1) 42947 __1192: 42948 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 42949 goto __1194 42950 } 42951 42952 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42953 goto __1195 42954 } 42955 42956 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42957 goto __1196 42958 } 42959 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42960 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42961 goto __1197 42962 } 42963 return -2 42964 __1197: 42965 ; 42966 __1196: 42967 ; 42968 42969 rrc = DMATCH_NOMATCH 42970 goto RETURN_SWITCH 42971 42972 __1195: 42973 ; 42974 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42975 if !(utf != 0 && fc >= 0xc0) { 42976 goto __1198 42977 } 42978 if !(fc&0x20 == Tuint32_t(0)) { 42979 goto __1199 42980 } 42981 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42982 goto __1200 42983 __1199: 42984 if !(fc&0x10 == Tuint32_t(0)) { 42985 goto __1201 42986 } 42987 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42988 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 42989 goto __1202 42990 __1201: 42991 if !(fc&0x08 == Tuint32_t(0)) { 42992 goto __1203 42993 } 42994 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42995 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 42996 goto __1204 42997 __1203: 42998 if !(fc&0x04 == Tuint32_t(0)) { 42999 goto __1205 43000 } 43001 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43002 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43003 goto __1206 43004 __1205: 43005 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43006 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43007 __1206: 43008 ; 43009 __1204: 43010 ; 43011 __1202: 43012 ; 43013 __1200: 43014 ; 43015 __1198: 43016 ; 43017 43018 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch1) { 43019 goto __1207 43020 } 43021 rrc = DMATCH_NOMATCH 43022 goto RETURN_SWITCH 43023 __1207: 43024 ; 43025 43026 goto __1193 43027 __1193: 43028 i++ 43029 goto __1192 43030 goto __1194 43031 __1194: 43032 ; 43033 goto __1128 43034 43035 __1133: 43036 i = Tuint32_t(1) 43037 __1208: 43038 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43039 goto __1210 43040 } 43041 43042 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43043 goto __1211 43044 } 43045 43046 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43047 goto __1212 43048 } 43049 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43050 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43051 goto __1213 43052 } 43053 return -2 43054 __1213: 43055 ; 43056 __1212: 43057 ; 43058 43059 rrc = DMATCH_NOMATCH 43060 goto RETURN_SWITCH 43061 43062 __1211: 43063 ; 43064 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43065 if !(utf != 0 && fc >= 0xc0) { 43066 goto __1214 43067 } 43068 if !(fc&0x20 == Tuint32_t(0)) { 43069 goto __1215 43070 } 43071 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43072 goto __1216 43073 __1215: 43074 if !(fc&0x10 == Tuint32_t(0)) { 43075 goto __1217 43076 } 43077 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43078 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43079 goto __1218 43080 __1217: 43081 if !(fc&0x08 == Tuint32_t(0)) { 43082 goto __1219 43083 } 43084 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43085 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43086 goto __1220 43087 __1219: 43088 if !(fc&0x04 == Tuint32_t(0)) { 43089 goto __1221 43090 } 43091 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43092 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43093 goto __1222 43094 __1221: 43095 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43096 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43097 __1222: 43098 ; 43099 __1220: 43100 ; 43101 __1218: 43102 ; 43103 __1216: 43104 ; 43105 __1214: 43106 ; 43107 43108 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch1) { 43109 goto __1223 43110 } 43111 rrc = DMATCH_NOMATCH 43112 goto RETURN_SWITCH 43113 __1223: 43114 ; 43115 43116 goto __1209 43117 __1209: 43118 i++ 43119 goto __1208 43120 goto __1210 43121 __1210: 43122 ; 43123 goto __1128 43124 43125 __1134: 43126 i = Tuint32_t(1) 43127 __1224: 43128 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43129 goto __1226 43130 } 43131 43132 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43133 goto __1227 43134 } 43135 43136 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43137 goto __1228 43138 } 43139 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43140 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43141 goto __1229 43142 } 43143 return -2 43144 __1229: 43145 ; 43146 __1228: 43147 ; 43148 43149 rrc = DMATCH_NOMATCH 43150 goto RETURN_SWITCH 43151 43152 __1227: 43153 ; 43154 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43155 if !(utf != 0 && fc >= 0xc0) { 43156 goto __1230 43157 } 43158 if !(fc&0x20 == Tuint32_t(0)) { 43159 goto __1231 43160 } 43161 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43162 goto __1232 43163 __1231: 43164 if !(fc&0x10 == Tuint32_t(0)) { 43165 goto __1233 43166 } 43167 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43168 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43169 goto __1234 43170 __1233: 43171 if !(fc&0x08 == Tuint32_t(0)) { 43172 goto __1235 43173 } 43174 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43175 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43176 goto __1236 43177 __1235: 43178 if !(fc&0x04 == Tuint32_t(0)) { 43179 goto __1237 43180 } 43181 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43182 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43183 goto __1238 43184 __1237: 43185 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43186 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43187 __1238: 43188 ; 43189 __1236: 43190 ; 43191 __1234: 43192 ; 43193 __1232: 43194 ; 43195 __1230: 43196 ; 43197 43198 prop1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 43199 ok2 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43200 if !(ok2 == notmatch1) { 43201 goto __1239 43202 } 43203 rrc = DMATCH_NOMATCH 43204 goto RETURN_SWITCH 43205 __1239: 43206 ; 43207 43208 goto __1225 43209 __1225: 43210 i++ 43211 goto __1224 43212 goto __1226 43213 __1226: 43214 ; 43215 goto __1128 43216 43217 __1135: 43218 i = Tuint32_t(1) 43219 __1240: 43220 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43221 goto __1242 43222 } 43223 43224 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43225 goto __1243 43226 } 43227 43228 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43229 goto __1244 43230 } 43231 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43232 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43233 goto __1245 43234 } 43235 return -2 43236 __1245: 43237 ; 43238 __1244: 43239 ; 43240 43241 rrc = DMATCH_NOMATCH 43242 goto RETURN_SWITCH 43243 43244 __1243: 43245 ; 43246 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43247 if !(utf != 0 && fc >= 0xc0) { 43248 goto __1246 43249 } 43250 if !(fc&0x20 == Tuint32_t(0)) { 43251 goto __1247 43252 } 43253 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43254 goto __1248 43255 __1247: 43256 if !(fc&0x10 == Tuint32_t(0)) { 43257 goto __1249 43258 } 43259 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43260 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43261 goto __1250 43262 __1249: 43263 if !(fc&0x08 == Tuint32_t(0)) { 43264 goto __1251 43265 } 43266 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43267 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43268 goto __1252 43269 __1251: 43270 if !(fc&0x04 == Tuint32_t(0)) { 43271 goto __1253 43272 } 43273 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43274 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43275 goto __1254 43276 __1253: 43277 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43278 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43279 __1254: 43280 ; 43281 __1252: 43282 ; 43283 __1250: 43284 ; 43285 __1248: 43286 ; 43287 __1246: 43288 ; 43289 43290 category = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 43291 if !(libc.Bool32(category == ucp_L || category == ucp_N) == notmatch1) { 43292 goto __1255 43293 } 43294 rrc = DMATCH_NOMATCH 43295 goto RETURN_SWITCH 43296 __1255: 43297 ; 43298 43299 goto __1241 43300 __1241: 43301 i++ 43302 goto __1240 43303 goto __1242 43304 __1242: 43305 ; 43306 goto __1128 43307 43308 // Perl space used to exclude VT, but from Perl 5.18 it is included, 43309 // which means that Perl space and POSIX space are now identical. PCRE 43310 // was changed at release 8.34. 43311 43312 __1136: // Perl space 43313 __1137: // POSIX space 43314 i = Tuint32_t(1) 43315 __1256: 43316 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43317 goto __1258 43318 } 43319 43320 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43321 goto __1259 43322 } 43323 43324 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43325 goto __1260 43326 } 43327 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43328 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43329 goto __1261 43330 } 43331 return -2 43332 __1261: 43333 ; 43334 __1260: 43335 ; 43336 43337 rrc = DMATCH_NOMATCH 43338 goto RETURN_SWITCH 43339 43340 __1259: 43341 ; 43342 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43343 if !(utf != 0 && fc >= 0xc0) { 43344 goto __1262 43345 } 43346 if !(fc&0x20 == Tuint32_t(0)) { 43347 goto __1263 43348 } 43349 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43350 goto __1264 43351 __1263: 43352 if !(fc&0x10 == Tuint32_t(0)) { 43353 goto __1265 43354 } 43355 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43356 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43357 goto __1266 43358 __1265: 43359 if !(fc&0x08 == Tuint32_t(0)) { 43360 goto __1267 43361 } 43362 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43363 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43364 goto __1268 43365 __1267: 43366 if !(fc&0x04 == Tuint32_t(0)) { 43367 goto __1269 43368 } 43369 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43370 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43371 goto __1270 43372 __1269: 43373 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43374 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43375 __1270: 43376 ; 43377 __1268: 43378 ; 43379 __1266: 43380 ; 43381 __1264: 43382 ; 43383 __1262: 43384 ; 43385 43386 switch fc { 43387 case Tuint32_t('\011'): 43388 goto __1272 43389 case Tuint32_t('\040'): 43390 goto __1273 43391 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 43392 goto __1274 43393 case Tuint32_t(0x1680): 43394 goto __1275 /* OGHAM SPACE MARK */ 43395 case Tuint32_t(0x180e): 43396 goto __1276 /* MONGOLIAN VOWEL SEPARATOR */ 43397 case Tuint32_t(0x2000): 43398 goto __1277 /* EN QUAD */ 43399 case Tuint32_t(0x2001): 43400 goto __1278 /* EM QUAD */ 43401 case Tuint32_t(0x2002): 43402 goto __1279 /* EN SPACE */ 43403 case Tuint32_t(0x2003): 43404 goto __1280 /* EM SPACE */ 43405 case Tuint32_t(0x2004): 43406 goto __1281 /* THREE-PER-EM SPACE */ 43407 case Tuint32_t(0x2005): 43408 goto __1282 /* FOUR-PER-EM SPACE */ 43409 case Tuint32_t(0x2006): 43410 goto __1283 /* SIX-PER-EM SPACE */ 43411 case Tuint32_t(0x2007): 43412 goto __1284 /* FIGURE SPACE */ 43413 case Tuint32_t(0x2008): 43414 goto __1285 /* PUNCTUATION SPACE */ 43415 case Tuint32_t(0x2009): 43416 goto __1286 /* THIN SPACE */ 43417 case Tuint32_t(0x200A): 43418 goto __1287 /* HAIR SPACE */ 43419 case Tuint32_t(0x202f): 43420 goto __1288 /* NARROW NO-BREAK SPACE */ 43421 case Tuint32_t(0x205f): 43422 goto __1289 /* MEDIUM MATHEMATICAL SPACE */ 43423 case Tuint32_t(0x3000): 43424 goto __1290 43425 case Tuint32_t('\012'): 43426 goto __1291 43427 case Tuint32_t('\013'): 43428 goto __1292 43429 case Tuint32_t('\014'): 43430 goto __1293 43431 case Tuint32_t('\015'): 43432 goto __1294 43433 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 43434 goto __1295 43435 case Tuint32_t(0x2028): 43436 goto __1296 /* LINE SEPARATOR */ 43437 case Tuint32_t(0x2029): 43438 goto __1297 43439 43440 default: 43441 goto __1298 43442 } 43443 goto __1271 43444 43445 __1272: 43446 __1273: 43447 __1274: 43448 __1275: /* OGHAM SPACE MARK */ 43449 __1276: /* MONGOLIAN VOWEL SEPARATOR */ 43450 __1277: /* EN QUAD */ 43451 __1278: /* EM QUAD */ 43452 __1279: /* EN SPACE */ 43453 __1280: /* EM SPACE */ 43454 __1281: /* THREE-PER-EM SPACE */ 43455 __1282: /* FOUR-PER-EM SPACE */ 43456 __1283: /* SIX-PER-EM SPACE */ 43457 __1284: /* FIGURE SPACE */ 43458 __1285: /* PUNCTUATION SPACE */ 43459 __1286: /* THIN SPACE */ 43460 __1287: /* HAIR SPACE */ 43461 __1288: /* NARROW NO-BREAK SPACE */ 43462 __1289: /* MEDIUM MATHEMATICAL SPACE */ 43463 __1290: 43464 __1291: 43465 __1292: 43466 __1293: 43467 __1294: 43468 __1295: 43469 __1296: /* LINE SEPARATOR */ 43470 __1297: 43471 if !(notmatch1 != 0) { 43472 goto __1299 43473 } 43474 rrc = DMATCH_NOMATCH 43475 goto RETURN_SWITCH 43476 __1299: 43477 ; 43478 43479 goto __1271 43480 43481 __1298: 43482 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == notmatch1) { 43483 goto __1300 43484 } 43485 rrc = DMATCH_NOMATCH 43486 goto RETURN_SWITCH 43487 __1300: 43488 ; 43489 43490 goto __1271 43491 __1271: 43492 ; 43493 goto __1257 43494 __1257: 43495 i++ 43496 goto __1256 43497 goto __1258 43498 __1258: 43499 ; 43500 goto __1128 43501 43502 __1138: 43503 i = Tuint32_t(1) 43504 __1301: 43505 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43506 goto __1303 43507 } 43508 43509 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43510 goto __1304 43511 } 43512 43513 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43514 goto __1305 43515 } 43516 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43517 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43518 goto __1306 43519 } 43520 return -2 43521 __1306: 43522 ; 43523 __1305: 43524 ; 43525 43526 rrc = DMATCH_NOMATCH 43527 goto RETURN_SWITCH 43528 43529 __1304: 43530 ; 43531 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43532 if !(utf != 0 && fc >= 0xc0) { 43533 goto __1307 43534 } 43535 if !(fc&0x20 == Tuint32_t(0)) { 43536 goto __1308 43537 } 43538 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43539 goto __1309 43540 __1308: 43541 if !(fc&0x10 == Tuint32_t(0)) { 43542 goto __1310 43543 } 43544 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43545 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43546 goto __1311 43547 __1310: 43548 if !(fc&0x08 == Tuint32_t(0)) { 43549 goto __1312 43550 } 43551 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43552 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43553 goto __1313 43554 __1312: 43555 if !(fc&0x04 == Tuint32_t(0)) { 43556 goto __1314 43557 } 43558 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43559 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43560 goto __1315 43561 __1314: 43562 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43563 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43564 __1315: 43565 ; 43566 __1313: 43567 ; 43568 __1311: 43569 ; 43570 __1309: 43571 ; 43572 __1307: 43573 ; 43574 43575 category1 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 43576 if !(libc.Bool32(category1 == ucp_L || category1 == ucp_N || fc == Tuint32_t('\137')) == notmatch1) { 43577 goto __1316 43578 } 43579 rrc = DMATCH_NOMATCH 43580 goto RETURN_SWITCH 43581 __1316: 43582 ; 43583 43584 goto __1302 43585 __1302: 43586 i++ 43587 goto __1301 43588 goto __1303 43589 __1303: 43590 ; 43591 goto __1128 43592 43593 __1139: 43594 i = Tuint32_t(1) 43595 __1317: 43596 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43597 goto __1319 43598 } 43599 43600 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43601 goto __1320 43602 } 43603 43604 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43605 goto __1321 43606 } 43607 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43608 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43609 goto __1322 43610 } 43611 return -2 43612 __1322: 43613 ; 43614 __1321: 43615 ; 43616 43617 rrc = DMATCH_NOMATCH 43618 goto RETURN_SWITCH 43619 43620 __1320: 43621 ; 43622 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43623 if !(utf != 0 && fc >= 0xc0) { 43624 goto __1323 43625 } 43626 if !(fc&0x20 == Tuint32_t(0)) { 43627 goto __1324 43628 } 43629 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43630 goto __1325 43631 __1324: 43632 if !(fc&0x10 == Tuint32_t(0)) { 43633 goto __1326 43634 } 43635 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43636 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43637 goto __1327 43638 __1326: 43639 if !(fc&0x08 == Tuint32_t(0)) { 43640 goto __1328 43641 } 43642 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43643 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43644 goto __1329 43645 __1328: 43646 if !(fc&0x04 == Tuint32_t(0)) { 43647 goto __1330 43648 } 43649 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43650 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43651 goto __1331 43652 __1330: 43653 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43654 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43655 __1331: 43656 ; 43657 __1329: 43658 ; 43659 __1327: 43660 ; 43661 __1325: 43662 ; 43663 __1323: 43664 ; 43665 43666 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)))*4 43667 __1332: 43668 43669 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 43670 goto __1335 43671 } 43672 43673 if !(notmatch1 != 0) { 43674 goto __1336 43675 } 43676 goto __1334 43677 __1336: 43678 ; 43679 rrc = DMATCH_NOMATCH 43680 goto RETURN_SWITCH 43681 43682 __1335: 43683 ; 43684 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 43685 goto __1337 43686 } 43687 43688 if !(notmatch1 != 0) { 43689 goto __1338 43690 } 43691 rrc = DMATCH_NOMATCH 43692 goto RETURN_SWITCH 43693 __1338: 43694 ; 43695 43696 goto __1334 43697 __1337: 43698 ; 43699 goto __1333 43700 __1333: 43701 goto __1332 43702 goto __1334 43703 __1334: 43704 ; 43705 goto __1318 43706 __1318: 43707 i++ 43708 goto __1317 43709 goto __1319 43710 __1319: 43711 ; 43712 goto __1128 43713 43714 __1140: 43715 i = Tuint32_t(1) 43716 __1339: 43717 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43718 goto __1341 43719 } 43720 43721 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43722 goto __1342 43723 } 43724 43725 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43726 goto __1343 43727 } 43728 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43729 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43730 goto __1344 43731 } 43732 return -2 43733 __1344: 43734 ; 43735 __1343: 43736 ; 43737 43738 rrc = DMATCH_NOMATCH 43739 goto RETURN_SWITCH 43740 43741 __1342: 43742 ; 43743 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43744 if !(utf != 0 && fc >= 0xc0) { 43745 goto __1345 43746 } 43747 if !(fc&0x20 == Tuint32_t(0)) { 43748 goto __1346 43749 } 43750 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43751 goto __1347 43752 __1346: 43753 if !(fc&0x10 == Tuint32_t(0)) { 43754 goto __1348 43755 } 43756 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43757 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43758 goto __1349 43759 __1348: 43760 if !(fc&0x08 == Tuint32_t(0)) { 43761 goto __1350 43762 } 43763 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43764 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43765 goto __1351 43766 __1350: 43767 if !(fc&0x04 == Tuint32_t(0)) { 43768 goto __1352 43769 } 43770 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43771 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43772 goto __1353 43773 __1352: 43774 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43775 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43776 __1353: 43777 ; 43778 __1351: 43779 ; 43780 __1349: 43781 ; 43782 __1347: 43783 ; 43784 __1345: 43785 ; 43786 43787 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch1) { 43788 goto __1354 43789 } 43790 rrc = DMATCH_NOMATCH 43791 goto RETURN_SWITCH 43792 __1354: 43793 ; 43794 43795 goto __1340 43796 __1340: 43797 i++ 43798 goto __1339 43799 goto __1341 43800 __1341: 43801 ; 43802 goto __1128 43803 43804 __1141: 43805 i = Tuint32_t(1) 43806 __1355: 43807 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43808 goto __1357 43809 } 43810 43811 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43812 goto __1358 43813 } 43814 43815 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43816 goto __1359 43817 } 43818 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43819 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43820 goto __1360 43821 } 43822 return -2 43823 __1360: 43824 ; 43825 __1359: 43826 ; 43827 43828 rrc = DMATCH_NOMATCH 43829 goto RETURN_SWITCH 43830 43831 __1358: 43832 ; 43833 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43834 if !(utf != 0 && fc >= 0xc0) { 43835 goto __1361 43836 } 43837 if !(fc&0x20 == Tuint32_t(0)) { 43838 goto __1362 43839 } 43840 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43841 goto __1363 43842 __1362: 43843 if !(fc&0x10 == Tuint32_t(0)) { 43844 goto __1364 43845 } 43846 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43847 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43848 goto __1365 43849 __1364: 43850 if !(fc&0x08 == Tuint32_t(0)) { 43851 goto __1366 43852 } 43853 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43854 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43855 goto __1367 43856 __1366: 43857 if !(fc&0x04 == Tuint32_t(0)) { 43858 goto __1368 43859 } 43860 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43861 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43862 goto __1369 43863 __1368: 43864 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43865 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43866 __1369: 43867 ; 43868 __1367: 43869 ; 43870 __1365: 43871 ; 43872 __1363: 43873 ; 43874 __1361: 43875 ; 43876 43877 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch1) { 43878 goto __1370 43879 } 43880 rrc = DMATCH_NOMATCH 43881 goto RETURN_SWITCH 43882 __1370: 43883 ; 43884 43885 goto __1356 43886 __1356: 43887 i++ 43888 goto __1355 43889 goto __1357 43890 __1357: 43891 ; 43892 goto __1128 43893 43894 __1142: 43895 i = Tuint32_t(1) 43896 __1371: 43897 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 43898 goto __1373 43899 } 43900 43901 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43902 goto __1374 43903 } 43904 43905 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43906 goto __1375 43907 } 43908 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43909 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43910 goto __1376 43911 } 43912 return -2 43913 __1376: 43914 ; 43915 __1375: 43916 ; 43917 43918 rrc = DMATCH_NOMATCH 43919 goto RETURN_SWITCH 43920 43921 __1374: 43922 ; 43923 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43924 if !(utf != 0 && fc >= 0xc0) { 43925 goto __1377 43926 } 43927 if !(fc&0x20 == Tuint32_t(0)) { 43928 goto __1378 43929 } 43930 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43931 goto __1379 43932 __1378: 43933 if !(fc&0x10 == Tuint32_t(0)) { 43934 goto __1380 43935 } 43936 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43937 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 43938 goto __1381 43939 __1380: 43940 if !(fc&0x08 == Tuint32_t(0)) { 43941 goto __1382 43942 } 43943 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43944 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 43945 goto __1383 43946 __1382: 43947 if !(fc&0x04 == Tuint32_t(0)) { 43948 goto __1384 43949 } 43950 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43951 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 43952 goto __1385 43953 __1384: 43954 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43955 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 43956 __1385: 43957 ; 43958 __1383: 43959 ; 43960 __1381: 43961 ; 43962 __1379: 43963 ; 43964 __1377: 43965 ; 43966 43967 prop2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 43968 ok3 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43969 if !(ok3 == notmatch1) { 43970 goto __1386 43971 } 43972 rrc = DMATCH_NOMATCH 43973 goto RETURN_SWITCH 43974 __1386: 43975 ; 43976 43977 goto __1372 43978 __1372: 43979 i++ 43980 goto __1371 43981 goto __1373 43982 __1373: 43983 ; 43984 goto __1128 43985 43986 // This should not occur 43987 43988 __1143: 43989 return -44 43990 __1128: 43991 ; 43992 goto __1127 43993 __1126: 43994 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_EXTUNI) { 43995 goto __1387 43996 } 43997 43998 i = Tuint32_t(1) 43999 __1389: 44000 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44001 goto __1391 44002 } 44003 44004 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44005 goto __1392 44006 } 44007 44008 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44009 goto __1394 44010 } 44011 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44012 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44013 goto __1395 44014 } 44015 return -2 44016 __1395: 44017 ; 44018 __1394: 44019 ; 44020 44021 rrc = DMATCH_NOMATCH 44022 goto RETURN_SWITCH 44023 44024 goto __1393 44025 __1392: 44026 44027 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44028 if !(utf != 0 && fc >= 0xc0) { 44029 goto __1396 44030 } 44031 if !(fc&0x20 == Tuint32_t(0)) { 44032 goto __1397 44033 } 44034 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44035 goto __1398 44036 __1397: 44037 if !(fc&0x10 == Tuint32_t(0)) { 44038 goto __1399 44039 } 44040 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44041 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44042 goto __1400 44043 __1399: 44044 if !(fc&0x08 == Tuint32_t(0)) { 44045 goto __1401 44046 } 44047 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44048 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44049 goto __1402 44050 __1401: 44051 if !(fc&0x04 == Tuint32_t(0)) { 44052 goto __1403 44053 } 44054 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44055 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44056 goto __1404 44057 __1403: 44058 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44059 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44060 __1404: 44061 ; 44062 __1402: 44063 ; 44064 __1400: 44065 ; 44066 __1398: 44067 ; 44068 __1396: 44069 ; 44070 44071 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, 44072 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, utf, uintptr(0)) 44073 __1393: 44074 ; 44075 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44076 goto __1405 44077 } 44078 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44079 goto __1406 44080 } 44081 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44082 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44083 goto __1407 44084 } 44085 return -2 44086 __1407: 44087 ; 44088 __1406: 44089 ; 44090 __1405: 44091 ; 44092 44093 goto __1390 44094 __1390: 44095 i++ 44096 goto __1389 44097 goto __1391 44098 __1391: 44099 ; 44100 goto __1388 44101 __1387: 44102 44103 // Handle all other cases in UTF mode 44104 44105 if !(utf != 0) { 44106 goto __1408 44107 } 44108 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 44109 case OP_ANY: 44110 goto __1411 44111 44112 case OP_ALLANY: 44113 goto __1412 44114 44115 case OP_ANYBYTE: 44116 goto __1413 44117 44118 case OP_ANYNL: 44119 goto __1414 44120 44121 case OP_NOT_HSPACE: 44122 goto __1415 44123 44124 case OP_HSPACE: 44125 goto __1416 44126 44127 case OP_NOT_VSPACE: 44128 goto __1417 44129 44130 case OP_VSPACE: 44131 goto __1418 44132 44133 case OP_NOT_DIGIT: 44134 goto __1419 44135 44136 case OP_DIGIT: 44137 goto __1420 44138 44139 case OP_NOT_WHITESPACE: 44140 goto __1421 44141 44142 case OP_WHITESPACE: 44143 goto __1422 44144 44145 case OP_NOT_WORDCHAR: 44146 goto __1423 44147 44148 case OP_WORDCHAR: 44149 goto __1424 44150 44151 default: 44152 goto __1425 44153 } 44154 goto __1410 44155 44156 __1411: 44157 i = Tuint32_t(1) 44158 __1426: 44159 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44160 goto __1428 44161 } 44162 44163 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44164 goto __1429 44165 } 44166 44167 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44168 goto __1430 44169 } 44170 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44171 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44172 goto __1431 44173 } 44174 return -2 44175 __1431: 44176 ; 44177 __1430: 44178 ; 44179 44180 rrc = DMATCH_NOMATCH 44181 goto RETURN_SWITCH 44182 44183 __1429: 44184 ; 44185 if !(func() int32 { 44186 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 44187 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 44188 } 44189 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 44190 }() != 0) { 44191 goto __1432 44192 } 44193 rrc = DMATCH_NOMATCH 44194 goto RETURN_SWITCH 44195 __1432: 44196 ; 44197 44198 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 44199 goto __1433 44200 } 44201 44202 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44203 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44204 goto __1434 44205 } 44206 return -2 44207 __1434: 44208 ; 44209 __1433: 44210 ; 44211 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44212 __1435: 44213 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 44214 goto __1436 44215 } 44216 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44217 goto __1435 44218 __1436: 44219 ; 44220 goto __1427 44221 __1427: 44222 i++ 44223 goto __1426 44224 goto __1428 44225 __1428: 44226 ; 44227 goto __1410 44228 44229 __1412: 44230 i = Tuint32_t(1) 44231 __1437: 44232 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44233 goto __1439 44234 } 44235 44236 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44237 goto __1440 44238 } 44239 44240 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44241 goto __1441 44242 } 44243 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44244 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44245 goto __1442 44246 } 44247 return -2 44248 __1442: 44249 ; 44250 __1441: 44251 ; 44252 44253 rrc = DMATCH_NOMATCH 44254 goto RETURN_SWITCH 44255 44256 __1440: 44257 ; 44258 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44259 __1443: 44260 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 44261 goto __1444 44262 } 44263 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44264 goto __1443 44265 __1444: 44266 ; 44267 goto __1438 44268 __1438: 44269 i++ 44270 goto __1437 44271 goto __1439 44272 __1439: 44273 ; 44274 goto __1410 44275 44276 __1413: 44277 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32)))) { 44278 goto __1445 44279 } 44280 rrc = DMATCH_NOMATCH 44281 goto RETURN_SWITCH 44282 __1445: 44283 ; 44284 44285 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 32))) 44286 goto __1410 44287 44288 __1414: 44289 i = Tuint32_t(1) 44290 __1446: 44291 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44292 goto __1448 44293 } 44294 44295 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44296 goto __1449 44297 } 44298 44299 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44300 goto __1450 44301 } 44302 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44303 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44304 goto __1451 44305 } 44306 return -2 44307 __1451: 44308 ; 44309 __1450: 44310 ; 44311 44312 rrc = DMATCH_NOMATCH 44313 goto RETURN_SWITCH 44314 44315 __1449: 44316 ; 44317 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44318 if !(fc >= 0xc0) { 44319 goto __1452 44320 } 44321 if !(fc&0x20 == Tuint32_t(0)) { 44322 goto __1453 44323 } 44324 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44325 goto __1454 44326 __1453: 44327 if !(fc&0x10 == Tuint32_t(0)) { 44328 goto __1455 44329 } 44330 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44331 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44332 goto __1456 44333 __1455: 44334 if !(fc&0x08 == Tuint32_t(0)) { 44335 goto __1457 44336 } 44337 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44338 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44339 goto __1458 44340 __1457: 44341 if !(fc&0x04 == Tuint32_t(0)) { 44342 goto __1459 44343 } 44344 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44345 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44346 goto __1460 44347 __1459: 44348 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44349 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44350 __1460: 44351 ; 44352 __1458: 44353 ; 44354 __1456: 44355 ; 44356 __1454: 44357 ; 44358 __1452: 44359 ; 44360 44361 switch fc { 44362 default: 44363 goto __1462 44364 44365 case Tuint32_t('\015'): 44366 goto __1463 44367 44368 case Tuint32_t('\012'): 44369 goto __1464 44370 44371 case Tuint32_t('\013'): 44372 goto __1465 44373 case Tuint32_t('\014'): 44374 goto __1466 44375 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44376 goto __1467 44377 case Tuint32_t(0x2028): 44378 goto __1468 44379 case Tuint32_t(0x2029): 44380 goto __1469 44381 } 44382 goto __1461 44383 44384 __1462: 44385 rrc = DMATCH_NOMATCH 44386 goto RETURN_SWITCH 44387 44388 __1463: 44389 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 44390 goto __1470 44391 } 44392 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44393 __1470: 44394 ; 44395 goto __1461 44396 44397 __1464: 44398 goto __1461 44399 44400 __1465: 44401 __1466: 44402 __1467: 44403 __1468: 44404 __1469: 44405 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 44406 goto __1471 44407 } 44408 rrc = DMATCH_NOMATCH 44409 goto RETURN_SWITCH 44410 __1471: 44411 ; 44412 44413 goto __1461 44414 __1461: 44415 ; 44416 goto __1447 44417 __1447: 44418 i++ 44419 goto __1446 44420 goto __1448 44421 __1448: 44422 ; 44423 goto __1410 44424 44425 __1415: 44426 i = Tuint32_t(1) 44427 __1472: 44428 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44429 goto __1474 44430 } 44431 44432 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44433 goto __1475 44434 } 44435 44436 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44437 goto __1476 44438 } 44439 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44440 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44441 goto __1477 44442 } 44443 return -2 44444 __1477: 44445 ; 44446 __1476: 44447 ; 44448 44449 rrc = DMATCH_NOMATCH 44450 goto RETURN_SWITCH 44451 44452 __1475: 44453 ; 44454 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44455 if !(fc >= 0xc0) { 44456 goto __1478 44457 } 44458 if !(fc&0x20 == Tuint32_t(0)) { 44459 goto __1479 44460 } 44461 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44462 goto __1480 44463 __1479: 44464 if !(fc&0x10 == Tuint32_t(0)) { 44465 goto __1481 44466 } 44467 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44468 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44469 goto __1482 44470 __1481: 44471 if !(fc&0x08 == Tuint32_t(0)) { 44472 goto __1483 44473 } 44474 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44475 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44476 goto __1484 44477 __1483: 44478 if !(fc&0x04 == Tuint32_t(0)) { 44479 goto __1485 44480 } 44481 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44482 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44483 goto __1486 44484 __1485: 44485 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44486 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44487 __1486: 44488 ; 44489 __1484: 44490 ; 44491 __1482: 44492 ; 44493 __1480: 44494 ; 44495 __1478: 44496 ; 44497 44498 switch fc { 44499 case Tuint32_t('\011'): 44500 goto __1488 44501 case Tuint32_t('\040'): 44502 goto __1489 44503 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 44504 goto __1490 44505 case Tuint32_t(0x1680): 44506 goto __1491 /* OGHAM SPACE MARK */ 44507 case Tuint32_t(0x180e): 44508 goto __1492 /* MONGOLIAN VOWEL SEPARATOR */ 44509 case Tuint32_t(0x2000): 44510 goto __1493 /* EN QUAD */ 44511 case Tuint32_t(0x2001): 44512 goto __1494 /* EM QUAD */ 44513 case Tuint32_t(0x2002): 44514 goto __1495 /* EN SPACE */ 44515 case Tuint32_t(0x2003): 44516 goto __1496 /* EM SPACE */ 44517 case Tuint32_t(0x2004): 44518 goto __1497 /* THREE-PER-EM SPACE */ 44519 case Tuint32_t(0x2005): 44520 goto __1498 /* FOUR-PER-EM SPACE */ 44521 case Tuint32_t(0x2006): 44522 goto __1499 /* SIX-PER-EM SPACE */ 44523 case Tuint32_t(0x2007): 44524 goto __1500 /* FIGURE SPACE */ 44525 case Tuint32_t(0x2008): 44526 goto __1501 /* PUNCTUATION SPACE */ 44527 case Tuint32_t(0x2009): 44528 goto __1502 /* THIN SPACE */ 44529 case Tuint32_t(0x200A): 44530 goto __1503 /* HAIR SPACE */ 44531 case Tuint32_t(0x202f): 44532 goto __1504 /* NARROW NO-BREAK SPACE */ 44533 case Tuint32_t(0x205f): 44534 goto __1505 /* MEDIUM MATHEMATICAL SPACE */ 44535 case Tuint32_t(0x3000): 44536 goto __1506 44537 default: 44538 goto __1507 44539 } 44540 goto __1487 44541 44542 __1488: 44543 __1489: 44544 __1490: 44545 __1491: /* OGHAM SPACE MARK */ 44546 __1492: /* MONGOLIAN VOWEL SEPARATOR */ 44547 __1493: /* EN QUAD */ 44548 __1494: /* EM QUAD */ 44549 __1495: /* EN SPACE */ 44550 __1496: /* EM SPACE */ 44551 __1497: /* THREE-PER-EM SPACE */ 44552 __1498: /* FOUR-PER-EM SPACE */ 44553 __1499: /* SIX-PER-EM SPACE */ 44554 __1500: /* FIGURE SPACE */ 44555 __1501: /* PUNCTUATION SPACE */ 44556 __1502: /* THIN SPACE */ 44557 __1503: /* HAIR SPACE */ 44558 __1504: /* NARROW NO-BREAK SPACE */ 44559 __1505: /* MEDIUM MATHEMATICAL SPACE */ 44560 __1506: 44561 rrc = DMATCH_NOMATCH 44562 goto RETURN_SWITCH 44563 44564 __1507: 44565 goto __1487 44566 __1487: 44567 ; 44568 goto __1473 44569 __1473: 44570 i++ 44571 goto __1472 44572 goto __1474 44573 __1474: 44574 ; 44575 goto __1410 44576 44577 __1416: 44578 i = Tuint32_t(1) 44579 __1508: 44580 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44581 goto __1510 44582 } 44583 44584 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44585 goto __1511 44586 } 44587 44588 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44589 goto __1512 44590 } 44591 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44592 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44593 goto __1513 44594 } 44595 return -2 44596 __1513: 44597 ; 44598 __1512: 44599 ; 44600 44601 rrc = DMATCH_NOMATCH 44602 goto RETURN_SWITCH 44603 44604 __1511: 44605 ; 44606 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44607 if !(fc >= 0xc0) { 44608 goto __1514 44609 } 44610 if !(fc&0x20 == Tuint32_t(0)) { 44611 goto __1515 44612 } 44613 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44614 goto __1516 44615 __1515: 44616 if !(fc&0x10 == Tuint32_t(0)) { 44617 goto __1517 44618 } 44619 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44620 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44621 goto __1518 44622 __1517: 44623 if !(fc&0x08 == Tuint32_t(0)) { 44624 goto __1519 44625 } 44626 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44627 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44628 goto __1520 44629 __1519: 44630 if !(fc&0x04 == Tuint32_t(0)) { 44631 goto __1521 44632 } 44633 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44634 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44635 goto __1522 44636 __1521: 44637 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44638 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44639 __1522: 44640 ; 44641 __1520: 44642 ; 44643 __1518: 44644 ; 44645 __1516: 44646 ; 44647 __1514: 44648 ; 44649 44650 switch fc { 44651 case Tuint32_t('\011'): 44652 goto __1524 44653 case Tuint32_t('\040'): 44654 goto __1525 44655 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 44656 goto __1526 44657 case Tuint32_t(0x1680): 44658 goto __1527 /* OGHAM SPACE MARK */ 44659 case Tuint32_t(0x180e): 44660 goto __1528 /* MONGOLIAN VOWEL SEPARATOR */ 44661 case Tuint32_t(0x2000): 44662 goto __1529 /* EN QUAD */ 44663 case Tuint32_t(0x2001): 44664 goto __1530 /* EM QUAD */ 44665 case Tuint32_t(0x2002): 44666 goto __1531 /* EN SPACE */ 44667 case Tuint32_t(0x2003): 44668 goto __1532 /* EM SPACE */ 44669 case Tuint32_t(0x2004): 44670 goto __1533 /* THREE-PER-EM SPACE */ 44671 case Tuint32_t(0x2005): 44672 goto __1534 /* FOUR-PER-EM SPACE */ 44673 case Tuint32_t(0x2006): 44674 goto __1535 /* SIX-PER-EM SPACE */ 44675 case Tuint32_t(0x2007): 44676 goto __1536 /* FIGURE SPACE */ 44677 case Tuint32_t(0x2008): 44678 goto __1537 /* PUNCTUATION SPACE */ 44679 case Tuint32_t(0x2009): 44680 goto __1538 /* THIN SPACE */ 44681 case Tuint32_t(0x200A): 44682 goto __1539 /* HAIR SPACE */ 44683 case Tuint32_t(0x202f): 44684 goto __1540 /* NARROW NO-BREAK SPACE */ 44685 case Tuint32_t(0x205f): 44686 goto __1541 /* MEDIUM MATHEMATICAL SPACE */ 44687 case Tuint32_t(0x3000): 44688 goto __1542 44689 default: 44690 goto __1543 44691 } 44692 goto __1523 44693 44694 __1524: 44695 __1525: 44696 __1526: 44697 __1527: /* OGHAM SPACE MARK */ 44698 __1528: /* MONGOLIAN VOWEL SEPARATOR */ 44699 __1529: /* EN QUAD */ 44700 __1530: /* EM QUAD */ 44701 __1531: /* EN SPACE */ 44702 __1532: /* EM SPACE */ 44703 __1533: /* THREE-PER-EM SPACE */ 44704 __1534: /* FOUR-PER-EM SPACE */ 44705 __1535: /* SIX-PER-EM SPACE */ 44706 __1536: /* FIGURE SPACE */ 44707 __1537: /* PUNCTUATION SPACE */ 44708 __1538: /* THIN SPACE */ 44709 __1539: /* HAIR SPACE */ 44710 __1540: /* NARROW NO-BREAK SPACE */ 44711 __1541: /* MEDIUM MATHEMATICAL SPACE */ 44712 __1542: 44713 goto __1523 44714 __1543: 44715 rrc = DMATCH_NOMATCH 44716 goto RETURN_SWITCH 44717 44718 __1523: 44719 ; 44720 goto __1509 44721 __1509: 44722 i++ 44723 goto __1508 44724 goto __1510 44725 __1510: 44726 ; 44727 goto __1410 44728 44729 __1417: 44730 i = Tuint32_t(1) 44731 __1544: 44732 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44733 goto __1546 44734 } 44735 44736 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44737 goto __1547 44738 } 44739 44740 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44741 goto __1548 44742 } 44743 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44744 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44745 goto __1549 44746 } 44747 return -2 44748 __1549: 44749 ; 44750 __1548: 44751 ; 44752 44753 rrc = DMATCH_NOMATCH 44754 goto RETURN_SWITCH 44755 44756 __1547: 44757 ; 44758 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44759 if !(fc >= 0xc0) { 44760 goto __1550 44761 } 44762 if !(fc&0x20 == Tuint32_t(0)) { 44763 goto __1551 44764 } 44765 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44766 goto __1552 44767 __1551: 44768 if !(fc&0x10 == Tuint32_t(0)) { 44769 goto __1553 44770 } 44771 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44772 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44773 goto __1554 44774 __1553: 44775 if !(fc&0x08 == Tuint32_t(0)) { 44776 goto __1555 44777 } 44778 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44779 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44780 goto __1556 44781 __1555: 44782 if !(fc&0x04 == Tuint32_t(0)) { 44783 goto __1557 44784 } 44785 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44786 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44787 goto __1558 44788 __1557: 44789 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44790 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44791 __1558: 44792 ; 44793 __1556: 44794 ; 44795 __1554: 44796 ; 44797 __1552: 44798 ; 44799 __1550: 44800 ; 44801 44802 switch fc { 44803 case Tuint32_t('\012'): 44804 goto __1560 44805 case Tuint32_t('\013'): 44806 goto __1561 44807 case Tuint32_t('\014'): 44808 goto __1562 44809 case Tuint32_t('\015'): 44810 goto __1563 44811 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44812 goto __1564 44813 case Tuint32_t(0x2028): 44814 goto __1565 /* LINE SEPARATOR */ 44815 case Tuint32_t(0x2029): 44816 goto __1566 44817 default: 44818 goto __1567 44819 } 44820 goto __1559 44821 44822 __1560: 44823 __1561: 44824 __1562: 44825 __1563: 44826 __1564: 44827 __1565: /* LINE SEPARATOR */ 44828 __1566: 44829 rrc = DMATCH_NOMATCH 44830 goto RETURN_SWITCH 44831 44832 __1567: 44833 goto __1559 44834 __1559: 44835 ; 44836 goto __1545 44837 __1545: 44838 i++ 44839 goto __1544 44840 goto __1546 44841 __1546: 44842 ; 44843 goto __1410 44844 44845 __1418: 44846 i = Tuint32_t(1) 44847 __1568: 44848 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44849 goto __1570 44850 } 44851 44852 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44853 goto __1571 44854 } 44855 44856 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44857 goto __1572 44858 } 44859 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44860 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44861 goto __1573 44862 } 44863 return -2 44864 __1573: 44865 ; 44866 __1572: 44867 ; 44868 44869 rrc = DMATCH_NOMATCH 44870 goto RETURN_SWITCH 44871 44872 __1571: 44873 ; 44874 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44875 if !(fc >= 0xc0) { 44876 goto __1574 44877 } 44878 if !(fc&0x20 == Tuint32_t(0)) { 44879 goto __1575 44880 } 44881 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44882 goto __1576 44883 __1575: 44884 if !(fc&0x10 == Tuint32_t(0)) { 44885 goto __1577 44886 } 44887 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44888 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 44889 goto __1578 44890 __1577: 44891 if !(fc&0x08 == Tuint32_t(0)) { 44892 goto __1579 44893 } 44894 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44895 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 44896 goto __1580 44897 __1579: 44898 if !(fc&0x04 == Tuint32_t(0)) { 44899 goto __1581 44900 } 44901 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44902 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 44903 goto __1582 44904 __1581: 44905 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44906 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 44907 __1582: 44908 ; 44909 __1580: 44910 ; 44911 __1578: 44912 ; 44913 __1576: 44914 ; 44915 __1574: 44916 ; 44917 44918 switch fc { 44919 case Tuint32_t('\012'): 44920 goto __1584 44921 case Tuint32_t('\013'): 44922 goto __1585 44923 case Tuint32_t('\014'): 44924 goto __1586 44925 case Tuint32_t('\015'): 44926 goto __1587 44927 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44928 goto __1588 44929 case Tuint32_t(0x2028): 44930 goto __1589 /* LINE SEPARATOR */ 44931 case Tuint32_t(0x2029): 44932 goto __1590 44933 default: 44934 goto __1591 44935 } 44936 goto __1583 44937 44938 __1584: 44939 __1585: 44940 __1586: 44941 __1587: 44942 __1588: 44943 __1589: /* LINE SEPARATOR */ 44944 __1590: 44945 goto __1583 44946 __1591: 44947 rrc = DMATCH_NOMATCH 44948 goto RETURN_SWITCH 44949 44950 __1583: 44951 ; 44952 goto __1569 44953 __1569: 44954 i++ 44955 goto __1568 44956 goto __1570 44957 __1570: 44958 ; 44959 goto __1410 44960 44961 __1419: 44962 i = Tuint32_t(1) 44963 __1592: 44964 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 44965 goto __1594 44966 } 44967 44968 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44969 goto __1595 44970 } 44971 44972 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44973 goto __1596 44974 } 44975 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44976 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44977 goto __1597 44978 } 44979 return -2 44980 __1597: 44981 ; 44982 __1596: 44983 ; 44984 44985 rrc = DMATCH_NOMATCH 44986 goto RETURN_SWITCH 44987 44988 __1595: 44989 ; 44990 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44991 if !(fc >= 0xc0) { 44992 goto __1598 44993 } 44994 if !(fc&0x20 == Tuint32_t(0)) { 44995 goto __1599 44996 } 44997 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44998 goto __1600 44999 __1599: 45000 if !(fc&0x10 == Tuint32_t(0)) { 45001 goto __1601 45002 } 45003 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 45004 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 45005 goto __1602 45006 __1601: 45007 if !(fc&0x08 == Tuint32_t(0)) { 45008 goto __1603 45009 } 45010 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 45011 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 45012 goto __1604 45013 __1603: 45014 if !(fc&0x04 == Tuint32_t(0)) { 45015 goto __1605 45016 } 45017 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 45018 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 45019 goto __1606 45020 __1605: 45021 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 45022 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 45023 __1606: 45024 ; 45025 __1604: 45026 ; 45027 __1602: 45028 ; 45029 __1600: 45030 ; 45031 __1598: 45032 ; 45033 45034 if !(fc < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 45035 goto __1607 45036 } 45037 rrc = DMATCH_NOMATCH 45038 goto RETURN_SWITCH 45039 __1607: 45040 ; 45041 45042 goto __1593 45043 __1593: 45044 i++ 45045 goto __1592 45046 goto __1594 45047 __1594: 45048 ; 45049 goto __1410 45050 45051 __1420: 45052 i = Tuint32_t(1) 45053 __1608: 45054 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45055 goto __1610 45056 } 45057 45058 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45059 goto __1611 45060 } 45061 45062 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45063 goto __1612 45064 } 45065 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45066 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45067 goto __1613 45068 } 45069 return -2 45070 __1613: 45071 ; 45072 __1612: 45073 ; 45074 45075 rrc = DMATCH_NOMATCH 45076 goto RETURN_SWITCH 45077 45078 __1611: 45079 ; 45080 cc5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45081 if !(cc5 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc5))))&Dctype_digit == 0) { 45082 goto __1614 45083 } 45084 rrc = DMATCH_NOMATCH 45085 goto RETURN_SWITCH 45086 __1614: 45087 ; 45088 45089 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45090 // No need to skip more code units - we know it has only one. 45091 goto __1609 45092 __1609: 45093 i++ 45094 goto __1608 45095 goto __1610 45096 __1610: 45097 ; 45098 goto __1410 45099 45100 __1421: 45101 i = Tuint32_t(1) 45102 __1615: 45103 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45104 goto __1617 45105 } 45106 45107 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45108 goto __1618 45109 } 45110 45111 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45112 goto __1619 45113 } 45114 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45115 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45116 goto __1620 45117 } 45118 return -2 45119 __1620: 45120 ; 45121 __1619: 45122 ; 45123 45124 rrc = DMATCH_NOMATCH 45125 goto RETURN_SWITCH 45126 45127 __1618: 45128 ; 45129 cc6 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45130 if !(cc6 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc6))))&Dctype_space != 0) { 45131 goto __1621 45132 } 45133 rrc = DMATCH_NOMATCH 45134 goto RETURN_SWITCH 45135 __1621: 45136 ; 45137 45138 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45139 __1622: 45140 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 45141 goto __1623 45142 } 45143 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45144 goto __1622 45145 __1623: 45146 ; 45147 goto __1616 45148 __1616: 45149 i++ 45150 goto __1615 45151 goto __1617 45152 __1617: 45153 ; 45154 goto __1410 45155 45156 __1422: 45157 i = Tuint32_t(1) 45158 __1624: 45159 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45160 goto __1626 45161 } 45162 45163 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45164 goto __1627 45165 } 45166 45167 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45168 goto __1628 45169 } 45170 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45171 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45172 goto __1629 45173 } 45174 return -2 45175 __1629: 45176 ; 45177 __1628: 45178 ; 45179 45180 rrc = DMATCH_NOMATCH 45181 goto RETURN_SWITCH 45182 45183 __1627: 45184 ; 45185 cc7 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45186 if !(cc7 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc7))))&Dctype_space == 0) { 45187 goto __1630 45188 } 45189 rrc = DMATCH_NOMATCH 45190 goto RETURN_SWITCH 45191 __1630: 45192 ; 45193 45194 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45195 // No need to skip more code units - we know it has only one. 45196 goto __1625 45197 __1625: 45198 i++ 45199 goto __1624 45200 goto __1626 45201 __1626: 45202 ; 45203 goto __1410 45204 45205 __1423: 45206 i = Tuint32_t(1) 45207 __1631: 45208 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45209 goto __1633 45210 } 45211 45212 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45213 goto __1634 45214 } 45215 45216 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45217 goto __1635 45218 } 45219 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45220 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45221 goto __1636 45222 } 45223 return -2 45224 __1636: 45225 ; 45226 __1635: 45227 ; 45228 45229 rrc = DMATCH_NOMATCH 45230 goto RETURN_SWITCH 45231 45232 __1634: 45233 ; 45234 cc8 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45235 if !(cc8 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc8))))&Dctype_word != 0) { 45236 goto __1637 45237 } 45238 rrc = DMATCH_NOMATCH 45239 goto RETURN_SWITCH 45240 __1637: 45241 ; 45242 45243 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45244 __1638: 45245 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 45246 goto __1639 45247 } 45248 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45249 goto __1638 45250 __1639: 45251 ; 45252 goto __1632 45253 __1632: 45254 i++ 45255 goto __1631 45256 goto __1633 45257 __1633: 45258 ; 45259 goto __1410 45260 45261 __1424: 45262 i = Tuint32_t(1) 45263 __1640: 45264 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45265 goto __1642 45266 } 45267 45268 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45269 goto __1643 45270 } 45271 45272 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45273 goto __1644 45274 } 45275 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45276 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45277 goto __1645 45278 } 45279 return -2 45280 __1645: 45281 ; 45282 __1644: 45283 ; 45284 45285 rrc = DMATCH_NOMATCH 45286 goto RETURN_SWITCH 45287 45288 __1643: 45289 ; 45290 cc9 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45291 if !(cc9 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc9))))&Dctype_word == 0) { 45292 goto __1646 45293 } 45294 rrc = DMATCH_NOMATCH 45295 goto RETURN_SWITCH 45296 __1646: 45297 ; 45298 45299 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45300 // No need to skip more code units - we know it has only one. 45301 goto __1641 45302 __1641: 45303 i++ 45304 goto __1640 45305 goto __1642 45306 __1642: 45307 ; 45308 goto __1410 45309 45310 __1425: 45311 return -44 45312 __1410: 45313 ; 45314 goto __1409 45315 __1408: 45316 45317 // Code for the non-UTF case for minimum matching of operators other 45318 // than OP_PROP and OP_NOTPROP. 45319 45320 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 45321 case OP_ANY: 45322 goto __1648 45323 45324 case OP_ALLANY: 45325 goto __1649 45326 45327 // This OP_ANYBYTE case will never be reached because \C gets turned 45328 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45329 // reports don't complain about it's never being used. 45330 45331 // case OP_ANYBYTE: 45332 // if (Feptr > mb->end_subject - Lmin) 45333 // { 45334 // SCHECK_PARTIAL(); 45335 // RRETURN(MATCH_NOMATCH); 45336 // } 45337 // Feptr += Lmin; 45338 // break; 45339 case OP_ANYNL: 45340 goto __1650 45341 45342 case OP_NOT_HSPACE: 45343 goto __1651 45344 45345 case OP_HSPACE: 45346 goto __1652 45347 45348 case OP_NOT_VSPACE: 45349 goto __1653 45350 45351 case OP_VSPACE: 45352 goto __1654 45353 45354 case OP_NOT_DIGIT: 45355 goto __1655 45356 45357 case OP_DIGIT: 45358 goto __1656 45359 45360 case OP_NOT_WHITESPACE: 45361 goto __1657 45362 45363 case OP_WHITESPACE: 45364 goto __1658 45365 45366 case OP_NOT_WORDCHAR: 45367 goto __1659 45368 45369 case OP_WORDCHAR: 45370 goto __1660 45371 45372 default: 45373 goto __1661 45374 } 45375 goto __1647 45376 45377 __1648: 45378 i = Tuint32_t(1) 45379 __1662: 45380 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45381 goto __1664 45382 } 45383 45384 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45385 goto __1665 45386 } 45387 45388 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45389 goto __1666 45390 } 45391 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45392 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45393 goto __1667 45394 } 45395 return -2 45396 __1667: 45397 ; 45398 __1666: 45399 ; 45400 45401 rrc = DMATCH_NOMATCH 45402 goto RETURN_SWITCH 45403 45404 __1665: 45405 ; 45406 if !(func() int32 { 45407 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 45408 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 45409 } 45410 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 45411 }() != 0) { 45412 goto __1668 45413 } 45414 rrc = DMATCH_NOMATCH 45415 goto RETURN_SWITCH 45416 __1668: 45417 ; 45418 45419 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 45420 goto __1669 45421 } 45422 45423 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45424 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45425 goto __1670 45426 } 45427 return -2 45428 __1670: 45429 ; 45430 __1669: 45431 ; 45432 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45433 goto __1663 45434 __1663: 45435 i++ 45436 goto __1662 45437 goto __1664 45438 __1664: 45439 ; 45440 goto __1647 45441 45442 __1649: 45443 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32)))) { 45444 goto __1671 45445 } 45446 45447 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45448 goto __1672 45449 } 45450 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45451 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45452 goto __1673 45453 } 45454 return -2 45455 __1673: 45456 ; 45457 __1672: 45458 ; 45459 45460 rrc = DMATCH_NOMATCH 45461 goto RETURN_SWITCH 45462 45463 __1671: 45464 ; 45465 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 32))) 45466 goto __1647 45467 45468 // This OP_ANYBYTE case will never be reached because \C gets turned 45469 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45470 // reports don't complain about it's never being used. 45471 45472 // case OP_ANYBYTE: 45473 // if (Feptr > mb->end_subject - Lmin) 45474 // { 45475 // SCHECK_PARTIAL(); 45476 // RRETURN(MATCH_NOMATCH); 45477 // } 45478 // Feptr += Lmin; 45479 // break; 45480 __1650: 45481 i = Tuint32_t(1) 45482 __1674: 45483 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45484 goto __1676 45485 } 45486 45487 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45488 goto __1677 45489 } 45490 45491 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45492 goto __1678 45493 } 45494 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45495 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45496 goto __1679 45497 } 45498 return -2 45499 __1679: 45500 ; 45501 __1678: 45502 ; 45503 45504 rrc = DMATCH_NOMATCH 45505 goto RETURN_SWITCH 45506 45507 __1677: 45508 ; 45509 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45510 default: 45511 goto __1681 45512 45513 case '\015': 45514 goto __1682 45515 45516 case '\012': 45517 goto __1683 45518 45519 case '\013': 45520 goto __1684 45521 case '\014': 45522 goto __1685 45523 case int32(libc.Uint8FromInt32(133)): 45524 goto __1686 45525 } 45526 goto __1680 45527 45528 __1681: 45529 rrc = DMATCH_NOMATCH 45530 goto RETURN_SWITCH 45531 45532 __1682: 45533 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 45534 goto __1687 45535 } 45536 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45537 __1687: 45538 ; 45539 goto __1680 45540 45541 __1683: 45542 goto __1680 45543 45544 __1684: 45545 __1685: 45546 __1686: 45547 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 45548 goto __1688 45549 } 45550 rrc = DMATCH_NOMATCH 45551 goto RETURN_SWITCH 45552 __1688: 45553 ; 45554 45555 goto __1680 45556 __1680: 45557 ; 45558 goto __1675 45559 __1675: 45560 i++ 45561 goto __1674 45562 goto __1676 45563 __1676: 45564 ; 45565 goto __1647 45566 45567 __1651: 45568 i = Tuint32_t(1) 45569 __1689: 45570 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45571 goto __1691 45572 } 45573 45574 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45575 goto __1692 45576 } 45577 45578 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45579 goto __1693 45580 } 45581 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45582 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45583 goto __1694 45584 } 45585 return -2 45586 __1694: 45587 ; 45588 __1693: 45589 ; 45590 45591 rrc = DMATCH_NOMATCH 45592 goto RETURN_SWITCH 45593 45594 __1692: 45595 ; 45596 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45597 default: 45598 goto __1696 45599 case '\011': 45600 goto __1697 45601 case '\040': 45602 goto __1698 45603 case int32(libc.Uint8FromInt32(160)): 45604 goto __1699 45605 } 45606 goto __1695 45607 45608 __1696: 45609 goto __1695 45610 __1697: 45611 __1698: 45612 __1699: 45613 rrc = DMATCH_NOMATCH 45614 goto RETURN_SWITCH 45615 45616 __1695: 45617 ; 45618 goto __1690 45619 __1690: 45620 i++ 45621 goto __1689 45622 goto __1691 45623 __1691: 45624 ; 45625 goto __1647 45626 45627 __1652: 45628 i = Tuint32_t(1) 45629 __1700: 45630 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45631 goto __1702 45632 } 45633 45634 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45635 goto __1703 45636 } 45637 45638 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45639 goto __1704 45640 } 45641 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45642 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45643 goto __1705 45644 } 45645 return -2 45646 __1705: 45647 ; 45648 __1704: 45649 ; 45650 45651 rrc = DMATCH_NOMATCH 45652 goto RETURN_SWITCH 45653 45654 __1703: 45655 ; 45656 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45657 default: 45658 goto __1707 45659 case '\011': 45660 goto __1708 45661 case '\040': 45662 goto __1709 45663 case int32(libc.Uint8FromInt32(160)): 45664 goto __1710 45665 } 45666 goto __1706 45667 45668 __1707: 45669 rrc = DMATCH_NOMATCH 45670 goto RETURN_SWITCH 45671 45672 __1708: 45673 __1709: 45674 __1710: 45675 goto __1706 45676 __1706: 45677 ; 45678 goto __1701 45679 __1701: 45680 i++ 45681 goto __1700 45682 goto __1702 45683 __1702: 45684 ; 45685 goto __1647 45686 45687 __1653: 45688 i = Tuint32_t(1) 45689 __1711: 45690 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45691 goto __1713 45692 } 45693 45694 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45695 goto __1714 45696 } 45697 45698 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45699 goto __1715 45700 } 45701 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45702 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45703 goto __1716 45704 } 45705 return -2 45706 __1716: 45707 ; 45708 __1715: 45709 ; 45710 45711 rrc = DMATCH_NOMATCH 45712 goto RETURN_SWITCH 45713 45714 __1714: 45715 ; 45716 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45717 case '\012': 45718 goto __1718 45719 case '\013': 45720 goto __1719 45721 case '\014': 45722 goto __1720 45723 case '\015': 45724 goto __1721 45725 case int32(libc.Uint8FromInt32(133)): 45726 goto __1722 45727 default: 45728 goto __1723 45729 } 45730 goto __1717 45731 45732 __1718: 45733 __1719: 45734 __1720: 45735 __1721: 45736 __1722: 45737 rrc = DMATCH_NOMATCH 45738 goto RETURN_SWITCH 45739 45740 __1723: 45741 goto __1717 45742 __1717: 45743 ; 45744 goto __1712 45745 __1712: 45746 i++ 45747 goto __1711 45748 goto __1713 45749 __1713: 45750 ; 45751 goto __1647 45752 45753 __1654: 45754 i = Tuint32_t(1) 45755 __1724: 45756 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45757 goto __1726 45758 } 45759 45760 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45761 goto __1727 45762 } 45763 45764 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45765 goto __1728 45766 } 45767 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45768 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45769 goto __1729 45770 } 45771 return -2 45772 __1729: 45773 ; 45774 __1728: 45775 ; 45776 45777 rrc = DMATCH_NOMATCH 45778 goto RETURN_SWITCH 45779 45780 __1727: 45781 ; 45782 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45783 default: 45784 goto __1731 45785 case '\012': 45786 goto __1732 45787 case '\013': 45788 goto __1733 45789 case '\014': 45790 goto __1734 45791 case '\015': 45792 goto __1735 45793 case int32(libc.Uint8FromInt32(133)): 45794 goto __1736 45795 } 45796 goto __1730 45797 45798 __1731: 45799 rrc = DMATCH_NOMATCH 45800 goto RETURN_SWITCH 45801 45802 __1732: 45803 __1733: 45804 __1734: 45805 __1735: 45806 __1736: 45807 goto __1730 45808 __1730: 45809 ; 45810 goto __1725 45811 __1725: 45812 i++ 45813 goto __1724 45814 goto __1726 45815 __1726: 45816 ; 45817 goto __1647 45818 45819 __1655: 45820 i = Tuint32_t(1) 45821 __1737: 45822 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45823 goto __1739 45824 } 45825 45826 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45827 goto __1740 45828 } 45829 45830 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45831 goto __1741 45832 } 45833 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45834 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45835 goto __1742 45836 } 45837 return -2 45838 __1742: 45839 ; 45840 __1741: 45841 ; 45842 45843 rrc = DMATCH_NOMATCH 45844 goto RETURN_SWITCH 45845 45846 __1740: 45847 ; 45848 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit != 0) { 45849 goto __1743 45850 } 45851 rrc = DMATCH_NOMATCH 45852 goto RETURN_SWITCH 45853 __1743: 45854 ; 45855 45856 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45857 goto __1738 45858 __1738: 45859 i++ 45860 goto __1737 45861 goto __1739 45862 __1739: 45863 ; 45864 goto __1647 45865 45866 __1656: 45867 i = Tuint32_t(1) 45868 __1744: 45869 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45870 goto __1746 45871 } 45872 45873 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45874 goto __1747 45875 } 45876 45877 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45878 goto __1748 45879 } 45880 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45881 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45882 goto __1749 45883 } 45884 return -2 45885 __1749: 45886 ; 45887 __1748: 45888 ; 45889 45890 rrc = DMATCH_NOMATCH 45891 goto RETURN_SWITCH 45892 45893 __1747: 45894 ; 45895 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit == 0) { 45896 goto __1750 45897 } 45898 rrc = DMATCH_NOMATCH 45899 goto RETURN_SWITCH 45900 __1750: 45901 ; 45902 45903 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45904 goto __1745 45905 __1745: 45906 i++ 45907 goto __1744 45908 goto __1746 45909 __1746: 45910 ; 45911 goto __1647 45912 45913 __1657: 45914 i = Tuint32_t(1) 45915 __1751: 45916 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45917 goto __1753 45918 } 45919 45920 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45921 goto __1754 45922 } 45923 45924 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45925 goto __1755 45926 } 45927 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45928 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45929 goto __1756 45930 } 45931 return -2 45932 __1756: 45933 ; 45934 __1755: 45935 ; 45936 45937 rrc = DMATCH_NOMATCH 45938 goto RETURN_SWITCH 45939 45940 __1754: 45941 ; 45942 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space != 0) { 45943 goto __1757 45944 } 45945 rrc = DMATCH_NOMATCH 45946 goto RETURN_SWITCH 45947 __1757: 45948 ; 45949 45950 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45951 goto __1752 45952 __1752: 45953 i++ 45954 goto __1751 45955 goto __1753 45956 __1753: 45957 ; 45958 goto __1647 45959 45960 __1658: 45961 i = Tuint32_t(1) 45962 __1758: 45963 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 45964 goto __1760 45965 } 45966 45967 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45968 goto __1761 45969 } 45970 45971 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45972 goto __1762 45973 } 45974 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45975 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45976 goto __1763 45977 } 45978 return -2 45979 __1763: 45980 ; 45981 __1762: 45982 ; 45983 45984 rrc = DMATCH_NOMATCH 45985 goto RETURN_SWITCH 45986 45987 __1761: 45988 ; 45989 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space == 0) { 45990 goto __1764 45991 } 45992 rrc = DMATCH_NOMATCH 45993 goto RETURN_SWITCH 45994 __1764: 45995 ; 45996 45997 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45998 goto __1759 45999 __1759: 46000 i++ 46001 goto __1758 46002 goto __1760 46003 __1760: 46004 ; 46005 goto __1647 46006 46007 __1659: 46008 i = Tuint32_t(1) 46009 __1765: 46010 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 46011 goto __1767 46012 } 46013 46014 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46015 goto __1768 46016 } 46017 46018 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46019 goto __1769 46020 } 46021 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46022 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46023 goto __1770 46024 } 46025 return -2 46026 __1770: 46027 ; 46028 __1769: 46029 ; 46030 46031 rrc = DMATCH_NOMATCH 46032 goto RETURN_SWITCH 46033 46034 __1768: 46035 ; 46036 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word != 0) { 46037 goto __1771 46038 } 46039 rrc = DMATCH_NOMATCH 46040 goto RETURN_SWITCH 46041 __1771: 46042 ; 46043 46044 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46045 goto __1766 46046 __1766: 46047 i++ 46048 goto __1765 46049 goto __1767 46050 __1767: 46051 ; 46052 goto __1647 46053 46054 __1660: 46055 i = Tuint32_t(1) 46056 __1772: 46057 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 46058 goto __1774 46059 } 46060 46061 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46062 goto __1775 46063 } 46064 46065 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46066 goto __1776 46067 } 46068 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46069 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46070 goto __1777 46071 } 46072 return -2 46073 __1777: 46074 ; 46075 __1776: 46076 ; 46077 46078 rrc = DMATCH_NOMATCH 46079 goto RETURN_SWITCH 46080 46081 __1775: 46082 ; 46083 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word == 0) { 46084 goto __1778 46085 } 46086 rrc = DMATCH_NOMATCH 46087 goto RETURN_SWITCH 46088 __1778: 46089 ; 46090 46091 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46092 goto __1773 46093 __1773: 46094 i++ 46095 goto __1772 46096 goto __1774 46097 __1774: 46098 ; 46099 goto __1647 46100 46101 __1661: 46102 return -44 46103 __1647: 46104 ; 46105 __1409: 46106 ; 46107 __1388: 46108 ; 46109 __1127: 46110 ; 46111 __1125: 46112 ; 46113 46114 // If Lmin = Lmax we are done. Continue with the main loop. 46115 46116 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46117 goto __1779 46118 } 46119 goto __11 46120 __1779: 46121 ; 46122 46123 // If minimizing, we have to test the rest of the pattern before each 46124 // subsequent match. This means we cannot use a local "notmatch" variable as 46125 // in the other cases. As all 4 temporary 32-bit values in the frame are 46126 // already in use, just test the type each time. 46127 46128 if !(reptype == REPTYPE_MIN) { 46129 goto __1780 46130 } 46131 46132 if !(proptype >= 0) { 46133 goto __1782 46134 } 46135 46136 switch proptype { 46137 case DPT_ANY: 46138 goto __1785 46139 // Control never gets here 46140 46141 case DPT_LAMP: 46142 goto __1786 46143 // Control never gets here 46144 46145 case DPT_GC: 46146 goto __1787 46147 // Control never gets here 46148 46149 case DPT_PC: 46150 goto __1788 46151 // Control never gets here 46152 46153 case DPT_SC: 46154 goto __1789 46155 // Control never gets here 46156 46157 case DPT_SCX: 46158 goto __1790 46159 // Control never gets here 46160 46161 case DPT_ALNUM: 46162 goto __1791 46163 // Control never gets here 46164 46165 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46166 // which means that Perl space and POSIX space are now identical. PCRE 46167 // was changed at release 8.34. 46168 46169 case DPT_SPACE: 46170 goto __1792 // Perl space 46171 case DPT_PXSPACE: 46172 goto __1793 46173 // Control never gets here 46174 46175 case DPT_WORD: 46176 goto __1794 46177 // Control never gets here 46178 46179 case DPT_CLIST: 46180 goto __1795 46181 // Control never gets here 46182 46183 case DPT_UCNC: 46184 goto __1796 46185 // Control never gets here 46186 46187 case DPT_BIDICL: 46188 goto __1797 46189 // Control never gets here 46190 46191 case DPT_BOOL: 46192 goto __1798 46193 // Control never gets here 46194 46195 // This should never occur 46196 default: 46197 goto __1799 46198 } 46199 goto __1784 46200 46201 __1785: 46202 __1800: 46203 46204 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46205 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM208 46206 goto MATCH_RECURSE 46207 L_RM208: 46208 ; 46209 46210 if !(rrc != DMATCH_NOMATCH) { 46211 goto __1803 46212 } 46213 rrc = rrc 46214 goto RETURN_SWITCH 46215 __1803: 46216 ; 46217 46218 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46219 goto __1804 46220 } 46221 rrc = DMATCH_NOMATCH 46222 goto RETURN_SWITCH 46223 __1804: 46224 ; 46225 46226 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46227 goto __1805 46228 } 46229 46230 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46231 goto __1806 46232 } 46233 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46234 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46235 goto __1807 46236 } 46237 return -2 46238 __1807: 46239 ; 46240 __1806: 46241 ; 46242 46243 rrc = DMATCH_NOMATCH 46244 goto RETURN_SWITCH 46245 46246 __1805: 46247 ; 46248 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46249 if !(utf != 0 && fc >= 0xc0) { 46250 goto __1808 46251 } 46252 if !(fc&0x20 == Tuint32_t(0)) { 46253 goto __1809 46254 } 46255 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46256 goto __1810 46257 __1809: 46258 if !(fc&0x10 == Tuint32_t(0)) { 46259 goto __1811 46260 } 46261 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46262 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46263 goto __1812 46264 __1811: 46265 if !(fc&0x08 == Tuint32_t(0)) { 46266 goto __1813 46267 } 46268 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46269 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46270 goto __1814 46271 __1813: 46272 if !(fc&0x04 == Tuint32_t(0)) { 46273 goto __1815 46274 } 46275 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46276 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46277 goto __1816 46278 __1815: 46279 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46280 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46281 __1816: 46282 ; 46283 __1814: 46284 ; 46285 __1812: 46286 ; 46287 __1810: 46288 ; 46289 __1808: 46290 ; 46291 46292 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) { 46293 goto __1817 46294 } 46295 rrc = DMATCH_NOMATCH 46296 goto RETURN_SWITCH 46297 __1817: 46298 ; 46299 46300 goto __1801 46301 __1801: 46302 goto __1800 46303 goto __1802 46304 __1802: 46305 ; 46306 // Control never gets here 46307 46308 __1786: 46309 __1818: 46310 46311 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46312 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM209 46313 goto MATCH_RECURSE 46314 L_RM209: 46315 ; 46316 46317 if !(rrc != DMATCH_NOMATCH) { 46318 goto __1821 46319 } 46320 rrc = rrc 46321 goto RETURN_SWITCH 46322 __1821: 46323 ; 46324 46325 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46326 goto __1822 46327 } 46328 rrc = DMATCH_NOMATCH 46329 goto RETURN_SWITCH 46330 __1822: 46331 ; 46332 46333 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46334 goto __1823 46335 } 46336 46337 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46338 goto __1824 46339 } 46340 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46341 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46342 goto __1825 46343 } 46344 return -2 46345 __1825: 46346 ; 46347 __1824: 46348 ; 46349 46350 rrc = DMATCH_NOMATCH 46351 goto RETURN_SWITCH 46352 46353 __1823: 46354 ; 46355 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46356 if !(utf != 0 && fc >= 0xc0) { 46357 goto __1826 46358 } 46359 if !(fc&0x20 == Tuint32_t(0)) { 46360 goto __1827 46361 } 46362 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46363 goto __1828 46364 __1827: 46365 if !(fc&0x10 == Tuint32_t(0)) { 46366 goto __1829 46367 } 46368 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46369 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46370 goto __1830 46371 __1829: 46372 if !(fc&0x08 == Tuint32_t(0)) { 46373 goto __1831 46374 } 46375 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46376 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46377 goto __1832 46378 __1831: 46379 if !(fc&0x04 == Tuint32_t(0)) { 46380 goto __1833 46381 } 46382 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46383 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46384 goto __1834 46385 __1833: 46386 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46387 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46388 __1834: 46389 ; 46390 __1832: 46391 ; 46392 __1830: 46393 ; 46394 __1828: 46395 ; 46396 __1826: 46397 ; 46398 46399 chartype1 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 46400 if !(libc.Bool32(chartype1 == ucp_Lu || chartype1 == ucp_Ll || chartype1 == ucp_Lt) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46401 goto __1835 46402 } 46403 rrc = DMATCH_NOMATCH 46404 goto RETURN_SWITCH 46405 __1835: 46406 ; 46407 46408 goto __1819 46409 __1819: 46410 goto __1818 46411 goto __1820 46412 __1820: 46413 ; 46414 // Control never gets here 46415 46416 __1787: 46417 __1836: 46418 46419 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46420 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM210 46421 goto MATCH_RECURSE 46422 L_RM210: 46423 ; 46424 46425 if !(rrc != DMATCH_NOMATCH) { 46426 goto __1839 46427 } 46428 rrc = rrc 46429 goto RETURN_SWITCH 46430 __1839: 46431 ; 46432 46433 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46434 goto __1840 46435 } 46436 rrc = DMATCH_NOMATCH 46437 goto RETURN_SWITCH 46438 __1840: 46439 ; 46440 46441 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46442 goto __1841 46443 } 46444 46445 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46446 goto __1842 46447 } 46448 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46449 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46450 goto __1843 46451 } 46452 return -2 46453 __1843: 46454 ; 46455 __1842: 46456 ; 46457 46458 rrc = DMATCH_NOMATCH 46459 goto RETURN_SWITCH 46460 46461 __1841: 46462 ; 46463 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46464 if !(utf != 0 && fc >= 0xc0) { 46465 goto __1844 46466 } 46467 if !(fc&0x20 == Tuint32_t(0)) { 46468 goto __1845 46469 } 46470 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46471 goto __1846 46472 __1845: 46473 if !(fc&0x10 == Tuint32_t(0)) { 46474 goto __1847 46475 } 46476 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46477 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46478 goto __1848 46479 __1847: 46480 if !(fc&0x08 == Tuint32_t(0)) { 46481 goto __1849 46482 } 46483 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46484 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46485 goto __1850 46486 __1849: 46487 if !(fc&0x04 == Tuint32_t(0)) { 46488 goto __1851 46489 } 46490 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46492 goto __1852 46493 __1851: 46494 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46495 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46496 __1852: 46497 ; 46498 __1850: 46499 ; 46500 __1848: 46501 ; 46502 __1846: 46503 ; 46504 __1844: 46505 ; 46506 46507 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46508 goto __1853 46509 } 46510 rrc = DMATCH_NOMATCH 46511 goto RETURN_SWITCH 46512 __1853: 46513 ; 46514 46515 goto __1837 46516 __1837: 46517 goto __1836 46518 goto __1838 46519 __1838: 46520 ; 46521 // Control never gets here 46522 46523 __1788: 46524 __1854: 46525 46526 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46527 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM211 46528 goto MATCH_RECURSE 46529 L_RM211: 46530 ; 46531 46532 if !(rrc != DMATCH_NOMATCH) { 46533 goto __1857 46534 } 46535 rrc = rrc 46536 goto RETURN_SWITCH 46537 __1857: 46538 ; 46539 46540 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46541 goto __1858 46542 } 46543 rrc = DMATCH_NOMATCH 46544 goto RETURN_SWITCH 46545 __1858: 46546 ; 46547 46548 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46549 goto __1859 46550 } 46551 46552 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46553 goto __1860 46554 } 46555 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46556 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46557 goto __1861 46558 } 46559 return -2 46560 __1861: 46561 ; 46562 __1860: 46563 ; 46564 46565 rrc = DMATCH_NOMATCH 46566 goto RETURN_SWITCH 46567 46568 __1859: 46569 ; 46570 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46571 if !(utf != 0 && fc >= 0xc0) { 46572 goto __1862 46573 } 46574 if !(fc&0x20 == Tuint32_t(0)) { 46575 goto __1863 46576 } 46577 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46578 goto __1864 46579 __1863: 46580 if !(fc&0x10 == Tuint32_t(0)) { 46581 goto __1865 46582 } 46583 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46584 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46585 goto __1866 46586 __1865: 46587 if !(fc&0x08 == Tuint32_t(0)) { 46588 goto __1867 46589 } 46590 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46591 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46592 goto __1868 46593 __1867: 46594 if !(fc&0x04 == Tuint32_t(0)) { 46595 goto __1869 46596 } 46597 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46598 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46599 goto __1870 46600 __1869: 46601 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46602 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46603 __1870: 46604 ; 46605 __1868: 46606 ; 46607 __1866: 46608 ; 46609 __1864: 46610 ; 46611 __1862: 46612 ; 46613 46614 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46615 goto __1871 46616 } 46617 rrc = DMATCH_NOMATCH 46618 goto RETURN_SWITCH 46619 __1871: 46620 ; 46621 46622 goto __1855 46623 __1855: 46624 goto __1854 46625 goto __1856 46626 __1856: 46627 ; 46628 // Control never gets here 46629 46630 __1789: 46631 __1872: 46632 46633 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46634 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM212 46635 goto MATCH_RECURSE 46636 L_RM212: 46637 ; 46638 46639 if !(rrc != DMATCH_NOMATCH) { 46640 goto __1875 46641 } 46642 rrc = rrc 46643 goto RETURN_SWITCH 46644 __1875: 46645 ; 46646 46647 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46648 goto __1876 46649 } 46650 rrc = DMATCH_NOMATCH 46651 goto RETURN_SWITCH 46652 __1876: 46653 ; 46654 46655 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46656 goto __1877 46657 } 46658 46659 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46660 goto __1878 46661 } 46662 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46663 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46664 goto __1879 46665 } 46666 return -2 46667 __1879: 46668 ; 46669 __1878: 46670 ; 46671 46672 rrc = DMATCH_NOMATCH 46673 goto RETURN_SWITCH 46674 46675 __1877: 46676 ; 46677 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46678 if !(utf != 0 && fc >= 0xc0) { 46679 goto __1880 46680 } 46681 if !(fc&0x20 == Tuint32_t(0)) { 46682 goto __1881 46683 } 46684 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46685 goto __1882 46686 __1881: 46687 if !(fc&0x10 == Tuint32_t(0)) { 46688 goto __1883 46689 } 46690 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46691 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46692 goto __1884 46693 __1883: 46694 if !(fc&0x08 == Tuint32_t(0)) { 46695 goto __1885 46696 } 46697 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46698 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46699 goto __1886 46700 __1885: 46701 if !(fc&0x04 == Tuint32_t(0)) { 46702 goto __1887 46703 } 46704 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46705 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46706 goto __1888 46707 __1887: 46708 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46709 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46710 __1888: 46711 ; 46712 __1886: 46713 ; 46714 __1884: 46715 ; 46716 __1882: 46717 ; 46718 __1880: 46719 ; 46720 46721 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46722 goto __1889 46723 } 46724 rrc = DMATCH_NOMATCH 46725 goto RETURN_SWITCH 46726 __1889: 46727 ; 46728 46729 goto __1873 46730 __1873: 46731 goto __1872 46732 goto __1874 46733 __1874: 46734 ; 46735 // Control never gets here 46736 46737 __1790: 46738 __1890: 46739 46740 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46741 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM225 46742 goto MATCH_RECURSE 46743 L_RM225: 46744 ; 46745 46746 if !(rrc != DMATCH_NOMATCH) { 46747 goto __1893 46748 } 46749 rrc = rrc 46750 goto RETURN_SWITCH 46751 __1893: 46752 ; 46753 46754 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46755 goto __1894 46756 } 46757 rrc = DMATCH_NOMATCH 46758 goto RETURN_SWITCH 46759 __1894: 46760 ; 46761 46762 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46763 goto __1895 46764 } 46765 46766 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46767 goto __1896 46768 } 46769 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46770 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46771 goto __1897 46772 } 46773 return -2 46774 __1897: 46775 ; 46776 __1896: 46777 ; 46778 46779 rrc = DMATCH_NOMATCH 46780 goto RETURN_SWITCH 46781 46782 __1895: 46783 ; 46784 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46785 if !(utf != 0 && fc >= 0xc0) { 46786 goto __1898 46787 } 46788 if !(fc&0x20 == Tuint32_t(0)) { 46789 goto __1899 46790 } 46791 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46792 goto __1900 46793 __1899: 46794 if !(fc&0x10 == Tuint32_t(0)) { 46795 goto __1901 46796 } 46797 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46798 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46799 goto __1902 46800 __1901: 46801 if !(fc&0x08 == Tuint32_t(0)) { 46802 goto __1903 46803 } 46804 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46805 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46806 goto __1904 46807 __1903: 46808 if !(fc&0x04 == Tuint32_t(0)) { 46809 goto __1905 46810 } 46811 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46812 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46813 goto __1906 46814 __1905: 46815 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46816 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46817 __1906: 46818 ; 46819 __1904: 46820 ; 46821 __1902: 46822 ; 46823 __1900: 46824 ; 46825 __1898: 46826 ; 46827 46828 prop3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 46829 ok4 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) || 46830 *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 46831 if !(ok4 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46832 goto __1907 46833 } 46834 rrc = DMATCH_NOMATCH 46835 goto RETURN_SWITCH 46836 __1907: 46837 ; 46838 46839 goto __1891 46840 __1891: 46841 goto __1890 46842 goto __1892 46843 __1892: 46844 ; 46845 // Control never gets here 46846 46847 __1791: 46848 __1908: 46849 46850 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46851 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM213 46852 goto MATCH_RECURSE 46853 L_RM213: 46854 ; 46855 46856 if !(rrc != DMATCH_NOMATCH) { 46857 goto __1911 46858 } 46859 rrc = rrc 46860 goto RETURN_SWITCH 46861 __1911: 46862 ; 46863 46864 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46865 goto __1912 46866 } 46867 rrc = DMATCH_NOMATCH 46868 goto RETURN_SWITCH 46869 __1912: 46870 ; 46871 46872 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46873 goto __1913 46874 } 46875 46876 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46877 goto __1914 46878 } 46879 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46880 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46881 goto __1915 46882 } 46883 return -2 46884 __1915: 46885 ; 46886 __1914: 46887 ; 46888 46889 rrc = DMATCH_NOMATCH 46890 goto RETURN_SWITCH 46891 46892 __1913: 46893 ; 46894 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46895 if !(utf != 0 && fc >= 0xc0) { 46896 goto __1916 46897 } 46898 if !(fc&0x20 == Tuint32_t(0)) { 46899 goto __1917 46900 } 46901 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46902 goto __1918 46903 __1917: 46904 if !(fc&0x10 == Tuint32_t(0)) { 46905 goto __1919 46906 } 46907 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46908 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 46909 goto __1920 46910 __1919: 46911 if !(fc&0x08 == Tuint32_t(0)) { 46912 goto __1921 46913 } 46914 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46915 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 46916 goto __1922 46917 __1921: 46918 if !(fc&0x04 == Tuint32_t(0)) { 46919 goto __1923 46920 } 46921 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46922 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 46923 goto __1924 46924 __1923: 46925 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46926 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 46927 __1924: 46928 ; 46929 __1922: 46930 ; 46931 __1920: 46932 ; 46933 __1918: 46934 ; 46935 __1916: 46936 ; 46937 46938 category2 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 46939 if !(libc.Bool32(category2 == ucp_L || category2 == ucp_N) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 46940 goto __1925 46941 } 46942 rrc = DMATCH_NOMATCH 46943 goto RETURN_SWITCH 46944 __1925: 46945 ; 46946 46947 goto __1909 46948 __1909: 46949 goto __1908 46950 goto __1910 46951 __1910: 46952 ; 46953 // Control never gets here 46954 46955 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46956 // which means that Perl space and POSIX space are now identical. PCRE 46957 // was changed at release 8.34. 46958 46959 __1792: // Perl space 46960 __1793: // POSIX space 46961 __1926: 46962 46963 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46964 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM214 46965 goto MATCH_RECURSE 46966 L_RM214: 46967 ; 46968 46969 if !(rrc != DMATCH_NOMATCH) { 46970 goto __1929 46971 } 46972 rrc = rrc 46973 goto RETURN_SWITCH 46974 __1929: 46975 ; 46976 46977 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 46978 goto __1930 46979 } 46980 rrc = DMATCH_NOMATCH 46981 goto RETURN_SWITCH 46982 __1930: 46983 ; 46984 46985 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46986 goto __1931 46987 } 46988 46989 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46990 goto __1932 46991 } 46992 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46993 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46994 goto __1933 46995 } 46996 return -2 46997 __1933: 46998 ; 46999 __1932: 47000 ; 47001 47002 rrc = DMATCH_NOMATCH 47003 goto RETURN_SWITCH 47004 47005 __1931: 47006 ; 47007 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47008 if !(utf != 0 && fc >= 0xc0) { 47009 goto __1934 47010 } 47011 if !(fc&0x20 == Tuint32_t(0)) { 47012 goto __1935 47013 } 47014 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47015 goto __1936 47016 __1935: 47017 if !(fc&0x10 == Tuint32_t(0)) { 47018 goto __1937 47019 } 47020 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47021 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47022 goto __1938 47023 __1937: 47024 if !(fc&0x08 == Tuint32_t(0)) { 47025 goto __1939 47026 } 47027 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47028 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47029 goto __1940 47030 __1939: 47031 if !(fc&0x04 == Tuint32_t(0)) { 47032 goto __1941 47033 } 47034 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47035 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47036 goto __1942 47037 __1941: 47038 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47039 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47040 __1942: 47041 ; 47042 __1940: 47043 ; 47044 __1938: 47045 ; 47046 __1936: 47047 ; 47048 __1934: 47049 ; 47050 47051 switch fc { 47052 case Tuint32_t('\011'): 47053 goto __1944 47054 case Tuint32_t('\040'): 47055 goto __1945 47056 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 47057 goto __1946 47058 case Tuint32_t(0x1680): 47059 goto __1947 /* OGHAM SPACE MARK */ 47060 case Tuint32_t(0x180e): 47061 goto __1948 /* MONGOLIAN VOWEL SEPARATOR */ 47062 case Tuint32_t(0x2000): 47063 goto __1949 /* EN QUAD */ 47064 case Tuint32_t(0x2001): 47065 goto __1950 /* EM QUAD */ 47066 case Tuint32_t(0x2002): 47067 goto __1951 /* EN SPACE */ 47068 case Tuint32_t(0x2003): 47069 goto __1952 /* EM SPACE */ 47070 case Tuint32_t(0x2004): 47071 goto __1953 /* THREE-PER-EM SPACE */ 47072 case Tuint32_t(0x2005): 47073 goto __1954 /* FOUR-PER-EM SPACE */ 47074 case Tuint32_t(0x2006): 47075 goto __1955 /* SIX-PER-EM SPACE */ 47076 case Tuint32_t(0x2007): 47077 goto __1956 /* FIGURE SPACE */ 47078 case Tuint32_t(0x2008): 47079 goto __1957 /* PUNCTUATION SPACE */ 47080 case Tuint32_t(0x2009): 47081 goto __1958 /* THIN SPACE */ 47082 case Tuint32_t(0x200A): 47083 goto __1959 /* HAIR SPACE */ 47084 case Tuint32_t(0x202f): 47085 goto __1960 /* NARROW NO-BREAK SPACE */ 47086 case Tuint32_t(0x205f): 47087 goto __1961 /* MEDIUM MATHEMATICAL SPACE */ 47088 case Tuint32_t(0x3000): 47089 goto __1962 47090 case Tuint32_t('\012'): 47091 goto __1963 47092 case Tuint32_t('\013'): 47093 goto __1964 47094 case Tuint32_t('\014'): 47095 goto __1965 47096 case Tuint32_t('\015'): 47097 goto __1966 47098 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 47099 goto __1967 47100 case Tuint32_t(0x2028): 47101 goto __1968 /* LINE SEPARATOR */ 47102 case Tuint32_t(0x2029): 47103 goto __1969 47104 47105 default: 47106 goto __1970 47107 } 47108 goto __1943 47109 47110 __1944: 47111 __1945: 47112 __1946: 47113 __1947: /* OGHAM SPACE MARK */ 47114 __1948: /* MONGOLIAN VOWEL SEPARATOR */ 47115 __1949: /* EN QUAD */ 47116 __1950: /* EM QUAD */ 47117 __1951: /* EN SPACE */ 47118 __1952: /* EM SPACE */ 47119 __1953: /* THREE-PER-EM SPACE */ 47120 __1954: /* FOUR-PER-EM SPACE */ 47121 __1955: /* SIX-PER-EM SPACE */ 47122 __1956: /* FIGURE SPACE */ 47123 __1957: /* PUNCTUATION SPACE */ 47124 __1958: /* THIN SPACE */ 47125 __1959: /* HAIR SPACE */ 47126 __1960: /* NARROW NO-BREAK SPACE */ 47127 __1961: /* MEDIUM MATHEMATICAL SPACE */ 47128 __1962: 47129 __1963: 47130 __1964: 47131 __1965: 47132 __1966: 47133 __1967: 47134 __1968: /* LINE SEPARATOR */ 47135 __1969: 47136 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) { 47137 goto __1971 47138 } 47139 rrc = DMATCH_NOMATCH 47140 goto RETURN_SWITCH 47141 __1971: 47142 ; 47143 47144 goto __1943 47145 47146 __1970: 47147 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 47148 goto __1972 47149 } 47150 rrc = DMATCH_NOMATCH 47151 goto RETURN_SWITCH 47152 __1972: 47153 ; 47154 47155 goto __1943 47156 __1943: 47157 ; 47158 goto __1927 47159 __1927: 47160 goto __1926 47161 goto __1928 47162 __1928: 47163 ; 47164 // Control never gets here 47165 47166 __1794: 47167 __1973: 47168 47169 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47170 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM215 47171 goto MATCH_RECURSE 47172 L_RM215: 47173 ; 47174 47175 if !(rrc != DMATCH_NOMATCH) { 47176 goto __1976 47177 } 47178 rrc = rrc 47179 goto RETURN_SWITCH 47180 __1976: 47181 ; 47182 47183 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47184 goto __1977 47185 } 47186 rrc = DMATCH_NOMATCH 47187 goto RETURN_SWITCH 47188 __1977: 47189 ; 47190 47191 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47192 goto __1978 47193 } 47194 47195 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47196 goto __1979 47197 } 47198 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47199 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47200 goto __1980 47201 } 47202 return -2 47203 __1980: 47204 ; 47205 __1979: 47206 ; 47207 47208 rrc = DMATCH_NOMATCH 47209 goto RETURN_SWITCH 47210 47211 __1978: 47212 ; 47213 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47214 if !(utf != 0 && fc >= 0xc0) { 47215 goto __1981 47216 } 47217 if !(fc&0x20 == Tuint32_t(0)) { 47218 goto __1982 47219 } 47220 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47221 goto __1983 47222 __1982: 47223 if !(fc&0x10 == Tuint32_t(0)) { 47224 goto __1984 47225 } 47226 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47227 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47228 goto __1985 47229 __1984: 47230 if !(fc&0x08 == Tuint32_t(0)) { 47231 goto __1986 47232 } 47233 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47234 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47235 goto __1987 47236 __1986: 47237 if !(fc&0x04 == Tuint32_t(0)) { 47238 goto __1988 47239 } 47240 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47241 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47242 goto __1989 47243 __1988: 47244 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47245 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47246 __1989: 47247 ; 47248 __1987: 47249 ; 47250 __1985: 47251 ; 47252 __1983: 47253 ; 47254 __1981: 47255 ; 47256 47257 category3 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 47258 if !(libc.Bool32(category3 == ucp_L || category3 == ucp_N || fc == Tuint32_t('\137')) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 47259 goto __1990 47260 } 47261 rrc = DMATCH_NOMATCH 47262 goto RETURN_SWITCH 47263 __1990: 47264 ; 47265 47266 goto __1974 47267 __1974: 47268 goto __1973 47269 goto __1975 47270 __1975: 47271 ; 47272 // Control never gets here 47273 47274 __1795: 47275 __1991: 47276 47277 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47278 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM216 47279 goto MATCH_RECURSE 47280 L_RM216: 47281 ; 47282 47283 if !(rrc != DMATCH_NOMATCH) { 47284 goto __1994 47285 } 47286 rrc = rrc 47287 goto RETURN_SWITCH 47288 __1994: 47289 ; 47290 47291 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47292 goto __1995 47293 } 47294 rrc = DMATCH_NOMATCH 47295 goto RETURN_SWITCH 47296 __1995: 47297 ; 47298 47299 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47300 goto __1996 47301 } 47302 47303 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47304 goto __1997 47305 } 47306 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47307 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47308 goto __1998 47309 } 47310 return -2 47311 __1998: 47312 ; 47313 __1997: 47314 ; 47315 47316 rrc = DMATCH_NOMATCH 47317 goto RETURN_SWITCH 47318 47319 __1996: 47320 ; 47321 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47322 if !(utf != 0 && fc >= 0xc0) { 47323 goto __1999 47324 } 47325 if !(fc&0x20 == Tuint32_t(0)) { 47326 goto __2000 47327 } 47328 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47329 goto __2001 47330 __2000: 47331 if !(fc&0x10 == Tuint32_t(0)) { 47332 goto __2002 47333 } 47334 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47335 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47336 goto __2003 47337 __2002: 47338 if !(fc&0x08 == Tuint32_t(0)) { 47339 goto __2004 47340 } 47341 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47342 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47343 goto __2005 47344 __2004: 47345 if !(fc&0x04 == Tuint32_t(0)) { 47346 goto __2006 47347 } 47348 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47349 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47350 goto __2007 47351 __2006: 47352 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47353 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47354 __2007: 47355 ; 47356 __2005: 47357 ; 47358 __2003: 47359 ; 47360 __2001: 47361 ; 47362 __1999: 47363 ; 47364 47365 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)))*4 47366 __2008: 47367 47368 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 47369 goto __2011 47370 } 47371 47372 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) { 47373 goto __2012 47374 } 47375 goto __2010 47376 __2012: 47377 ; 47378 rrc = DMATCH_NOMATCH 47379 goto RETURN_SWITCH 47380 47381 __2011: 47382 ; 47383 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 47384 goto __2013 47385 } 47386 47387 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) { 47388 goto __2014 47389 } 47390 rrc = DMATCH_NOMATCH 47391 goto RETURN_SWITCH 47392 __2014: 47393 ; 47394 47395 goto __2010 47396 __2013: 47397 ; 47398 goto __2009 47399 __2009: 47400 goto __2008 47401 goto __2010 47402 __2010: 47403 ; 47404 goto __1992 47405 __1992: 47406 goto __1991 47407 goto __1993 47408 __1993: 47409 ; 47410 // Control never gets here 47411 47412 __1796: 47413 __2015: 47414 47415 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47416 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM217 47417 goto MATCH_RECURSE 47418 L_RM217: 47419 ; 47420 47421 if !(rrc != DMATCH_NOMATCH) { 47422 goto __2018 47423 } 47424 rrc = rrc 47425 goto RETURN_SWITCH 47426 __2018: 47427 ; 47428 47429 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47430 goto __2019 47431 } 47432 rrc = DMATCH_NOMATCH 47433 goto RETURN_SWITCH 47434 __2019: 47435 ; 47436 47437 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47438 goto __2020 47439 } 47440 47441 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47442 goto __2021 47443 } 47444 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47445 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47446 goto __2022 47447 } 47448 return -2 47449 __2022: 47450 ; 47451 __2021: 47452 ; 47453 47454 rrc = DMATCH_NOMATCH 47455 goto RETURN_SWITCH 47456 47457 __2020: 47458 ; 47459 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47460 if !(utf != 0 && fc >= 0xc0) { 47461 goto __2023 47462 } 47463 if !(fc&0x20 == Tuint32_t(0)) { 47464 goto __2024 47465 } 47466 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47467 goto __2025 47468 __2024: 47469 if !(fc&0x10 == Tuint32_t(0)) { 47470 goto __2026 47471 } 47472 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47473 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47474 goto __2027 47475 __2026: 47476 if !(fc&0x08 == Tuint32_t(0)) { 47477 goto __2028 47478 } 47479 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47480 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47481 goto __2029 47482 __2028: 47483 if !(fc&0x04 == Tuint32_t(0)) { 47484 goto __2030 47485 } 47486 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47487 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47488 goto __2031 47489 __2030: 47490 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47492 __2031: 47493 ; 47494 __2029: 47495 ; 47496 __2027: 47497 ; 47498 __2025: 47499 ; 47500 __2023: 47501 ; 47502 47503 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 47504 goto __2032 47505 } 47506 rrc = DMATCH_NOMATCH 47507 goto RETURN_SWITCH 47508 __2032: 47509 ; 47510 47511 goto __2016 47512 __2016: 47513 goto __2015 47514 goto __2017 47515 __2017: 47516 ; 47517 // Control never gets here 47518 47519 __1797: 47520 __2033: 47521 47522 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47523 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM224 47524 goto MATCH_RECURSE 47525 L_RM224: 47526 ; 47527 47528 if !(rrc != DMATCH_NOMATCH) { 47529 goto __2036 47530 } 47531 rrc = rrc 47532 goto RETURN_SWITCH 47533 __2036: 47534 ; 47535 47536 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47537 goto __2037 47538 } 47539 rrc = DMATCH_NOMATCH 47540 goto RETURN_SWITCH 47541 __2037: 47542 ; 47543 47544 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47545 goto __2038 47546 } 47547 47548 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47549 goto __2039 47550 } 47551 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47552 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47553 goto __2040 47554 } 47555 return -2 47556 __2040: 47557 ; 47558 __2039: 47559 ; 47560 47561 rrc = DMATCH_NOMATCH 47562 goto RETURN_SWITCH 47563 47564 __2038: 47565 ; 47566 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47567 if !(utf != 0 && fc >= 0xc0) { 47568 goto __2041 47569 } 47570 if !(fc&0x20 == Tuint32_t(0)) { 47571 goto __2042 47572 } 47573 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47574 goto __2043 47575 __2042: 47576 if !(fc&0x10 == Tuint32_t(0)) { 47577 goto __2044 47578 } 47579 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47580 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47581 goto __2045 47582 __2044: 47583 if !(fc&0x08 == Tuint32_t(0)) { 47584 goto __2046 47585 } 47586 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47587 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47588 goto __2047 47589 __2046: 47590 if !(fc&0x04 == Tuint32_t(0)) { 47591 goto __2048 47592 } 47593 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47594 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47595 goto __2049 47596 __2048: 47597 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47598 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47599 __2049: 47600 ; 47601 __2047: 47602 ; 47603 __2045: 47604 ; 47605 __2043: 47606 ; 47607 __2041: 47608 ; 47609 47610 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 47611 goto __2050 47612 } 47613 rrc = DMATCH_NOMATCH 47614 goto RETURN_SWITCH 47615 __2050: 47616 ; 47617 47618 goto __2034 47619 __2034: 47620 goto __2033 47621 goto __2035 47622 __2035: 47623 ; 47624 // Control never gets here 47625 47626 __1798: 47627 __2051: 47628 47629 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47630 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM223 47631 goto MATCH_RECURSE 47632 L_RM223: 47633 ; 47634 47635 if !(rrc != DMATCH_NOMATCH) { 47636 goto __2054 47637 } 47638 rrc = rrc 47639 goto RETURN_SWITCH 47640 __2054: 47641 ; 47642 47643 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47644 goto __2055 47645 } 47646 rrc = DMATCH_NOMATCH 47647 goto RETURN_SWITCH 47648 __2055: 47649 ; 47650 47651 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47652 goto __2056 47653 } 47654 47655 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47656 goto __2057 47657 } 47658 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47659 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47660 goto __2058 47661 } 47662 return -2 47663 __2058: 47664 ; 47665 __2057: 47666 ; 47667 47668 rrc = DMATCH_NOMATCH 47669 goto RETURN_SWITCH 47670 47671 __2056: 47672 ; 47673 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47674 if !(utf != 0 && fc >= 0xc0) { 47675 goto __2059 47676 } 47677 if !(fc&0x20 == Tuint32_t(0)) { 47678 goto __2060 47679 } 47680 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47681 goto __2061 47682 __2060: 47683 if !(fc&0x10 == Tuint32_t(0)) { 47684 goto __2062 47685 } 47686 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47687 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47688 goto __2063 47689 __2062: 47690 if !(fc&0x08 == Tuint32_t(0)) { 47691 goto __2064 47692 } 47693 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47694 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47695 goto __2065 47696 __2064: 47697 if !(fc&0x04 == Tuint32_t(0)) { 47698 goto __2066 47699 } 47700 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47701 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47702 goto __2067 47703 __2066: 47704 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47705 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47706 __2067: 47707 ; 47708 __2065: 47709 ; 47710 __2063: 47711 ; 47712 __2061: 47713 ; 47714 __2059: 47715 ; 47716 47717 prop4 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 47718 ok5 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop4)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 47719 if !(ok5 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP)) { 47720 goto __2068 47721 } 47722 rrc = DMATCH_NOMATCH 47723 goto RETURN_SWITCH 47724 __2068: 47725 ; 47726 47727 goto __2052 47728 __2052: 47729 goto __2051 47730 goto __2053 47731 __2053: 47732 ; 47733 // Control never gets here 47734 47735 // This should never occur 47736 __1799: 47737 return -44 47738 __1784: 47739 ; 47740 goto __1783 47741 __1782: 47742 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_EXTUNI) { 47743 goto __2069 47744 } 47745 47746 __2071: 47747 47748 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47749 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM218 47750 goto MATCH_RECURSE 47751 L_RM218: 47752 ; 47753 47754 if !(rrc != DMATCH_NOMATCH) { 47755 goto __2074 47756 } 47757 rrc = rrc 47758 goto RETURN_SWITCH 47759 __2074: 47760 ; 47761 47762 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47763 goto __2075 47764 } 47765 rrc = DMATCH_NOMATCH 47766 goto RETURN_SWITCH 47767 __2075: 47768 ; 47769 47770 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47771 goto __2076 47772 } 47773 47774 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47775 goto __2078 47776 } 47777 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47778 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47779 goto __2079 47780 } 47781 return -2 47782 __2079: 47783 ; 47784 __2078: 47785 ; 47786 47787 rrc = DMATCH_NOMATCH 47788 goto RETURN_SWITCH 47789 47790 goto __2077 47791 __2076: 47792 47793 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47794 if !(utf != 0 && fc >= 0xc0) { 47795 goto __2080 47796 } 47797 if !(fc&0x20 == Tuint32_t(0)) { 47798 goto __2081 47799 } 47800 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47801 goto __2082 47802 __2081: 47803 if !(fc&0x10 == Tuint32_t(0)) { 47804 goto __2083 47805 } 47806 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47807 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47808 goto __2084 47809 __2083: 47810 if !(fc&0x08 == Tuint32_t(0)) { 47811 goto __2085 47812 } 47813 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47814 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47815 goto __2086 47816 __2085: 47817 if !(fc&0x04 == Tuint32_t(0)) { 47818 goto __2087 47819 } 47820 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47821 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47822 goto __2088 47823 __2087: 47824 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47825 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47826 __2088: 47827 ; 47828 __2086: 47829 ; 47830 __2084: 47831 ; 47832 __2082: 47833 ; 47834 __2080: 47835 ; 47836 47837 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, 47838 utf, uintptr(0)) 47839 __2077: 47840 ; 47841 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47842 goto __2089 47843 } 47844 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47845 goto __2090 47846 } 47847 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47848 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47849 goto __2091 47850 } 47851 return -2 47852 __2091: 47853 ; 47854 __2090: 47855 ; 47856 __2089: 47857 ; 47858 47859 goto __2072 47860 __2072: 47861 goto __2071 47862 goto __2073 47863 __2073: 47864 ; 47865 goto __2070 47866 __2069: 47867 47868 // UTF mode for non-property testing character types. 47869 47870 if !(utf != 0) { 47871 goto __2092 47872 } 47873 47874 __2094: 47875 47876 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47877 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM219 47878 goto MATCH_RECURSE 47879 L_RM219: 47880 ; 47881 47882 if !(rrc != DMATCH_NOMATCH) { 47883 goto __2097 47884 } 47885 rrc = rrc 47886 goto RETURN_SWITCH 47887 __2097: 47888 ; 47889 47890 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 47891 goto __2098 47892 } 47893 rrc = DMATCH_NOMATCH 47894 goto RETURN_SWITCH 47895 __2098: 47896 ; 47897 47898 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47899 goto __2099 47900 } 47901 47902 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47903 goto __2100 47904 } 47905 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47906 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47907 goto __2101 47908 } 47909 return -2 47910 __2101: 47911 ; 47912 __2100: 47913 ; 47914 47915 rrc = DMATCH_NOMATCH 47916 goto RETURN_SWITCH 47917 47918 __2099: 47919 ; 47920 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_ANY && func() int32 { 47921 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 47922 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 47923 } 47924 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 47925 }() != 0) { 47926 goto __2102 47927 } 47928 rrc = DMATCH_NOMATCH 47929 goto RETURN_SWITCH 47930 __2102: 47931 ; 47932 47933 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47934 if !(fc >= 0xc0) { 47935 goto __2103 47936 } 47937 if !(fc&0x20 == Tuint32_t(0)) { 47938 goto __2104 47939 } 47940 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47941 goto __2105 47942 __2104: 47943 if !(fc&0x10 == Tuint32_t(0)) { 47944 goto __2106 47945 } 47946 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47947 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 47948 goto __2107 47949 __2106: 47950 if !(fc&0x08 == Tuint32_t(0)) { 47951 goto __2108 47952 } 47953 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47954 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 47955 goto __2109 47956 __2108: 47957 if !(fc&0x04 == Tuint32_t(0)) { 47958 goto __2110 47959 } 47960 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47961 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 47962 goto __2111 47963 __2110: 47964 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47965 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 47966 __2111: 47967 ; 47968 __2109: 47969 ; 47970 __2107: 47971 ; 47972 __2105: 47973 ; 47974 __2103: 47975 ; 47976 47977 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 47978 case OP_ANY: 47979 goto __2113 47980 47981 case OP_ALLANY: 47982 goto __2114 47983 case OP_ANYBYTE: 47984 goto __2115 47985 47986 case OP_ANYNL: 47987 goto __2116 47988 47989 case OP_NOT_HSPACE: 47990 goto __2117 47991 47992 case OP_HSPACE: 47993 goto __2118 47994 47995 case OP_NOT_VSPACE: 47996 goto __2119 47997 47998 case OP_VSPACE: 47999 goto __2120 48000 48001 case OP_NOT_DIGIT: 48002 goto __2121 48003 48004 case OP_DIGIT: 48005 goto __2122 48006 48007 case OP_NOT_WHITESPACE: 48008 goto __2123 48009 48010 case OP_WHITESPACE: 48011 goto __2124 48012 48013 case OP_NOT_WORDCHAR: 48014 goto __2125 48015 48016 case OP_WORDCHAR: 48017 goto __2126 48018 48019 default: 48020 goto __2127 48021 } 48022 goto __2112 48023 48024 __2113: // This is the non-NL case 48025 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && fc == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 48026 goto __2128 48027 } 48028 48029 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48030 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48031 goto __2129 48032 } 48033 return -2 48034 __2129: 48035 ; 48036 __2128: 48037 ; 48038 goto __2112 48039 48040 __2114: 48041 __2115: 48042 goto __2112 48043 48044 __2116: 48045 switch fc { 48046 default: 48047 goto __2131 48048 48049 case Tuint32_t('\015'): 48050 goto __2132 48051 48052 case Tuint32_t('\012'): 48053 goto __2133 48054 48055 case Tuint32_t('\013'): 48056 goto __2134 48057 case Tuint32_t('\014'): 48058 goto __2135 48059 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48060 goto __2136 48061 case Tuint32_t(0x2028): 48062 goto __2137 48063 case Tuint32_t(0x2029): 48064 goto __2138 48065 } 48066 goto __2130 48067 48068 __2131: 48069 rrc = DMATCH_NOMATCH 48070 goto RETURN_SWITCH 48071 48072 __2132: 48073 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 48074 goto __2139 48075 } 48076 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48077 __2139: 48078 ; 48079 goto __2130 48080 48081 __2133: 48082 goto __2130 48083 48084 __2134: 48085 __2135: 48086 __2136: 48087 __2137: 48088 __2138: 48089 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48090 goto __2140 48091 } 48092 rrc = DMATCH_NOMATCH 48093 goto RETURN_SWITCH 48094 __2140: 48095 ; 48096 48097 goto __2130 48098 __2130: 48099 ; 48100 goto __2112 48101 48102 __2117: 48103 switch fc { 48104 case Tuint32_t('\011'): 48105 goto __2142 48106 case Tuint32_t('\040'): 48107 goto __2143 48108 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48109 goto __2144 48110 case Tuint32_t(0x1680): 48111 goto __2145 /* OGHAM SPACE MARK */ 48112 case Tuint32_t(0x180e): 48113 goto __2146 /* MONGOLIAN VOWEL SEPARATOR */ 48114 case Tuint32_t(0x2000): 48115 goto __2147 /* EN QUAD */ 48116 case Tuint32_t(0x2001): 48117 goto __2148 /* EM QUAD */ 48118 case Tuint32_t(0x2002): 48119 goto __2149 /* EN SPACE */ 48120 case Tuint32_t(0x2003): 48121 goto __2150 /* EM SPACE */ 48122 case Tuint32_t(0x2004): 48123 goto __2151 /* THREE-PER-EM SPACE */ 48124 case Tuint32_t(0x2005): 48125 goto __2152 /* FOUR-PER-EM SPACE */ 48126 case Tuint32_t(0x2006): 48127 goto __2153 /* SIX-PER-EM SPACE */ 48128 case Tuint32_t(0x2007): 48129 goto __2154 /* FIGURE SPACE */ 48130 case Tuint32_t(0x2008): 48131 goto __2155 /* PUNCTUATION SPACE */ 48132 case Tuint32_t(0x2009): 48133 goto __2156 /* THIN SPACE */ 48134 case Tuint32_t(0x200A): 48135 goto __2157 /* HAIR SPACE */ 48136 case Tuint32_t(0x202f): 48137 goto __2158 /* NARROW NO-BREAK SPACE */ 48138 case Tuint32_t(0x205f): 48139 goto __2159 /* MEDIUM MATHEMATICAL SPACE */ 48140 case Tuint32_t(0x3000): 48141 goto __2160 48142 default: 48143 goto __2161 48144 } 48145 goto __2141 48146 48147 __2142: 48148 __2143: 48149 __2144: 48150 __2145: /* OGHAM SPACE MARK */ 48151 __2146: /* MONGOLIAN VOWEL SEPARATOR */ 48152 __2147: /* EN QUAD */ 48153 __2148: /* EM QUAD */ 48154 __2149: /* EN SPACE */ 48155 __2150: /* EM SPACE */ 48156 __2151: /* THREE-PER-EM SPACE */ 48157 __2152: /* FOUR-PER-EM SPACE */ 48158 __2153: /* SIX-PER-EM SPACE */ 48159 __2154: /* FIGURE SPACE */ 48160 __2155: /* PUNCTUATION SPACE */ 48161 __2156: /* THIN SPACE */ 48162 __2157: /* HAIR SPACE */ 48163 __2158: /* NARROW NO-BREAK SPACE */ 48164 __2159: /* MEDIUM MATHEMATICAL SPACE */ 48165 __2160: 48166 rrc = DMATCH_NOMATCH 48167 goto RETURN_SWITCH 48168 48169 __2161: 48170 goto __2141 48171 __2141: 48172 ; 48173 goto __2112 48174 48175 __2118: 48176 switch fc { 48177 case Tuint32_t('\011'): 48178 goto __2163 48179 case Tuint32_t('\040'): 48180 goto __2164 48181 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48182 goto __2165 48183 case Tuint32_t(0x1680): 48184 goto __2166 /* OGHAM SPACE MARK */ 48185 case Tuint32_t(0x180e): 48186 goto __2167 /* MONGOLIAN VOWEL SEPARATOR */ 48187 case Tuint32_t(0x2000): 48188 goto __2168 /* EN QUAD */ 48189 case Tuint32_t(0x2001): 48190 goto __2169 /* EM QUAD */ 48191 case Tuint32_t(0x2002): 48192 goto __2170 /* EN SPACE */ 48193 case Tuint32_t(0x2003): 48194 goto __2171 /* EM SPACE */ 48195 case Tuint32_t(0x2004): 48196 goto __2172 /* THREE-PER-EM SPACE */ 48197 case Tuint32_t(0x2005): 48198 goto __2173 /* FOUR-PER-EM SPACE */ 48199 case Tuint32_t(0x2006): 48200 goto __2174 /* SIX-PER-EM SPACE */ 48201 case Tuint32_t(0x2007): 48202 goto __2175 /* FIGURE SPACE */ 48203 case Tuint32_t(0x2008): 48204 goto __2176 /* PUNCTUATION SPACE */ 48205 case Tuint32_t(0x2009): 48206 goto __2177 /* THIN SPACE */ 48207 case Tuint32_t(0x200A): 48208 goto __2178 /* HAIR SPACE */ 48209 case Tuint32_t(0x202f): 48210 goto __2179 /* NARROW NO-BREAK SPACE */ 48211 case Tuint32_t(0x205f): 48212 goto __2180 /* MEDIUM MATHEMATICAL SPACE */ 48213 case Tuint32_t(0x3000): 48214 goto __2181 48215 default: 48216 goto __2182 48217 } 48218 goto __2162 48219 48220 __2163: 48221 __2164: 48222 __2165: 48223 __2166: /* OGHAM SPACE MARK */ 48224 __2167: /* MONGOLIAN VOWEL SEPARATOR */ 48225 __2168: /* EN QUAD */ 48226 __2169: /* EM QUAD */ 48227 __2170: /* EN SPACE */ 48228 __2171: /* EM SPACE */ 48229 __2172: /* THREE-PER-EM SPACE */ 48230 __2173: /* FOUR-PER-EM SPACE */ 48231 __2174: /* SIX-PER-EM SPACE */ 48232 __2175: /* FIGURE SPACE */ 48233 __2176: /* PUNCTUATION SPACE */ 48234 __2177: /* THIN SPACE */ 48235 __2178: /* HAIR SPACE */ 48236 __2179: /* NARROW NO-BREAK SPACE */ 48237 __2180: /* MEDIUM MATHEMATICAL SPACE */ 48238 __2181: 48239 goto __2162 48240 __2182: 48241 rrc = DMATCH_NOMATCH 48242 goto RETURN_SWITCH 48243 48244 __2162: 48245 ; 48246 goto __2112 48247 48248 __2119: 48249 switch fc { 48250 case Tuint32_t('\012'): 48251 goto __2184 48252 case Tuint32_t('\013'): 48253 goto __2185 48254 case Tuint32_t('\014'): 48255 goto __2186 48256 case Tuint32_t('\015'): 48257 goto __2187 48258 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48259 goto __2188 48260 case Tuint32_t(0x2028): 48261 goto __2189 /* LINE SEPARATOR */ 48262 case Tuint32_t(0x2029): 48263 goto __2190 48264 default: 48265 goto __2191 48266 } 48267 goto __2183 48268 48269 __2184: 48270 __2185: 48271 __2186: 48272 __2187: 48273 __2188: 48274 __2189: /* LINE SEPARATOR */ 48275 __2190: 48276 rrc = DMATCH_NOMATCH 48277 goto RETURN_SWITCH 48278 48279 __2191: 48280 goto __2183 48281 __2183: 48282 ; 48283 goto __2112 48284 48285 __2120: 48286 switch fc { 48287 case Tuint32_t('\012'): 48288 goto __2193 48289 case Tuint32_t('\013'): 48290 goto __2194 48291 case Tuint32_t('\014'): 48292 goto __2195 48293 case Tuint32_t('\015'): 48294 goto __2196 48295 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48296 goto __2197 48297 case Tuint32_t(0x2028): 48298 goto __2198 /* LINE SEPARATOR */ 48299 case Tuint32_t(0x2029): 48300 goto __2199 48301 default: 48302 goto __2200 48303 } 48304 goto __2192 48305 48306 __2193: 48307 __2194: 48308 __2195: 48309 __2196: 48310 __2197: 48311 __2198: /* LINE SEPARATOR */ 48312 __2199: 48313 goto __2192 48314 __2200: 48315 rrc = DMATCH_NOMATCH 48316 goto RETURN_SWITCH 48317 48318 __2192: 48319 ; 48320 goto __2112 48321 48322 __2121: 48323 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48324 goto __2201 48325 } 48326 rrc = DMATCH_NOMATCH 48327 goto RETURN_SWITCH 48328 __2201: 48329 ; 48330 48331 goto __2112 48332 48333 __2122: 48334 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48335 goto __2202 48336 } 48337 rrc = DMATCH_NOMATCH 48338 goto RETURN_SWITCH 48339 __2202: 48340 ; 48341 48342 goto __2112 48343 48344 __2123: 48345 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48346 goto __2203 48347 } 48348 rrc = DMATCH_NOMATCH 48349 goto RETURN_SWITCH 48350 __2203: 48351 ; 48352 48353 goto __2112 48354 48355 __2124: 48356 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48357 goto __2204 48358 } 48359 rrc = DMATCH_NOMATCH 48360 goto RETURN_SWITCH 48361 __2204: 48362 ; 48363 48364 goto __2112 48365 48366 __2125: 48367 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48368 goto __2205 48369 } 48370 rrc = DMATCH_NOMATCH 48371 goto RETURN_SWITCH 48372 __2205: 48373 ; 48374 48375 goto __2112 48376 48377 __2126: 48378 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48379 goto __2206 48380 } 48381 rrc = DMATCH_NOMATCH 48382 goto RETURN_SWITCH 48383 __2206: 48384 ; 48385 48386 goto __2112 48387 48388 __2127: 48389 return -44 48390 __2112: 48391 ; 48392 goto __2095 48393 __2095: 48394 goto __2094 48395 goto __2096 48396 __2096: 48397 ; 48398 goto __2093 48399 __2092: 48400 48401 /* Not UTF mode */ 48402 48403 __2207: 48404 48405 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 48406 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM33 48407 goto MATCH_RECURSE 48408 L_RM33: 48409 ; 48410 48411 if !(rrc != DMATCH_NOMATCH) { 48412 goto __2210 48413 } 48414 rrc = rrc 48415 goto RETURN_SWITCH 48416 __2210: 48417 ; 48418 48419 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 48420 goto __2211 48421 } 48422 rrc = DMATCH_NOMATCH 48423 goto RETURN_SWITCH 48424 __2211: 48425 ; 48426 48427 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48428 goto __2212 48429 } 48430 48431 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48432 goto __2213 48433 } 48434 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48435 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48436 goto __2214 48437 } 48438 return -2 48439 __2214: 48440 ; 48441 __2213: 48442 ; 48443 48444 rrc = DMATCH_NOMATCH 48445 goto RETURN_SWITCH 48446 48447 __2212: 48448 ; 48449 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_ANY && func() int32 { 48450 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 48451 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 48452 } 48453 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 48454 }() != 0) { 48455 goto __2215 48456 } 48457 rrc = DMATCH_NOMATCH 48458 goto RETURN_SWITCH 48459 __2215: 48460 ; 48461 48462 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 48463 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 48464 case OP_ANY: 48465 goto __2217 48466 48467 case OP_ALLANY: 48468 goto __2218 48469 case OP_ANYBYTE: 48470 goto __2219 48471 48472 case OP_ANYNL: 48473 goto __2220 48474 48475 case OP_NOT_HSPACE: 48476 goto __2221 48477 48478 case OP_HSPACE: 48479 goto __2222 48480 48481 case OP_NOT_VSPACE: 48482 goto __2223 48483 48484 case OP_VSPACE: 48485 goto __2224 48486 48487 case OP_NOT_DIGIT: 48488 goto __2225 48489 48490 case OP_DIGIT: 48491 goto __2226 48492 48493 case OP_NOT_WHITESPACE: 48494 goto __2227 48495 48496 case OP_WHITESPACE: 48497 goto __2228 48498 48499 case OP_NOT_WORDCHAR: 48500 goto __2229 48501 48502 case OP_WORDCHAR: 48503 goto __2230 48504 48505 default: 48506 goto __2231 48507 } 48508 goto __2216 48509 48510 __2217: // This is the non-NL case 48511 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && fc == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 48512 goto __2232 48513 } 48514 48515 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48516 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48517 goto __2233 48518 } 48519 return -2 48520 __2233: 48521 ; 48522 __2232: 48523 ; 48524 goto __2216 48525 48526 __2218: 48527 __2219: 48528 goto __2216 48529 48530 __2220: 48531 switch fc { 48532 default: 48533 goto __2235 48534 48535 case Tuint32_t('\015'): 48536 goto __2236 48537 48538 case Tuint32_t('\012'): 48539 goto __2237 48540 48541 case Tuint32_t('\013'): 48542 goto __2238 48543 case Tuint32_t('\014'): 48544 goto __2239 48545 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48546 goto __2240 48547 } 48548 goto __2234 48549 48550 __2235: 48551 rrc = DMATCH_NOMATCH 48552 goto RETURN_SWITCH 48553 48554 __2236: 48555 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 48556 goto __2241 48557 } 48558 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48559 __2241: 48560 ; 48561 goto __2234 48562 48563 __2237: 48564 goto __2234 48565 48566 __2238: 48567 __2239: 48568 __2240: 48569 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48570 goto __2242 48571 } 48572 rrc = DMATCH_NOMATCH 48573 goto RETURN_SWITCH 48574 __2242: 48575 ; 48576 48577 goto __2234 48578 __2234: 48579 ; 48580 goto __2216 48581 48582 __2221: 48583 switch fc { 48584 default: 48585 goto __2244 48586 case Tuint32_t('\011'): 48587 goto __2245 48588 case Tuint32_t('\040'): 48589 goto __2246 48590 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48591 goto __2247 48592 } 48593 goto __2243 48594 48595 __2244: 48596 goto __2243 48597 __2245: 48598 __2246: 48599 __2247: 48600 rrc = DMATCH_NOMATCH 48601 goto RETURN_SWITCH 48602 48603 __2243: 48604 ; 48605 goto __2216 48606 48607 __2222: 48608 switch fc { 48609 default: 48610 goto __2249 48611 case Tuint32_t('\011'): 48612 goto __2250 48613 case Tuint32_t('\040'): 48614 goto __2251 48615 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48616 goto __2252 48617 } 48618 goto __2248 48619 48620 __2249: 48621 rrc = DMATCH_NOMATCH 48622 goto RETURN_SWITCH 48623 48624 __2250: 48625 __2251: 48626 __2252: 48627 goto __2248 48628 __2248: 48629 ; 48630 goto __2216 48631 48632 __2223: 48633 switch fc { 48634 default: 48635 goto __2254 48636 case Tuint32_t('\012'): 48637 goto __2255 48638 case Tuint32_t('\013'): 48639 goto __2256 48640 case Tuint32_t('\014'): 48641 goto __2257 48642 case Tuint32_t('\015'): 48643 goto __2258 48644 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48645 goto __2259 48646 } 48647 goto __2253 48648 48649 __2254: 48650 goto __2253 48651 __2255: 48652 __2256: 48653 __2257: 48654 __2258: 48655 __2259: 48656 rrc = DMATCH_NOMATCH 48657 goto RETURN_SWITCH 48658 48659 __2253: 48660 ; 48661 goto __2216 48662 48663 __2224: 48664 switch fc { 48665 default: 48666 goto __2261 48667 case Tuint32_t('\012'): 48668 goto __2262 48669 case Tuint32_t('\013'): 48670 goto __2263 48671 case Tuint32_t('\014'): 48672 goto __2264 48673 case Tuint32_t('\015'): 48674 goto __2265 48675 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48676 goto __2266 48677 } 48678 goto __2260 48679 48680 __2261: 48681 rrc = DMATCH_NOMATCH 48682 goto RETURN_SWITCH 48683 48684 __2262: 48685 __2263: 48686 __2264: 48687 __2265: 48688 __2266: 48689 goto __2260 48690 __2260: 48691 ; 48692 goto __2216 48693 48694 __2225: 48695 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48696 goto __2267 48697 } 48698 rrc = DMATCH_NOMATCH 48699 goto RETURN_SWITCH 48700 __2267: 48701 ; 48702 48703 goto __2216 48704 48705 __2226: 48706 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48707 goto __2268 48708 } 48709 rrc = DMATCH_NOMATCH 48710 goto RETURN_SWITCH 48711 __2268: 48712 ; 48713 48714 goto __2216 48715 48716 __2227: 48717 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48718 goto __2269 48719 } 48720 rrc = DMATCH_NOMATCH 48721 goto RETURN_SWITCH 48722 __2269: 48723 ; 48724 48725 goto __2216 48726 48727 __2228: 48728 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48729 goto __2270 48730 } 48731 rrc = DMATCH_NOMATCH 48732 goto RETURN_SWITCH 48733 __2270: 48734 ; 48735 48736 goto __2216 48737 48738 __2229: 48739 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48740 goto __2271 48741 } 48742 rrc = DMATCH_NOMATCH 48743 goto RETURN_SWITCH 48744 __2271: 48745 ; 48746 48747 goto __2216 48748 48749 __2230: 48750 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48751 goto __2272 48752 } 48753 rrc = DMATCH_NOMATCH 48754 goto RETURN_SWITCH 48755 __2272: 48756 ; 48757 48758 goto __2216 48759 48760 __2231: 48761 return -44 48762 __2216: 48763 ; 48764 goto __2208 48765 __2208: 48766 goto __2207 48767 goto __2209 48768 __2209: 48769 ; 48770 __2093: 48771 ; 48772 __2070: 48773 ; 48774 __1783: 48775 ; 48776 // Control never gets here 48777 goto __1781 48778 __1780: 48779 48780 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Remember where we started 48781 48782 if !(proptype >= 0) { 48783 goto __2273 48784 } 48785 notmatch2 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOTPROP) 48786 switch proptype { 48787 case DPT_ANY: 48788 goto __2276 48789 48790 case DPT_LAMP: 48791 goto __2277 48792 48793 case DPT_GC: 48794 goto __2278 48795 48796 case DPT_PC: 48797 goto __2279 48798 48799 case DPT_SC: 48800 goto __2280 48801 48802 case DPT_SCX: 48803 goto __2281 48804 48805 case DPT_ALNUM: 48806 goto __2282 48807 48808 // Perl space used to exclude VT, but from Perl 5.18 it is included, 48809 // which means that Perl space and POSIX space are now identical. PCRE 48810 // was changed at release 8.34. 48811 48812 case DPT_SPACE: 48813 goto __2283 // Perl space 48814 case DPT_PXSPACE: 48815 goto __2284 48816 48817 case DPT_WORD: 48818 goto __2285 48819 48820 case DPT_CLIST: 48821 goto __2286 48822 48823 case DPT_UCNC: 48824 goto __2287 48825 48826 case DPT_BIDICL: 48827 goto __2288 48828 48829 case DPT_BOOL: 48830 goto __2289 48831 48832 default: 48833 goto __2290 48834 } 48835 goto __2275 48836 48837 __2276: 48838 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 48839 __2291: 48840 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 48841 goto __2293 48842 } 48843 48844 len4 = 1 48845 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48846 goto __2294 48847 } 48848 48849 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48850 goto __2295 48851 } 48852 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48853 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48854 goto __2296 48855 } 48856 return -2 48857 __2296: 48858 ; 48859 __2295: 48860 ; 48861 48862 goto __2293 48863 __2294: 48864 ; 48865 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48866 if !(utf != 0 && fc >= 0xc0) { 48867 goto __2297 48868 } 48869 if !(fc&0x20 == Tuint32_t(0)) { 48870 goto __2298 48871 } 48872 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48873 len4++ 48874 goto __2299 48875 __2298: 48876 if !(fc&0x10 == Tuint32_t(0)) { 48877 goto __2300 48878 } 48879 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 48880 len4 = len4 + 2 48881 goto __2301 48882 __2300: 48883 if !(fc&0x08 == Tuint32_t(0)) { 48884 goto __2302 48885 } 48886 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 48887 len4 = len4 + 3 48888 goto __2303 48889 __2302: 48890 if !(fc&0x04 == Tuint32_t(0)) { 48891 goto __2304 48892 } 48893 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 48894 len4 = len4 + 4 48895 goto __2305 48896 __2304: 48897 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 48898 len4 = len4 + 5 48899 __2305: 48900 ; 48901 __2303: 48902 ; 48903 __2301: 48904 ; 48905 __2299: 48906 ; 48907 __2297: 48908 ; 48909 48910 if !(notmatch2 != 0) { 48911 goto __2306 48912 } 48913 goto __2293 48914 __2306: 48915 ; 48916 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len4) 48917 goto __2292 48918 __2292: 48919 i++ 48920 goto __2291 48921 goto __2293 48922 __2293: 48923 ; 48924 goto __2275 48925 48926 __2277: 48927 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 48928 __2307: 48929 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 48930 goto __2309 48931 } 48932 48933 len5 = 1 48934 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48935 goto __2310 48936 } 48937 48938 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48939 goto __2311 48940 } 48941 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48942 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48943 goto __2312 48944 } 48945 return -2 48946 __2312: 48947 ; 48948 __2311: 48949 ; 48950 48951 goto __2309 48952 __2310: 48953 ; 48954 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48955 if !(utf != 0 && fc >= 0xc0) { 48956 goto __2313 48957 } 48958 if !(fc&0x20 == Tuint32_t(0)) { 48959 goto __2314 48960 } 48961 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48962 len5++ 48963 goto __2315 48964 __2314: 48965 if !(fc&0x10 == Tuint32_t(0)) { 48966 goto __2316 48967 } 48968 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 48969 len5 = len5 + 2 48970 goto __2317 48971 __2316: 48972 if !(fc&0x08 == Tuint32_t(0)) { 48973 goto __2318 48974 } 48975 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 48976 len5 = len5 + 3 48977 goto __2319 48978 __2318: 48979 if !(fc&0x04 == Tuint32_t(0)) { 48980 goto __2320 48981 } 48982 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 48983 len5 = len5 + 4 48984 goto __2321 48985 __2320: 48986 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 48987 len5 = len5 + 5 48988 __2321: 48989 ; 48990 __2319: 48991 ; 48992 __2317: 48993 ; 48994 __2315: 48995 ; 48996 __2313: 48997 ; 48998 48999 chartype2 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 49000 if !(libc.Bool32(chartype2 == ucp_Lu || chartype2 == ucp_Ll || chartype2 == ucp_Lt) == notmatch2) { 49001 goto __2322 49002 } 49003 goto __2309 49004 __2322: 49005 ; 49006 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len5) 49007 goto __2308 49008 __2308: 49009 i++ 49010 goto __2307 49011 goto __2309 49012 __2309: 49013 ; 49014 goto __2275 49015 49016 __2278: 49017 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49018 __2323: 49019 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49020 goto __2325 49021 } 49022 49023 len6 = 1 49024 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49025 goto __2326 49026 } 49027 49028 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49029 goto __2327 49030 } 49031 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49032 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49033 goto __2328 49034 } 49035 return -2 49036 __2328: 49037 ; 49038 __2327: 49039 ; 49040 49041 goto __2325 49042 __2326: 49043 ; 49044 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49045 if !(utf != 0 && fc >= 0xc0) { 49046 goto __2329 49047 } 49048 if !(fc&0x20 == Tuint32_t(0)) { 49049 goto __2330 49050 } 49051 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49052 len6++ 49053 goto __2331 49054 __2330: 49055 if !(fc&0x10 == Tuint32_t(0)) { 49056 goto __2332 49057 } 49058 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49059 len6 = len6 + 2 49060 goto __2333 49061 __2332: 49062 if !(fc&0x08 == Tuint32_t(0)) { 49063 goto __2334 49064 } 49065 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49066 len6 = len6 + 3 49067 goto __2335 49068 __2334: 49069 if !(fc&0x04 == Tuint32_t(0)) { 49070 goto __2336 49071 } 49072 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49073 len6 = len6 + 4 49074 goto __2337 49075 __2336: 49076 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49077 len6 = len6 + 5 49078 __2337: 49079 ; 49080 __2335: 49081 ; 49082 __2333: 49083 ; 49084 __2331: 49085 ; 49086 __2329: 49087 ; 49088 49089 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch2) { 49090 goto __2338 49091 } 49092 goto __2325 49093 __2338: 49094 ; 49095 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len6) 49096 goto __2324 49097 __2324: 49098 i++ 49099 goto __2323 49100 goto __2325 49101 __2325: 49102 ; 49103 goto __2275 49104 49105 __2279: 49106 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49107 __2339: 49108 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49109 goto __2341 49110 } 49111 49112 len7 = 1 49113 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49114 goto __2342 49115 } 49116 49117 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49118 goto __2343 49119 } 49120 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49121 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49122 goto __2344 49123 } 49124 return -2 49125 __2344: 49126 ; 49127 __2343: 49128 ; 49129 49130 goto __2341 49131 __2342: 49132 ; 49133 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49134 if !(utf != 0 && fc >= 0xc0) { 49135 goto __2345 49136 } 49137 if !(fc&0x20 == Tuint32_t(0)) { 49138 goto __2346 49139 } 49140 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49141 len7++ 49142 goto __2347 49143 __2346: 49144 if !(fc&0x10 == Tuint32_t(0)) { 49145 goto __2348 49146 } 49147 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49148 len7 = len7 + 2 49149 goto __2349 49150 __2348: 49151 if !(fc&0x08 == Tuint32_t(0)) { 49152 goto __2350 49153 } 49154 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49155 len7 = len7 + 3 49156 goto __2351 49157 __2350: 49158 if !(fc&0x04 == Tuint32_t(0)) { 49159 goto __2352 49160 } 49161 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49162 len7 = len7 + 4 49163 goto __2353 49164 __2352: 49165 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49166 len7 = len7 + 5 49167 __2353: 49168 ; 49169 __2351: 49170 ; 49171 __2349: 49172 ; 49173 __2347: 49174 ; 49175 __2345: 49176 ; 49177 49178 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch2) { 49179 goto __2354 49180 } 49181 goto __2341 49182 __2354: 49183 ; 49184 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len7) 49185 goto __2340 49186 __2340: 49187 i++ 49188 goto __2339 49189 goto __2341 49190 __2341: 49191 ; 49192 goto __2275 49193 49194 __2280: 49195 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49196 __2355: 49197 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49198 goto __2357 49199 } 49200 49201 len8 = 1 49202 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49203 goto __2358 49204 } 49205 49206 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49207 goto __2359 49208 } 49209 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49210 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49211 goto __2360 49212 } 49213 return -2 49214 __2360: 49215 ; 49216 __2359: 49217 ; 49218 49219 goto __2357 49220 __2358: 49221 ; 49222 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49223 if !(utf != 0 && fc >= 0xc0) { 49224 goto __2361 49225 } 49226 if !(fc&0x20 == Tuint32_t(0)) { 49227 goto __2362 49228 } 49229 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49230 len8++ 49231 goto __2363 49232 __2362: 49233 if !(fc&0x10 == Tuint32_t(0)) { 49234 goto __2364 49235 } 49236 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49237 len8 = len8 + 2 49238 goto __2365 49239 __2364: 49240 if !(fc&0x08 == Tuint32_t(0)) { 49241 goto __2366 49242 } 49243 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49244 len8 = len8 + 3 49245 goto __2367 49246 __2366: 49247 if !(fc&0x04 == Tuint32_t(0)) { 49248 goto __2368 49249 } 49250 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49251 len8 = len8 + 4 49252 goto __2369 49253 __2368: 49254 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49255 len8 = len8 + 5 49256 __2369: 49257 ; 49258 __2367: 49259 ; 49260 __2365: 49261 ; 49262 __2363: 49263 ; 49264 __2361: 49265 ; 49266 49267 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch2) { 49268 goto __2370 49269 } 49270 goto __2357 49271 __2370: 49272 ; 49273 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len8) 49274 goto __2356 49275 __2356: 49276 i++ 49277 goto __2355 49278 goto __2357 49279 __2357: 49280 ; 49281 goto __2275 49282 49283 __2281: 49284 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49285 __2371: 49286 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49287 goto __2373 49288 } 49289 49290 len9 = 1 49291 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49292 goto __2374 49293 } 49294 49295 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49296 goto __2375 49297 } 49298 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49299 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49300 goto __2376 49301 } 49302 return -2 49303 __2376: 49304 ; 49305 __2375: 49306 ; 49307 49308 goto __2373 49309 __2374: 49310 ; 49311 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49312 if !(utf != 0 && fc >= 0xc0) { 49313 goto __2377 49314 } 49315 if !(fc&0x20 == Tuint32_t(0)) { 49316 goto __2378 49317 } 49318 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49319 len9++ 49320 goto __2379 49321 __2378: 49322 if !(fc&0x10 == Tuint32_t(0)) { 49323 goto __2380 49324 } 49325 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49326 len9 = len9 + 2 49327 goto __2381 49328 __2380: 49329 if !(fc&0x08 == Tuint32_t(0)) { 49330 goto __2382 49331 } 49332 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49333 len9 = len9 + 3 49334 goto __2383 49335 __2382: 49336 if !(fc&0x04 == Tuint32_t(0)) { 49337 goto __2384 49338 } 49339 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49340 len9 = len9 + 4 49341 goto __2385 49342 __2384: 49343 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49344 len9 = len9 + 5 49345 __2385: 49346 ; 49347 __2383: 49348 ; 49349 __2381: 49350 ; 49351 __2379: 49352 ; 49353 __2377: 49354 ; 49355 49356 prop5 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 49357 ok6 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop5)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop5)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 49358 if !(ok6 == notmatch2) { 49359 goto __2386 49360 } 49361 goto __2373 49362 __2386: 49363 ; 49364 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len9) 49365 goto __2372 49366 __2372: 49367 i++ 49368 goto __2371 49369 goto __2373 49370 __2373: 49371 ; 49372 goto __2275 49373 49374 __2282: 49375 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49376 __2387: 49377 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49378 goto __2389 49379 } 49380 49381 len10 = 1 49382 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49383 goto __2390 49384 } 49385 49386 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49387 goto __2391 49388 } 49389 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49390 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49391 goto __2392 49392 } 49393 return -2 49394 __2392: 49395 ; 49396 __2391: 49397 ; 49398 49399 goto __2389 49400 __2390: 49401 ; 49402 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49403 if !(utf != 0 && fc >= 0xc0) { 49404 goto __2393 49405 } 49406 if !(fc&0x20 == Tuint32_t(0)) { 49407 goto __2394 49408 } 49409 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49410 len10++ 49411 goto __2395 49412 __2394: 49413 if !(fc&0x10 == Tuint32_t(0)) { 49414 goto __2396 49415 } 49416 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49417 len10 = len10 + 2 49418 goto __2397 49419 __2396: 49420 if !(fc&0x08 == Tuint32_t(0)) { 49421 goto __2398 49422 } 49423 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49424 len10 = len10 + 3 49425 goto __2399 49426 __2398: 49427 if !(fc&0x04 == Tuint32_t(0)) { 49428 goto __2400 49429 } 49430 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49431 len10 = len10 + 4 49432 goto __2401 49433 __2400: 49434 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49435 len10 = len10 + 5 49436 __2401: 49437 ; 49438 __2399: 49439 ; 49440 __2397: 49441 ; 49442 __2395: 49443 ; 49444 __2393: 49445 ; 49446 49447 category4 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 49448 if !(libc.Bool32(category4 == ucp_L || category4 == ucp_N) == notmatch2) { 49449 goto __2402 49450 } 49451 goto __2389 49452 __2402: 49453 ; 49454 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len10) 49455 goto __2388 49456 __2388: 49457 i++ 49458 goto __2387 49459 goto __2389 49460 __2389: 49461 ; 49462 goto __2275 49463 49464 // Perl space used to exclude VT, but from Perl 5.18 it is included, 49465 // which means that Perl space and POSIX space are now identical. PCRE 49466 // was changed at release 8.34. 49467 49468 __2283: // Perl space 49469 __2284: // POSIX space 49470 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49471 __2403: 49472 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49473 goto __2405 49474 } 49475 49476 len11 = 1 49477 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49478 goto __2406 49479 } 49480 49481 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49482 goto __2407 49483 } 49484 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49485 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49486 goto __2408 49487 } 49488 return -2 49489 __2408: 49490 ; 49491 __2407: 49492 ; 49493 49494 goto __2405 49495 __2406: 49496 ; 49497 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49498 if !(utf != 0 && fc >= 0xc0) { 49499 goto __2409 49500 } 49501 if !(fc&0x20 == Tuint32_t(0)) { 49502 goto __2410 49503 } 49504 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49505 len11++ 49506 goto __2411 49507 __2410: 49508 if !(fc&0x10 == Tuint32_t(0)) { 49509 goto __2412 49510 } 49511 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49512 len11 = len11 + 2 49513 goto __2413 49514 __2412: 49515 if !(fc&0x08 == Tuint32_t(0)) { 49516 goto __2414 49517 } 49518 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49519 len11 = len11 + 3 49520 goto __2415 49521 __2414: 49522 if !(fc&0x04 == Tuint32_t(0)) { 49523 goto __2416 49524 } 49525 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49526 len11 = len11 + 4 49527 goto __2417 49528 __2416: 49529 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49530 len11 = len11 + 5 49531 __2417: 49532 ; 49533 __2415: 49534 ; 49535 __2413: 49536 ; 49537 __2411: 49538 ; 49539 __2409: 49540 ; 49541 49542 switch fc { 49543 case Tuint32_t('\011'): 49544 goto __2419 49545 case Tuint32_t('\040'): 49546 goto __2420 49547 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 49548 goto __2421 49549 case Tuint32_t(0x1680): 49550 goto __2422 /* OGHAM SPACE MARK */ 49551 case Tuint32_t(0x180e): 49552 goto __2423 /* MONGOLIAN VOWEL SEPARATOR */ 49553 case Tuint32_t(0x2000): 49554 goto __2424 /* EN QUAD */ 49555 case Tuint32_t(0x2001): 49556 goto __2425 /* EM QUAD */ 49557 case Tuint32_t(0x2002): 49558 goto __2426 /* EN SPACE */ 49559 case Tuint32_t(0x2003): 49560 goto __2427 /* EM SPACE */ 49561 case Tuint32_t(0x2004): 49562 goto __2428 /* THREE-PER-EM SPACE */ 49563 case Tuint32_t(0x2005): 49564 goto __2429 /* FOUR-PER-EM SPACE */ 49565 case Tuint32_t(0x2006): 49566 goto __2430 /* SIX-PER-EM SPACE */ 49567 case Tuint32_t(0x2007): 49568 goto __2431 /* FIGURE SPACE */ 49569 case Tuint32_t(0x2008): 49570 goto __2432 /* PUNCTUATION SPACE */ 49571 case Tuint32_t(0x2009): 49572 goto __2433 /* THIN SPACE */ 49573 case Tuint32_t(0x200A): 49574 goto __2434 /* HAIR SPACE */ 49575 case Tuint32_t(0x202f): 49576 goto __2435 /* NARROW NO-BREAK SPACE */ 49577 case Tuint32_t(0x205f): 49578 goto __2436 /* MEDIUM MATHEMATICAL SPACE */ 49579 case Tuint32_t(0x3000): 49580 goto __2437 49581 case Tuint32_t('\012'): 49582 goto __2438 49583 case Tuint32_t('\013'): 49584 goto __2439 49585 case Tuint32_t('\014'): 49586 goto __2440 49587 case Tuint32_t('\015'): 49588 goto __2441 49589 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 49590 goto __2442 49591 case Tuint32_t(0x2028): 49592 goto __2443 /* LINE SEPARATOR */ 49593 case Tuint32_t(0x2029): 49594 goto __2444 49595 49596 default: 49597 goto __2445 49598 } 49599 goto __2418 49600 49601 __2419: 49602 __2420: 49603 __2421: 49604 __2422: /* OGHAM SPACE MARK */ 49605 __2423: /* MONGOLIAN VOWEL SEPARATOR */ 49606 __2424: /* EN QUAD */ 49607 __2425: /* EM QUAD */ 49608 __2426: /* EN SPACE */ 49609 __2427: /* EM SPACE */ 49610 __2428: /* THREE-PER-EM SPACE */ 49611 __2429: /* FOUR-PER-EM SPACE */ 49612 __2430: /* SIX-PER-EM SPACE */ 49613 __2431: /* FIGURE SPACE */ 49614 __2432: /* PUNCTUATION SPACE */ 49615 __2433: /* THIN SPACE */ 49616 __2434: /* HAIR SPACE */ 49617 __2435: /* NARROW NO-BREAK SPACE */ 49618 __2436: /* MEDIUM MATHEMATICAL SPACE */ 49619 __2437: 49620 __2438: 49621 __2439: 49622 __2440: 49623 __2441: 49624 __2442: 49625 __2443: /* LINE SEPARATOR */ 49626 __2444: 49627 if !(notmatch2 != 0) { 49628 goto __2446 49629 } 49630 goto ENDLOOP99 49631 __2446: 49632 ; // Break the loop 49633 goto __2418 49634 49635 __2445: 49636 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == notmatch2) { 49637 goto __2447 49638 } 49639 goto ENDLOOP99 49640 __2447: 49641 ; // Break the loop 49642 goto __2418 49643 __2418: 49644 ; 49645 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len11) 49646 goto __2404 49647 __2404: 49648 i++ 49649 goto __2403 49650 goto __2405 49651 __2405: 49652 ; 49653 ENDLOOP99: 49654 goto __2275 49655 49656 __2285: 49657 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49658 __2448: 49659 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49660 goto __2450 49661 } 49662 49663 len12 = 1 49664 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49665 goto __2451 49666 } 49667 49668 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49669 goto __2452 49670 } 49671 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49672 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49673 goto __2453 49674 } 49675 return -2 49676 __2453: 49677 ; 49678 __2452: 49679 ; 49680 49681 goto __2450 49682 __2451: 49683 ; 49684 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49685 if !(utf != 0 && fc >= 0xc0) { 49686 goto __2454 49687 } 49688 if !(fc&0x20 == Tuint32_t(0)) { 49689 goto __2455 49690 } 49691 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49692 len12++ 49693 goto __2456 49694 __2455: 49695 if !(fc&0x10 == Tuint32_t(0)) { 49696 goto __2457 49697 } 49698 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49699 len12 = len12 + 2 49700 goto __2458 49701 __2457: 49702 if !(fc&0x08 == Tuint32_t(0)) { 49703 goto __2459 49704 } 49705 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49706 len12 = len12 + 3 49707 goto __2460 49708 __2459: 49709 if !(fc&0x04 == Tuint32_t(0)) { 49710 goto __2461 49711 } 49712 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49713 len12 = len12 + 4 49714 goto __2462 49715 __2461: 49716 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49717 len12 = len12 + 5 49718 __2462: 49719 ; 49720 __2460: 49721 ; 49722 __2458: 49723 ; 49724 __2456: 49725 ; 49726 __2454: 49727 ; 49728 49729 category5 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 49730 if !(libc.Bool32(category5 == ucp_L || category5 == ucp_N || fc == Tuint32_t('\137')) == notmatch2) { 49731 goto __2463 49732 } 49733 goto __2450 49734 __2463: 49735 ; 49736 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len12) 49737 goto __2449 49738 __2449: 49739 i++ 49740 goto __2448 49741 goto __2450 49742 __2450: 49743 ; 49744 goto __2275 49745 49746 __2286: 49747 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49748 __2464: 49749 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49750 goto __2466 49751 } 49752 49753 len13 = 1 49754 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49755 goto __2467 49756 } 49757 49758 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49759 goto __2468 49760 } 49761 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49762 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49763 goto __2469 49764 } 49765 return -2 49766 __2469: 49767 ; 49768 __2468: 49769 ; 49770 49771 goto __2466 49772 __2467: 49773 ; 49774 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49775 if !(utf != 0 && fc >= 0xc0) { 49776 goto __2470 49777 } 49778 if !(fc&0x20 == Tuint32_t(0)) { 49779 goto __2471 49780 } 49781 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49782 len13++ 49783 goto __2472 49784 __2471: 49785 if !(fc&0x10 == Tuint32_t(0)) { 49786 goto __2473 49787 } 49788 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49789 len13 = len13 + 2 49790 goto __2474 49791 __2473: 49792 if !(fc&0x08 == Tuint32_t(0)) { 49793 goto __2475 49794 } 49795 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49796 len13 = len13 + 3 49797 goto __2476 49798 __2475: 49799 if !(fc&0x04 == Tuint32_t(0)) { 49800 goto __2477 49801 } 49802 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49803 len13 = len13 + 4 49804 goto __2478 49805 __2477: 49806 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49807 len13 = len13 + 5 49808 __2478: 49809 ; 49810 __2476: 49811 ; 49812 __2474: 49813 ; 49814 __2472: 49815 ; 49816 __2470: 49817 ; 49818 49819 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4)))*4 49820 __2479: 49821 49822 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 49823 goto __2482 49824 } 49825 if !(notmatch2 != 0) { 49826 goto __2483 49827 } 49828 goto __2481 49829 goto __2484 49830 __2483: 49831 goto GOT_MAX 49832 __2484: 49833 ; 49834 __2482: 49835 ; 49836 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 49837 goto __2485 49838 } 49839 if !(notmatch2 != 0) { 49840 goto __2486 49841 } 49842 goto GOT_MAX 49843 goto __2487 49844 __2486: 49845 goto __2481 49846 __2487: 49847 ; 49848 __2485: 49849 ; 49850 goto __2480 49851 __2480: 49852 goto __2479 49853 goto __2481 49854 __2481: 49855 ; 49856 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len13) 49857 goto __2465 49858 __2465: 49859 i++ 49860 goto __2464 49861 goto __2466 49862 __2466: 49863 ; 49864 GOT_MAX: 49865 goto __2275 49866 49867 __2287: 49868 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49869 __2488: 49870 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49871 goto __2490 49872 } 49873 49874 len14 = 1 49875 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49876 goto __2491 49877 } 49878 49879 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49880 goto __2492 49881 } 49882 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49883 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49884 goto __2493 49885 } 49886 return -2 49887 __2493: 49888 ; 49889 __2492: 49890 ; 49891 49892 goto __2490 49893 __2491: 49894 ; 49895 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49896 if !(utf != 0 && fc >= 0xc0) { 49897 goto __2494 49898 } 49899 if !(fc&0x20 == Tuint32_t(0)) { 49900 goto __2495 49901 } 49902 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49903 len14++ 49904 goto __2496 49905 __2495: 49906 if !(fc&0x10 == Tuint32_t(0)) { 49907 goto __2497 49908 } 49909 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49910 len14 = len14 + 2 49911 goto __2498 49912 __2497: 49913 if !(fc&0x08 == Tuint32_t(0)) { 49914 goto __2499 49915 } 49916 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49917 len14 = len14 + 3 49918 goto __2500 49919 __2499: 49920 if !(fc&0x04 == Tuint32_t(0)) { 49921 goto __2501 49922 } 49923 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49924 len14 = len14 + 4 49925 goto __2502 49926 __2501: 49927 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49928 len14 = len14 + 5 49929 __2502: 49930 ; 49931 __2500: 49932 ; 49933 __2498: 49934 ; 49935 __2496: 49936 ; 49937 __2494: 49938 ; 49939 49940 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch2) { 49941 goto __2503 49942 } 49943 goto __2490 49944 __2503: 49945 ; 49946 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len14) 49947 goto __2489 49948 __2489: 49949 i++ 49950 goto __2488 49951 goto __2490 49952 __2490: 49953 ; 49954 goto __2275 49955 49956 __2288: 49957 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 49958 __2504: 49959 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 49960 goto __2506 49961 } 49962 49963 len15 = 1 49964 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49965 goto __2507 49966 } 49967 49968 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49969 goto __2508 49970 } 49971 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49972 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49973 goto __2509 49974 } 49975 return -2 49976 __2509: 49977 ; 49978 __2508: 49979 ; 49980 49981 goto __2506 49982 __2507: 49983 ; 49984 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49985 if !(utf != 0 && fc >= 0xc0) { 49986 goto __2510 49987 } 49988 if !(fc&0x20 == Tuint32_t(0)) { 49989 goto __2511 49990 } 49991 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49992 len15++ 49993 goto __2512 49994 __2511: 49995 if !(fc&0x10 == Tuint32_t(0)) { 49996 goto __2513 49997 } 49998 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49999 len15 = len15 + 2 50000 goto __2514 50001 __2513: 50002 if !(fc&0x08 == Tuint32_t(0)) { 50003 goto __2515 50004 } 50005 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50006 len15 = len15 + 3 50007 goto __2516 50008 __2515: 50009 if !(fc&0x04 == Tuint32_t(0)) { 50010 goto __2517 50011 } 50012 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50013 len15 = len15 + 4 50014 goto __2518 50015 __2517: 50016 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50017 len15 = len15 + 5 50018 __2518: 50019 ; 50020 __2516: 50021 ; 50022 __2514: 50023 ; 50024 __2512: 50025 ; 50026 __2510: 50027 ; 50028 50029 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))) == notmatch2) { 50030 goto __2519 50031 } 50032 goto __2506 50033 __2519: 50034 ; 50035 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len15) 50036 goto __2505 50037 __2505: 50038 i++ 50039 goto __2504 50040 goto __2506 50041 __2506: 50042 ; 50043 goto __2275 50044 50045 __2289: 50046 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50047 __2520: 50048 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50049 goto __2522 50050 } 50051 50052 len16 = 1 50053 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50054 goto __2523 50055 } 50056 50057 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50058 goto __2524 50059 } 50060 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50061 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50062 goto __2525 50063 } 50064 return -2 50065 __2525: 50066 ; 50067 __2524: 50068 ; 50069 50070 goto __2522 50071 __2523: 50072 ; 50073 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50074 if !(utf != 0 && fc >= 0xc0) { 50075 goto __2526 50076 } 50077 if !(fc&0x20 == Tuint32_t(0)) { 50078 goto __2527 50079 } 50080 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50081 len16++ 50082 goto __2528 50083 __2527: 50084 if !(fc&0x10 == Tuint32_t(0)) { 50085 goto __2529 50086 } 50087 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50088 len16 = len16 + 2 50089 goto __2530 50090 __2529: 50091 if !(fc&0x08 == Tuint32_t(0)) { 50092 goto __2531 50093 } 50094 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50095 len16 = len16 + 3 50096 goto __2532 50097 __2531: 50098 if !(fc&0x04 == Tuint32_t(0)) { 50099 goto __2533 50100 } 50101 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50102 len16 = len16 + 4 50103 goto __2534 50104 __2533: 50105 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50106 len16 = len16 + 5 50107 __2534: 50108 ; 50109 __2532: 50110 ; 50111 __2530: 50112 ; 50113 __2528: 50114 ; 50115 __2526: 50116 ; 50117 50118 prop6 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 50119 ok7 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop6)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 50120 if !(ok7 == notmatch2) { 50121 goto __2535 50122 } 50123 goto __2522 50124 __2535: 50125 ; 50126 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len16) 50127 goto __2521 50128 __2521: 50129 i++ 50130 goto __2520 50131 goto __2522 50132 __2522: 50133 ; 50134 goto __2275 50135 50136 __2290: 50137 return -44 50138 __2275: 50139 ; 50140 50141 // Feptr is now past the end of the maximum run 50142 50143 if !(reptype == REPTYPE_POS) { 50144 goto __2536 50145 } 50146 goto __11 50147 __2536: 50148 ; // No backtracking 50149 50150 // After \C in UTF mode, Lstart_eptr might be in the middle of a 50151 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 50152 // go too far. 50153 50154 __2537: 50155 50156 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 50157 goto __2540 50158 } 50159 goto __2539 50160 __2540: 50161 ; 50162 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50163 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM222 50164 goto MATCH_RECURSE 50165 L_RM222: 50166 ; 50167 50168 if !(rrc != DMATCH_NOMATCH) { 50169 goto __2541 50170 } 50171 rrc = rrc 50172 goto RETURN_SWITCH 50173 __2541: 50174 ; 50175 50176 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50177 if !(utf != 0) { 50178 goto __2542 50179 } 50180 __2543: 50181 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50182 goto __2544 50183 } 50184 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50185 goto __2543 50186 __2544: 50187 ; 50188 __2542: 50189 ; 50190 goto __2538 50191 __2538: 50192 goto __2537 50193 goto __2539 50194 __2539: 50195 ; 50196 goto __2274 50197 __2273: 50198 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_EXTUNI) { 50199 goto __2545 50200 } 50201 50202 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50203 __2547: 50204 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50205 goto __2549 50206 } 50207 50208 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50209 goto __2550 50210 } 50211 50212 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50213 goto __2552 50214 } 50215 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50216 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50217 goto __2553 50218 } 50219 return -2 50220 __2553: 50221 ; 50222 __2552: 50223 ; 50224 50225 goto __2549 50226 goto __2551 50227 __2550: 50228 50229 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 50230 if !(utf != 0 && fc >= 0xc0) { 50231 goto __2554 50232 } 50233 if !(fc&0x20 == Tuint32_t(0)) { 50234 goto __2555 50235 } 50236 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 50237 goto __2556 50238 __2555: 50239 if !(fc&0x10 == Tuint32_t(0)) { 50240 goto __2557 50241 } 50242 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50243 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(2) 50244 goto __2558 50245 __2557: 50246 if !(fc&0x08 == Tuint32_t(0)) { 50247 goto __2559 50248 } 50249 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50250 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(3) 50251 goto __2560 50252 __2559: 50253 if !(fc&0x04 == Tuint32_t(0)) { 50254 goto __2561 50255 } 50256 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50257 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(4) 50258 goto __2562 50259 __2561: 50260 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50261 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += uintptr(5) 50262 __2562: 50263 ; 50264 __2560: 50265 ; 50266 __2558: 50267 ; 50268 __2556: 50269 ; 50270 __2554: 50271 ; 50272 50273 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, 50274 utf, uintptr(0)) 50275 __2551: 50276 ; 50277 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50278 goto __2563 50279 } 50280 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50281 goto __2564 50282 } 50283 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50284 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50285 goto __2565 50286 } 50287 return -2 50288 __2565: 50289 ; 50290 __2564: 50291 ; 50292 __2563: 50293 ; 50294 50295 goto __2548 50296 __2548: 50297 i++ 50298 goto __2547 50299 goto __2549 50300 __2549: 50301 ; 50302 50303 // Feptr is now past the end of the maximum run 50304 50305 if !(reptype == REPTYPE_POS) { 50306 goto __2566 50307 } 50308 goto __11 50309 __2566: 50310 ; // No backtracking 50311 50312 // We use <= Lstart_eptr rather than == Lstart_eptr to detect the start 50313 // of the run while backtracking because the use of \C in UTF mode can 50314 // cause BACKCHAR to move back past Lstart_eptr. This is just palliative; 50315 // the use of \C in UTF mode is fraught with danger. 50316 50317 __2567: 50318 50319 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 50320 goto __2570 50321 } 50322 goto __2569 50323 __2570: 50324 ; /* At start of char run */ 50325 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50326 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM220 50327 goto MATCH_RECURSE 50328 L_RM220: 50329 ; 50330 50331 if !(rrc != DMATCH_NOMATCH) { 50332 goto __2571 50333 } 50334 rrc = rrc 50335 goto RETURN_SWITCH 50336 __2571: 50337 ; 50338 50339 // Backtracking over an extended grapheme cluster involves inspecting 50340 // the previous two characters (if present) to see if a break is 50341 // permitted between them. 50342 50343 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50344 if !!(utf != 0) { 50345 goto __2572 50346 } 50347 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50348 goto __2573 50349 __2572: 50350 50351 __2574: 50352 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50353 goto __2575 50354 } 50355 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50356 goto __2574 50357 __2575: 50358 ; 50359 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50360 if !(fc >= 0xc0) { 50361 goto __2576 50362 } 50363 if !(fc&0x20 == Tuint32_t(0)) { 50364 goto __2577 50365 } 50366 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50367 goto __2578 50368 __2577: 50369 if !(fc&0x10 == Tuint32_t(0)) { 50370 goto __2579 50371 } 50372 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50373 goto __2580 50374 __2579: 50375 if !(fc&0x08 == Tuint32_t(0)) { 50376 goto __2581 50377 } 50378 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50379 goto __2582 50380 __2581: 50381 if !(fc&0x04 == Tuint32_t(0)) { 50382 goto __2583 50383 } 50384 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50385 goto __2584 50386 __2583: 50387 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50388 __2584: 50389 ; 50390 __2582: 50391 ; 50392 __2580: 50393 ; 50394 __2578: 50395 ; 50396 __2576: 50397 ; 50398 50399 __2573: 50400 ; 50401 rgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 50402 50403 __2585: 50404 50405 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 50406 goto __2588 50407 } 50408 goto __2587 50409 __2588: 50410 ; // At start of char run 50411 fptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 50412 if !!(utf != 0) { 50413 goto __2589 50414 } 50415 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50416 goto __2590 50417 __2589: 50418 50419 __2591: 50420 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr)))&0xc0 == 0x80) { 50421 goto __2592 50422 } 50423 fptr-- 50424 goto __2591 50425 __2592: 50426 ; 50427 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50428 if !(fc >= 0xc0) { 50429 goto __2593 50430 } 50431 if !(fc&0x20 == Tuint32_t(0)) { 50432 goto __2594 50433 } 50434 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f 50435 goto __2595 50436 __2594: 50437 if !(fc&0x10 == Tuint32_t(0)) { 50438 goto __2596 50439 } 50440 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f 50441 goto __2597 50442 __2596: 50443 if !(fc&0x08 == Tuint32_t(0)) { 50444 goto __2598 50445 } 50446 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f 50447 goto __2599 50448 __2598: 50449 if !(fc&0x04 == Tuint32_t(0)) { 50450 goto __2600 50451 } 50452 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 4)))&0x3f 50453 goto __2601 50454 __2600: 50455 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 5)))&0x3f 50456 __2601: 50457 ; 50458 __2599: 50459 ; 50460 __2597: 50461 ; 50462 __2595: 50463 ; 50464 __2593: 50465 ; 50466 50467 __2590: 50468 ; 50469 lgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 50470 if !(X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0)) { 50471 goto __2602 50472 } 50473 goto __2587 50474 __2602: 50475 ; 50476 (*Theapframe)(unsafe.Pointer(F)).Feptr = fptr 50477 rgb = lgb 50478 goto __2586 50479 __2586: 50480 goto __2585 50481 goto __2587 50482 __2587: 50483 ; 50484 goto __2568 50485 __2568: 50486 goto __2567 50487 goto __2569 50488 __2569: 50489 ; 50490 goto __2546 50491 __2545: 50492 50493 if !(utf != 0) { 50494 goto __2603 50495 } 50496 50497 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 50498 case OP_ANY: 50499 goto __2606 50500 50501 case OP_ALLANY: 50502 goto __2607 50503 50504 // The "byte" (i.e. "code unit") case is the same as non-UTF 50505 50506 case OP_ANYBYTE: 50507 goto __2608 50508 50509 case OP_ANYNL: 50510 goto __2609 50511 50512 case OP_NOT_HSPACE: 50513 goto __2610 50514 case OP_HSPACE: 50515 goto __2611 50516 50517 case OP_NOT_VSPACE: 50518 goto __2612 50519 case OP_VSPACE: 50520 goto __2613 50521 50522 case OP_NOT_DIGIT: 50523 goto __2614 50524 50525 case OP_DIGIT: 50526 goto __2615 50527 50528 case OP_NOT_WHITESPACE: 50529 goto __2616 50530 50531 case OP_WHITESPACE: 50532 goto __2617 50533 50534 case OP_NOT_WORDCHAR: 50535 goto __2618 50536 50537 case OP_WORDCHAR: 50538 goto __2619 50539 50540 default: 50541 goto __2620 50542 } 50543 goto __2605 50544 50545 __2606: 50546 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50547 __2621: 50548 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50549 goto __2623 50550 } 50551 50552 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50553 goto __2624 50554 } 50555 50556 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50557 goto __2625 50558 } 50559 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50560 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50561 goto __2626 50562 } 50563 return -2 50564 __2626: 50565 ; 50566 __2625: 50567 ; 50568 50569 goto __2623 50570 __2624: 50571 ; 50572 if !(func() int32 { 50573 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 50574 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 50575 } 50576 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 50577 }() != 0) { 50578 goto __2627 50579 } 50580 goto __2623 50581 __2627: 50582 ; 50583 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 50584 goto __2628 50585 } 50586 50587 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50588 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50589 goto __2629 50590 } 50591 return -2 50592 __2629: 50593 ; 50594 __2628: 50595 ; 50596 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50597 __2630: 50598 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50599 goto __2631 50600 } 50601 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50602 goto __2630 50603 __2631: 50604 ; 50605 goto __2622 50606 __2622: 50607 i++ 50608 goto __2621 50609 goto __2623 50610 __2623: 50611 ; 50612 goto __2605 50613 50614 __2607: 50615 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) < 4294967295) { 50616 goto __2632 50617 } 50618 50619 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50620 __2634: 50621 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50622 goto __2636 50623 } 50624 50625 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50626 goto __2637 50627 } 50628 50629 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50630 goto __2638 50631 } 50632 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50633 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50634 goto __2639 50635 } 50636 return -2 50637 __2639: 50638 ; 50639 __2638: 50640 ; 50641 50642 goto __2636 50643 __2637: 50644 ; 50645 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50646 __2640: 50647 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50648 goto __2641 50649 } 50650 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50651 goto __2640 50652 __2641: 50653 ; 50654 goto __2635 50655 __2635: 50656 i++ 50657 goto __2634 50658 goto __2636 50659 __2636: 50660 ; 50661 goto __2633 50662 __2632: 50663 50664 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject // Unlimited UTF-8 repeat 50665 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50666 goto __2642 50667 } 50668 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50669 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50670 goto __2643 50671 } 50672 return -2 50673 __2643: 50674 ; 50675 __2642: 50676 ; 50677 50678 __2633: 50679 ; 50680 goto __2605 50681 50682 // The "byte" (i.e. "code unit") case is the same as non-UTF 50683 50684 __2608: 50685 fc = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50686 if !(fc > Tuint32_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int32((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 50687 goto __2644 50688 } 50689 50690 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 50691 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50692 goto __2646 50693 } 50694 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50695 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50696 goto __2647 50697 } 50698 return -2 50699 __2647: 50700 ; 50701 __2646: 50702 ; 50703 50704 goto __2645 50705 __2644: 50706 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(fc) 50707 __2645: 50708 ; 50709 goto __2605 50710 50711 __2609: 50712 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50713 __2648: 50714 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50715 goto __2650 50716 } 50717 50718 len17 = 1 50719 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50720 goto __2651 50721 } 50722 50723 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50724 goto __2652 50725 } 50726 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50727 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50728 goto __2653 50729 } 50730 return -2 50731 __2653: 50732 ; 50733 __2652: 50734 ; 50735 50736 goto __2650 50737 __2651: 50738 ; 50739 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50740 if !(fc >= 0xc0) { 50741 goto __2654 50742 } 50743 if !(fc&0x20 == Tuint32_t(0)) { 50744 goto __2655 50745 } 50746 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50747 len17++ 50748 goto __2656 50749 __2655: 50750 if !(fc&0x10 == Tuint32_t(0)) { 50751 goto __2657 50752 } 50753 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50754 len17 = len17 + 2 50755 goto __2658 50756 __2657: 50757 if !(fc&0x08 == Tuint32_t(0)) { 50758 goto __2659 50759 } 50760 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50761 len17 = len17 + 3 50762 goto __2660 50763 __2659: 50764 if !(fc&0x04 == Tuint32_t(0)) { 50765 goto __2661 50766 } 50767 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50768 len17 = len17 + 4 50769 goto __2662 50770 __2661: 50771 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50772 len17 = len17 + 5 50773 __2662: 50774 ; 50775 __2660: 50776 ; 50777 __2658: 50778 ; 50779 __2656: 50780 ; 50781 __2654: 50782 ; 50783 50784 if !(fc == Tuint32_t('\015')) { 50785 goto __2663 50786 } 50787 50788 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50789 goto __2665 50790 } 50791 goto __2650 50792 __2665: 50793 ; 50794 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 50795 goto __2666 50796 } 50797 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50798 __2666: 50799 ; 50800 goto __2664 50801 __2663: 50802 50803 if !(fc != Tuint32_t('\012') && (int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF || fc != Tuint32_t('\013') && fc != Tuint32_t('\014') && fc != libc.Uint32FromUint8(libc.Uint8FromInt32(133)) && 50804 fc != Tuint32_t(0x2028) && fc != Tuint32_t(0x2029))) { 50805 goto __2667 50806 } 50807 goto __2650 50808 __2667: 50809 ; 50810 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len17) 50811 __2664: 50812 ; 50813 goto __2649 50814 __2649: 50815 i++ 50816 goto __2648 50817 goto __2650 50818 __2650: 50819 ; 50820 goto __2605 50821 50822 __2610: 50823 __2611: 50824 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50825 __2668: 50826 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50827 goto __2670 50828 } 50829 50830 len18 = 1 50831 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50832 goto __2671 50833 } 50834 50835 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50836 goto __2672 50837 } 50838 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50839 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50840 goto __2673 50841 } 50842 return -2 50843 __2673: 50844 ; 50845 __2672: 50846 ; 50847 50848 goto __2670 50849 __2671: 50850 ; 50851 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50852 if !(fc >= 0xc0) { 50853 goto __2674 50854 } 50855 if !(fc&0x20 == Tuint32_t(0)) { 50856 goto __2675 50857 } 50858 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50859 len18++ 50860 goto __2676 50861 __2675: 50862 if !(fc&0x10 == Tuint32_t(0)) { 50863 goto __2677 50864 } 50865 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50866 len18 = len18 + 2 50867 goto __2678 50868 __2677: 50869 if !(fc&0x08 == Tuint32_t(0)) { 50870 goto __2679 50871 } 50872 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50873 len18 = len18 + 3 50874 goto __2680 50875 __2679: 50876 if !(fc&0x04 == Tuint32_t(0)) { 50877 goto __2681 50878 } 50879 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50880 len18 = len18 + 4 50881 goto __2682 50882 __2681: 50883 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50884 len18 = len18 + 5 50885 __2682: 50886 ; 50887 __2680: 50888 ; 50889 __2678: 50890 ; 50891 __2676: 50892 ; 50893 __2674: 50894 ; 50895 50896 switch fc { 50897 case Tuint32_t('\011'): 50898 goto __2684 50899 case Tuint32_t('\040'): 50900 goto __2685 50901 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 50902 goto __2686 50903 case Tuint32_t(0x1680): 50904 goto __2687 /* OGHAM SPACE MARK */ 50905 case Tuint32_t(0x180e): 50906 goto __2688 /* MONGOLIAN VOWEL SEPARATOR */ 50907 case Tuint32_t(0x2000): 50908 goto __2689 /* EN QUAD */ 50909 case Tuint32_t(0x2001): 50910 goto __2690 /* EM QUAD */ 50911 case Tuint32_t(0x2002): 50912 goto __2691 /* EN SPACE */ 50913 case Tuint32_t(0x2003): 50914 goto __2692 /* EM SPACE */ 50915 case Tuint32_t(0x2004): 50916 goto __2693 /* THREE-PER-EM SPACE */ 50917 case Tuint32_t(0x2005): 50918 goto __2694 /* FOUR-PER-EM SPACE */ 50919 case Tuint32_t(0x2006): 50920 goto __2695 /* SIX-PER-EM SPACE */ 50921 case Tuint32_t(0x2007): 50922 goto __2696 /* FIGURE SPACE */ 50923 case Tuint32_t(0x2008): 50924 goto __2697 /* PUNCTUATION SPACE */ 50925 case Tuint32_t(0x2009): 50926 goto __2698 /* THIN SPACE */ 50927 case Tuint32_t(0x200A): 50928 goto __2699 /* HAIR SPACE */ 50929 case Tuint32_t(0x202f): 50930 goto __2700 /* NARROW NO-BREAK SPACE */ 50931 case Tuint32_t(0x205f): 50932 goto __2701 /* MEDIUM MATHEMATICAL SPACE */ 50933 case Tuint32_t(0x3000): 50934 goto __2702 50935 default: 50936 goto __2703 50937 } 50938 goto __2683 50939 50940 __2684: 50941 __2685: 50942 __2686: 50943 __2687: /* OGHAM SPACE MARK */ 50944 __2688: /* MONGOLIAN VOWEL SEPARATOR */ 50945 __2689: /* EN QUAD */ 50946 __2690: /* EM QUAD */ 50947 __2691: /* EN SPACE */ 50948 __2692: /* EM SPACE */ 50949 __2693: /* THREE-PER-EM SPACE */ 50950 __2694: /* FOUR-PER-EM SPACE */ 50951 __2695: /* SIX-PER-EM SPACE */ 50952 __2696: /* FIGURE SPACE */ 50953 __2697: /* PUNCTUATION SPACE */ 50954 __2698: /* THIN SPACE */ 50955 __2699: /* HAIR SPACE */ 50956 __2700: /* NARROW NO-BREAK SPACE */ 50957 __2701: /* MEDIUM MATHEMATICAL SPACE */ 50958 __2702: 50959 gotspace = DTRUE 50960 goto __2683 50961 __2703: 50962 gotspace = DFALSE 50963 goto __2683 50964 __2683: 50965 ; 50966 if !(gotspace == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOT_HSPACE)) { 50967 goto __2704 50968 } 50969 goto __2670 50970 __2704: 50971 ; 50972 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len18) 50973 goto __2669 50974 __2669: 50975 i++ 50976 goto __2668 50977 goto __2670 50978 __2670: 50979 ; 50980 goto __2605 50981 50982 __2612: 50983 __2613: 50984 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 50985 __2705: 50986 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 50987 goto __2707 50988 } 50989 50990 len19 = 1 50991 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50992 goto __2708 50993 } 50994 50995 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50996 goto __2709 50997 } 50998 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50999 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51000 goto __2710 51001 } 51002 return -2 51003 __2710: 51004 ; 51005 __2709: 51006 ; 51007 51008 goto __2707 51009 __2708: 51010 ; 51011 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51012 if !(fc >= 0xc0) { 51013 goto __2711 51014 } 51015 if !(fc&0x20 == Tuint32_t(0)) { 51016 goto __2712 51017 } 51018 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51019 len19++ 51020 goto __2713 51021 __2712: 51022 if !(fc&0x10 == Tuint32_t(0)) { 51023 goto __2714 51024 } 51025 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51026 len19 = len19 + 2 51027 goto __2715 51028 __2714: 51029 if !(fc&0x08 == Tuint32_t(0)) { 51030 goto __2716 51031 } 51032 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51033 len19 = len19 + 3 51034 goto __2717 51035 __2716: 51036 if !(fc&0x04 == Tuint32_t(0)) { 51037 goto __2718 51038 } 51039 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51040 len19 = len19 + 4 51041 goto __2719 51042 __2718: 51043 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51044 len19 = len19 + 5 51045 __2719: 51046 ; 51047 __2717: 51048 ; 51049 __2715: 51050 ; 51051 __2713: 51052 ; 51053 __2711: 51054 ; 51055 51056 switch fc { 51057 case Tuint32_t('\012'): 51058 goto __2721 51059 case Tuint32_t('\013'): 51060 goto __2722 51061 case Tuint32_t('\014'): 51062 goto __2723 51063 case Tuint32_t('\015'): 51064 goto __2724 51065 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 51066 goto __2725 51067 case Tuint32_t(0x2028): 51068 goto __2726 /* LINE SEPARATOR */ 51069 case Tuint32_t(0x2029): 51070 goto __2727 51071 default: 51072 goto __2728 51073 } 51074 goto __2720 51075 51076 __2721: 51077 __2722: 51078 __2723: 51079 __2724: 51080 __2725: 51081 __2726: /* LINE SEPARATOR */ 51082 __2727: 51083 gotspace1 = DTRUE 51084 goto __2720 51085 __2728: 51086 gotspace1 = DFALSE 51087 goto __2720 51088 __2720: 51089 ; 51090 if !(gotspace1 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_NOT_VSPACE)) { 51091 goto __2729 51092 } 51093 goto __2707 51094 __2729: 51095 ; 51096 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len19) 51097 goto __2706 51098 __2706: 51099 i++ 51100 goto __2705 51101 goto __2707 51102 __2707: 51103 ; 51104 goto __2605 51105 51106 __2614: 51107 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51108 __2730: 51109 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51110 goto __2732 51111 } 51112 51113 len20 = 1 51114 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51115 goto __2733 51116 } 51117 51118 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51119 goto __2734 51120 } 51121 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51122 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51123 goto __2735 51124 } 51125 return -2 51126 __2735: 51127 ; 51128 __2734: 51129 ; 51130 51131 goto __2732 51132 __2733: 51133 ; 51134 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51135 if !(fc >= 0xc0) { 51136 goto __2736 51137 } 51138 if !(fc&0x20 == Tuint32_t(0)) { 51139 goto __2737 51140 } 51141 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51142 len20++ 51143 goto __2738 51144 __2737: 51145 if !(fc&0x10 == Tuint32_t(0)) { 51146 goto __2739 51147 } 51148 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51149 len20 = len20 + 2 51150 goto __2740 51151 __2739: 51152 if !(fc&0x08 == Tuint32_t(0)) { 51153 goto __2741 51154 } 51155 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51156 len20 = len20 + 3 51157 goto __2742 51158 __2741: 51159 if !(fc&0x04 == Tuint32_t(0)) { 51160 goto __2743 51161 } 51162 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51163 len20 = len20 + 4 51164 goto __2744 51165 __2743: 51166 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51167 len20 = len20 + 5 51168 __2744: 51169 ; 51170 __2742: 51171 ; 51172 __2740: 51173 ; 51174 __2738: 51175 ; 51176 __2736: 51177 ; 51178 51179 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 51180 goto __2745 51181 } 51182 goto __2732 51183 __2745: 51184 ; 51185 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len20) 51186 goto __2731 51187 __2731: 51188 i++ 51189 goto __2730 51190 goto __2732 51191 __2732: 51192 ; 51193 goto __2605 51194 51195 __2615: 51196 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51197 __2746: 51198 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51199 goto __2748 51200 } 51201 51202 len21 = 1 51203 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51204 goto __2749 51205 } 51206 51207 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51208 goto __2750 51209 } 51210 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51211 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51212 goto __2751 51213 } 51214 return -2 51215 __2751: 51216 ; 51217 __2750: 51218 ; 51219 51220 goto __2748 51221 __2749: 51222 ; 51223 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51224 if !(fc >= 0xc0) { 51225 goto __2752 51226 } 51227 if !(fc&0x20 == Tuint32_t(0)) { 51228 goto __2753 51229 } 51230 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51231 len21++ 51232 goto __2754 51233 __2753: 51234 if !(fc&0x10 == Tuint32_t(0)) { 51235 goto __2755 51236 } 51237 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51238 len21 = len21 + 2 51239 goto __2756 51240 __2755: 51241 if !(fc&0x08 == Tuint32_t(0)) { 51242 goto __2757 51243 } 51244 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51245 len21 = len21 + 3 51246 goto __2758 51247 __2757: 51248 if !(fc&0x04 == Tuint32_t(0)) { 51249 goto __2759 51250 } 51251 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51252 len21 = len21 + 4 51253 goto __2760 51254 __2759: 51255 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51256 len21 = len21 + 5 51257 __2760: 51258 ; 51259 __2758: 51260 ; 51261 __2756: 51262 ; 51263 __2754: 51264 ; 51265 __2752: 51266 ; 51267 51268 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 51269 goto __2761 51270 } 51271 goto __2748 51272 __2761: 51273 ; 51274 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len21) 51275 goto __2747 51276 __2747: 51277 i++ 51278 goto __2746 51279 goto __2748 51280 __2748: 51281 ; 51282 goto __2605 51283 51284 __2616: 51285 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51286 __2762: 51287 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51288 goto __2764 51289 } 51290 51291 len22 = 1 51292 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51293 goto __2765 51294 } 51295 51296 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51297 goto __2766 51298 } 51299 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51300 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51301 goto __2767 51302 } 51303 return -2 51304 __2767: 51305 ; 51306 __2766: 51307 ; 51308 51309 goto __2764 51310 __2765: 51311 ; 51312 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51313 if !(fc >= 0xc0) { 51314 goto __2768 51315 } 51316 if !(fc&0x20 == Tuint32_t(0)) { 51317 goto __2769 51318 } 51319 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51320 len22++ 51321 goto __2770 51322 __2769: 51323 if !(fc&0x10 == Tuint32_t(0)) { 51324 goto __2771 51325 } 51326 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51327 len22 = len22 + 2 51328 goto __2772 51329 __2771: 51330 if !(fc&0x08 == Tuint32_t(0)) { 51331 goto __2773 51332 } 51333 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51334 len22 = len22 + 3 51335 goto __2774 51336 __2773: 51337 if !(fc&0x04 == Tuint32_t(0)) { 51338 goto __2775 51339 } 51340 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51341 len22 = len22 + 4 51342 goto __2776 51343 __2775: 51344 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51345 len22 = len22 + 5 51346 __2776: 51347 ; 51348 __2774: 51349 ; 51350 __2772: 51351 ; 51352 __2770: 51353 ; 51354 __2768: 51355 ; 51356 51357 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 51358 goto __2777 51359 } 51360 goto __2764 51361 __2777: 51362 ; 51363 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len22) 51364 goto __2763 51365 __2763: 51366 i++ 51367 goto __2762 51368 goto __2764 51369 __2764: 51370 ; 51371 goto __2605 51372 51373 __2617: 51374 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51375 __2778: 51376 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51377 goto __2780 51378 } 51379 51380 len23 = 1 51381 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51382 goto __2781 51383 } 51384 51385 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51386 goto __2782 51387 } 51388 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51389 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51390 goto __2783 51391 } 51392 return -2 51393 __2783: 51394 ; 51395 __2782: 51396 ; 51397 51398 goto __2780 51399 __2781: 51400 ; 51401 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51402 if !(fc >= 0xc0) { 51403 goto __2784 51404 } 51405 if !(fc&0x20 == Tuint32_t(0)) { 51406 goto __2785 51407 } 51408 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51409 len23++ 51410 goto __2786 51411 __2785: 51412 if !(fc&0x10 == Tuint32_t(0)) { 51413 goto __2787 51414 } 51415 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51416 len23 = len23 + 2 51417 goto __2788 51418 __2787: 51419 if !(fc&0x08 == Tuint32_t(0)) { 51420 goto __2789 51421 } 51422 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51423 len23 = len23 + 3 51424 goto __2790 51425 __2789: 51426 if !(fc&0x04 == Tuint32_t(0)) { 51427 goto __2791 51428 } 51429 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51430 len23 = len23 + 4 51431 goto __2792 51432 __2791: 51433 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51434 len23 = len23 + 5 51435 __2792: 51436 ; 51437 __2790: 51438 ; 51439 __2788: 51440 ; 51441 __2786: 51442 ; 51443 __2784: 51444 ; 51445 51446 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 51447 goto __2793 51448 } 51449 goto __2780 51450 __2793: 51451 ; 51452 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len23) 51453 goto __2779 51454 __2779: 51455 i++ 51456 goto __2778 51457 goto __2780 51458 __2780: 51459 ; 51460 goto __2605 51461 51462 __2618: 51463 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51464 __2794: 51465 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51466 goto __2796 51467 } 51468 51469 len24 = 1 51470 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51471 goto __2797 51472 } 51473 51474 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51475 goto __2798 51476 } 51477 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51478 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51479 goto __2799 51480 } 51481 return -2 51482 __2799: 51483 ; 51484 __2798: 51485 ; 51486 51487 goto __2796 51488 __2797: 51489 ; 51490 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51491 if !(fc >= 0xc0) { 51492 goto __2800 51493 } 51494 if !(fc&0x20 == Tuint32_t(0)) { 51495 goto __2801 51496 } 51497 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51498 len24++ 51499 goto __2802 51500 __2801: 51501 if !(fc&0x10 == Tuint32_t(0)) { 51502 goto __2803 51503 } 51504 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51505 len24 = len24 + 2 51506 goto __2804 51507 __2803: 51508 if !(fc&0x08 == Tuint32_t(0)) { 51509 goto __2805 51510 } 51511 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51512 len24 = len24 + 3 51513 goto __2806 51514 __2805: 51515 if !(fc&0x04 == Tuint32_t(0)) { 51516 goto __2807 51517 } 51518 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51519 len24 = len24 + 4 51520 goto __2808 51521 __2807: 51522 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51523 len24 = len24 + 5 51524 __2808: 51525 ; 51526 __2806: 51527 ; 51528 __2804: 51529 ; 51530 __2802: 51531 ; 51532 __2800: 51533 ; 51534 51535 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 51536 goto __2809 51537 } 51538 goto __2796 51539 __2809: 51540 ; 51541 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len24) 51542 goto __2795 51543 __2795: 51544 i++ 51545 goto __2794 51546 goto __2796 51547 __2796: 51548 ; 51549 goto __2605 51550 51551 __2619: 51552 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51553 __2810: 51554 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51555 goto __2812 51556 } 51557 51558 len25 = 1 51559 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51560 goto __2813 51561 } 51562 51563 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51564 goto __2814 51565 } 51566 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51567 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51568 goto __2815 51569 } 51570 return -2 51571 __2815: 51572 ; 51573 __2814: 51574 ; 51575 51576 goto __2812 51577 __2813: 51578 ; 51579 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51580 if !(fc >= 0xc0) { 51581 goto __2816 51582 } 51583 if !(fc&0x20 == Tuint32_t(0)) { 51584 goto __2817 51585 } 51586 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51587 len25++ 51588 goto __2818 51589 __2817: 51590 if !(fc&0x10 == Tuint32_t(0)) { 51591 goto __2819 51592 } 51593 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51594 len25 = len25 + 2 51595 goto __2820 51596 __2819: 51597 if !(fc&0x08 == Tuint32_t(0)) { 51598 goto __2821 51599 } 51600 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51601 len25 = len25 + 3 51602 goto __2822 51603 __2821: 51604 if !(fc&0x04 == Tuint32_t(0)) { 51605 goto __2823 51606 } 51607 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51608 len25 = len25 + 4 51609 goto __2824 51610 __2823: 51611 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51612 len25 = len25 + 5 51613 __2824: 51614 ; 51615 __2822: 51616 ; 51617 __2820: 51618 ; 51619 __2818: 51620 ; 51621 __2816: 51622 ; 51623 51624 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 51625 goto __2825 51626 } 51627 goto __2812 51628 __2825: 51629 ; 51630 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(len25) 51631 goto __2811 51632 __2811: 51633 i++ 51634 goto __2810 51635 goto __2812 51636 __2812: 51637 ; 51638 goto __2605 51639 51640 __2620: 51641 return -44 51642 __2605: 51643 ; 51644 51645 if !(reptype == REPTYPE_POS) { 51646 goto __2826 51647 } 51648 goto __11 51649 __2826: 51650 ; // No backtracking 51651 51652 // After \C in UTF mode, Lstart_eptr might be in the middle of a 51653 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't go 51654 // too far. 51655 51656 __2827: 51657 51658 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 51659 goto __2830 51660 } 51661 goto __2829 51662 __2830: 51663 ; 51664 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 51665 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM221 51666 goto MATCH_RECURSE 51667 L_RM221: 51668 ; 51669 51670 if !(rrc != DMATCH_NOMATCH) { 51671 goto __2831 51672 } 51673 rrc = rrc 51674 goto RETURN_SWITCH 51675 __2831: 51676 ; 51677 51678 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51679 __2832: 51680 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 51681 goto __2833 51682 } 51683 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51684 goto __2832 51685 __2833: 51686 ; 51687 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1)))) == '\015') { 51688 goto __2834 51689 } 51690 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51691 __2834: 51692 ; 51693 goto __2828 51694 __2828: 51695 goto __2827 51696 goto __2829 51697 __2829: 51698 ; 51699 goto __2604 51700 __2603: 51701 51702 /* Not UTF mode */ 51703 51704 switch *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) { 51705 case OP_ANY: 51706 goto __2836 51707 51708 case OP_ALLANY: 51709 goto __2837 51710 case OP_ANYBYTE: 51711 goto __2838 51712 51713 case OP_ANYNL: 51714 goto __2839 51715 51716 case OP_NOT_HSPACE: 51717 goto __2840 51718 51719 case OP_HSPACE: 51720 goto __2841 51721 51722 case OP_NOT_VSPACE: 51723 goto __2842 51724 51725 case OP_VSPACE: 51726 goto __2843 51727 51728 case OP_NOT_DIGIT: 51729 goto __2844 51730 51731 case OP_DIGIT: 51732 goto __2845 51733 51734 case OP_NOT_WHITESPACE: 51735 goto __2846 51736 51737 case OP_WHITESPACE: 51738 goto __2847 51739 51740 case OP_NOT_WORDCHAR: 51741 goto __2848 51742 51743 case OP_WORDCHAR: 51744 goto __2849 51745 51746 default: 51747 goto __2850 51748 } 51749 goto __2835 51750 51751 __2836: 51752 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51753 __2851: 51754 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51755 goto __2853 51756 } 51757 51758 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51759 goto __2854 51760 } 51761 51762 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51763 goto __2855 51764 } 51765 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51766 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51767 goto __2856 51768 } 51769 return -2 51770 __2856: 51771 ; 51772 __2855: 51773 ; 51774 51775 goto __2853 51776 __2854: 51777 ; 51778 if !(func() int32 { 51779 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 51780 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 51781 } 51782 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 51783 }() != 0) { 51784 goto __2857 51785 } 51786 goto __2853 51787 __2857: 51788 ; 51789 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 51790 goto __2858 51791 } 51792 51793 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51794 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51795 goto __2859 51796 } 51797 return -2 51798 __2859: 51799 ; 51800 __2858: 51801 ; 51802 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51803 goto __2852 51804 __2852: 51805 i++ 51806 goto __2851 51807 goto __2853 51808 __2853: 51809 ; 51810 goto __2835 51811 51812 __2837: 51813 __2838: 51814 fc = *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51815 if !(fc > Tuint32_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int32((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 51816 goto __2860 51817 } 51818 51819 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 51820 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51821 goto __2862 51822 } 51823 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51824 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51825 goto __2863 51826 } 51827 return -2 51828 __2863: 51829 ; 51830 __2862: 51831 ; 51832 51833 goto __2861 51834 __2860: 51835 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(fc) 51836 __2861: 51837 ; 51838 goto __2835 51839 51840 __2839: 51841 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51842 __2864: 51843 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51844 goto __2866 51845 } 51846 51847 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51848 goto __2867 51849 } 51850 51851 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51852 goto __2868 51853 } 51854 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51855 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51856 goto __2869 51857 } 51858 return -2 51859 __2869: 51860 ; 51861 __2868: 51862 ; 51863 51864 goto __2866 51865 __2867: 51866 ; 51867 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51868 if !(fc == Tuint32_t('\015')) { 51869 goto __2870 51870 } 51871 51872 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51873 goto __2872 51874 } 51875 goto __2866 51876 __2872: 51877 ; 51878 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 51879 goto __2873 51880 } 51881 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51882 __2873: 51883 ; 51884 goto __2871 51885 __2870: 51886 51887 if !(fc != Tuint32_t('\012') && (int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF || fc != Tuint32_t('\013') && fc != Tuint32_t('\014') && fc != libc.Uint32FromUint8(libc.Uint8FromInt32(133)))) { 51888 goto __2874 51889 } 51890 goto __2866 51891 __2874: 51892 ; 51893 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51894 __2871: 51895 ; 51896 goto __2865 51897 __2865: 51898 i++ 51899 goto __2864 51900 goto __2866 51901 __2866: 51902 ; 51903 goto __2835 51904 51905 __2840: 51906 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51907 __2875: 51908 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51909 goto __2877 51910 } 51911 51912 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51913 goto __2878 51914 } 51915 51916 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51917 goto __2879 51918 } 51919 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51920 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51921 goto __2880 51922 } 51923 return -2 51924 __2880: 51925 ; 51926 __2879: 51927 ; 51928 51929 goto __2877 51930 __2878: 51931 ; 51932 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 51933 default: 51934 goto __2882 51935 case '\011': 51936 goto __2883 51937 case '\040': 51938 goto __2884 51939 case int32(libc.Uint8FromInt32(160)): 51940 goto __2885 51941 } 51942 goto __2881 51943 51944 __2882: 51945 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51946 goto __2881 51947 __2883: 51948 __2884: 51949 __2885: 51950 goto ENDLOOP00 51951 __2881: 51952 ; 51953 goto __2876 51954 __2876: 51955 i++ 51956 goto __2875 51957 goto __2877 51958 __2877: 51959 ; 51960 ENDLOOP00: 51961 goto __2835 51962 51963 __2841: 51964 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 51965 __2886: 51966 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 51967 goto __2888 51968 } 51969 51970 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51971 goto __2889 51972 } 51973 51974 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51975 goto __2890 51976 } 51977 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51978 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51979 goto __2891 51980 } 51981 return -2 51982 __2891: 51983 ; 51984 __2890: 51985 ; 51986 51987 goto __2888 51988 __2889: 51989 ; 51990 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 51991 default: 51992 goto __2893 51993 case '\011': 51994 goto __2894 51995 case '\040': 51996 goto __2895 51997 case int32(libc.Uint8FromInt32(160)): 51998 goto __2896 51999 } 52000 goto __2892 52001 52002 __2893: 52003 goto ENDLOOP01 52004 __2894: 52005 __2895: 52006 __2896: 52007 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52008 goto __2892 52009 __2892: 52010 ; 52011 goto __2887 52012 __2887: 52013 i++ 52014 goto __2886 52015 goto __2888 52016 __2888: 52017 ; 52018 ENDLOOP01: 52019 goto __2835 52020 52021 __2842: 52022 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52023 __2897: 52024 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52025 goto __2899 52026 } 52027 52028 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52029 goto __2900 52030 } 52031 52032 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52033 goto __2901 52034 } 52035 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52036 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52037 goto __2902 52038 } 52039 return -2 52040 __2902: 52041 ; 52042 __2901: 52043 ; 52044 52045 goto __2899 52046 __2900: 52047 ; 52048 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52049 default: 52050 goto __2904 52051 case '\012': 52052 goto __2905 52053 case '\013': 52054 goto __2906 52055 case '\014': 52056 goto __2907 52057 case '\015': 52058 goto __2908 52059 case int32(libc.Uint8FromInt32(133)): 52060 goto __2909 52061 } 52062 goto __2903 52063 52064 __2904: 52065 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52066 goto __2903 52067 __2905: 52068 __2906: 52069 __2907: 52070 __2908: 52071 __2909: 52072 goto ENDLOOP02 52073 __2903: 52074 ; 52075 goto __2898 52076 __2898: 52077 i++ 52078 goto __2897 52079 goto __2899 52080 __2899: 52081 ; 52082 ENDLOOP02: 52083 goto __2835 52084 52085 __2843: 52086 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52087 __2910: 52088 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52089 goto __2912 52090 } 52091 52092 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52093 goto __2913 52094 } 52095 52096 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52097 goto __2914 52098 } 52099 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52100 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52101 goto __2915 52102 } 52103 return -2 52104 __2915: 52105 ; 52106 __2914: 52107 ; 52108 52109 goto __2912 52110 __2913: 52111 ; 52112 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52113 default: 52114 goto __2917 52115 case '\012': 52116 goto __2918 52117 case '\013': 52118 goto __2919 52119 case '\014': 52120 goto __2920 52121 case '\015': 52122 goto __2921 52123 case int32(libc.Uint8FromInt32(133)): 52124 goto __2922 52125 } 52126 goto __2916 52127 52128 __2917: 52129 goto ENDLOOP03 52130 __2918: 52131 __2919: 52132 __2920: 52133 __2921: 52134 __2922: 52135 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52136 goto __2916 52137 __2916: 52138 ; 52139 goto __2911 52140 __2911: 52141 i++ 52142 goto __2910 52143 goto __2912 52144 __2912: 52145 ; 52146 ENDLOOP03: 52147 goto __2835 52148 52149 __2844: 52150 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52151 __2923: 52152 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52153 goto __2925 52154 } 52155 52156 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52157 goto __2926 52158 } 52159 52160 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52161 goto __2927 52162 } 52163 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52164 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52165 goto __2928 52166 } 52167 return -2 52168 __2928: 52169 ; 52170 __2927: 52171 ; 52172 52173 goto __2925 52174 __2926: 52175 ; 52176 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit != 0) { 52177 goto __2929 52178 } 52179 goto __2925 52180 __2929: 52181 ; 52182 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52183 goto __2924 52184 __2924: 52185 i++ 52186 goto __2923 52187 goto __2925 52188 __2925: 52189 ; 52190 goto __2835 52191 52192 __2845: 52193 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52194 __2930: 52195 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52196 goto __2932 52197 } 52198 52199 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52200 goto __2933 52201 } 52202 52203 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52204 goto __2934 52205 } 52206 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52207 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52208 goto __2935 52209 } 52210 return -2 52211 __2935: 52212 ; 52213 __2934: 52214 ; 52215 52216 goto __2932 52217 __2933: 52218 ; 52219 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit == 0) { 52220 goto __2936 52221 } 52222 goto __2932 52223 __2936: 52224 ; 52225 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52226 goto __2931 52227 __2931: 52228 i++ 52229 goto __2930 52230 goto __2932 52231 __2932: 52232 ; 52233 goto __2835 52234 52235 __2846: 52236 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52237 __2937: 52238 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52239 goto __2939 52240 } 52241 52242 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52243 goto __2940 52244 } 52245 52246 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52247 goto __2941 52248 } 52249 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52250 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52251 goto __2942 52252 } 52253 return -2 52254 __2942: 52255 ; 52256 __2941: 52257 ; 52258 52259 goto __2939 52260 __2940: 52261 ; 52262 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space != 0) { 52263 goto __2943 52264 } 52265 goto __2939 52266 __2943: 52267 ; 52268 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52269 goto __2938 52270 __2938: 52271 i++ 52272 goto __2937 52273 goto __2939 52274 __2939: 52275 ; 52276 goto __2835 52277 52278 __2847: 52279 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52280 __2944: 52281 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52282 goto __2946 52283 } 52284 52285 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52286 goto __2947 52287 } 52288 52289 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52290 goto __2948 52291 } 52292 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52293 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52294 goto __2949 52295 } 52296 return -2 52297 __2949: 52298 ; 52299 __2948: 52300 ; 52301 52302 goto __2946 52303 __2947: 52304 ; 52305 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space == 0) { 52306 goto __2950 52307 } 52308 goto __2946 52309 __2950: 52310 ; 52311 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52312 goto __2945 52313 __2945: 52314 i++ 52315 goto __2944 52316 goto __2946 52317 __2946: 52318 ; 52319 goto __2835 52320 52321 __2848: 52322 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52323 __2951: 52324 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52325 goto __2953 52326 } 52327 52328 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52329 goto __2954 52330 } 52331 52332 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52333 goto __2955 52334 } 52335 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52336 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52337 goto __2956 52338 } 52339 return -2 52340 __2956: 52341 ; 52342 __2955: 52343 ; 52344 52345 goto __2953 52346 __2954: 52347 ; 52348 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word != 0) { 52349 goto __2957 52350 } 52351 goto __2953 52352 __2957: 52353 ; 52354 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52355 goto __2952 52356 __2952: 52357 i++ 52358 goto __2951 52359 goto __2953 52360 __2953: 52361 ; 52362 goto __2835 52363 52364 __2849: 52365 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52366 __2958: 52367 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52368 goto __2960 52369 } 52370 52371 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52372 goto __2961 52373 } 52374 52375 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52376 goto __2962 52377 } 52378 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52379 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52380 goto __2963 52381 } 52382 return -2 52383 __2963: 52384 ; 52385 __2962: 52386 ; 52387 52388 goto __2960 52389 __2961: 52390 ; 52391 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word == 0) { 52392 goto __2964 52393 } 52394 goto __2960 52395 __2964: 52396 ; 52397 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52398 goto __2959 52399 __2959: 52400 i++ 52401 goto __2958 52402 goto __2960 52403 __2960: 52404 ; 52405 goto __2835 52406 52407 __2850: 52408 return -44 52409 __2835: 52410 ; 52411 52412 if !(reptype == REPTYPE_POS) { 52413 goto __2965 52414 } 52415 goto __11 52416 __2965: 52417 ; // No backtracking 52418 52419 __2966: 52420 52421 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 52422 goto __2969 52423 } 52424 goto __2968 52425 __2969: 52426 ; 52427 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52428 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM34 52429 goto MATCH_RECURSE 52430 L_RM34: 52431 ; 52432 52433 if !(rrc != DMATCH_NOMATCH) { 52434 goto __2970 52435 } 52436 rrc = rrc 52437 goto RETURN_SWITCH 52438 __2970: 52439 ; 52440 52441 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52442 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + libc.UintptrFromInt32(-1)))) == '\015') { 52443 goto __2971 52444 } 52445 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52446 __2971: 52447 ; 52448 goto __2967 52449 __2967: 52450 goto __2966 52451 goto __2968 52452 __2968: 52453 ; 52454 __2604: 52455 ; 52456 __2546: 52457 ; 52458 __2274: 52459 ; 52460 __1781: 52461 ; 52462 goto __13 // End of repeat character type processing 52463 52464 // ===================================================================== 52465 // Match a back reference, possibly repeatedly. Look past the end of the 52466 // item to see if there is repeat information following. The OP_REF and 52467 // OP_REFI opcodes are used for a reference to a numbered group or to a 52468 // non-duplicated named group. For a duplicated named group, OP_DNREF and 52469 // OP_DNREFI are used. In this case we must scan the list of groups to which 52470 // the name refers, and use the first one that is set. 52471 52472 __107: 52473 __108: 52474 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_DNREFI)) 52475 52476 count = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 52477 slot = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 52478 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52479 52480 __2972: 52481 if !(libc.PostDecInt32(&count, 1) > 0) { 52482 goto __2973 52483 } 52484 52485 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1))))<<1 - uint32(2)) 52486 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*4)) != libc.CplUint32(Tsize_t(0))) { 52487 goto __2974 52488 } 52489 goto __2973 52490 __2974: 52491 ; 52492 slot += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 52493 goto __2972 52494 __2973: 52495 ; 52496 52497 goto REF_REPEAT 52498 52499 __109: 52500 __110: 52501 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_REFI)) 52502 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))<<1 - uint32(2)) 52503 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 52504 52505 // Set up for repetition, or handle the non-repeated case. The maximum and 52506 // minimum must be in the heap frame, but as they are short-term values, we 52507 // use temporary fields. 52508 52509 REF_REPEAT: 52510 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 52511 case OP_CRSTAR: 52512 goto __2976 52513 case OP_CRMINSTAR: 52514 goto __2977 52515 case OP_CRPLUS: 52516 goto __2978 52517 case OP_CRMINPLUS: 52518 goto __2979 52519 case OP_CRQUERY: 52520 goto __2980 52521 case OP_CRMINQUERY: 52522 goto __2981 52523 52524 case OP_CRRANGE: 52525 goto __2982 52526 case OP_CRMINRANGE: 52527 goto __2983 52528 52529 default: 52530 goto __2984 52531 } 52532 goto __2975 52533 52534 __2976: 52535 __2977: 52536 __2978: 52537 __2979: 52538 __2980: 52539 __2981: 52540 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 52541 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = rep_min[fc] 52542 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = rep_max[fc] 52543 reptype = rep_typ[fc] 52544 goto __2975 52545 52546 __2982: 52547 __2983: 52548 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 52549 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 52550 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 52551 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) == Tuint32_t(0)) { 52552 goto __2985 52553 } 52554 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = 4294967295 52555 __2985: 52556 ; // Max 0 => infinity 52557 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52558 goto __2975 52559 52560 __2984: /* No repeat follows */ 52561 52562 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))), F, mb, bp) 52563 if !(rrc != 0) { 52564 goto __2986 52565 } 52566 52567 if !(rrc > 0) { 52568 goto __2987 52569 } 52570 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52571 __2987: 52572 ; // Partial match 52573 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52574 goto __2988 52575 } 52576 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52577 goto __2989 52578 } 52579 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52580 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52581 goto __2990 52582 } 52583 return -2 52584 __2990: 52585 ; 52586 __2989: 52587 ; 52588 __2988: 52589 ; 52590 52591 rrc = DMATCH_NOMATCH 52592 goto RETURN_SWITCH 52593 52594 __2986: 52595 ; 52596 52597 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 52598 goto __11 // With the main loop 52599 __2975: 52600 ; 52601 52602 // Handle repeated back references. If a set group has length zero, just 52603 // continue with the main loop, because it matches however many times. For an 52604 // unset reference, if the minimum is zero, we can also just continue. We can 52605 // also continue if PCRE2_MATCH_UNSET_BACKREF is set, because this makes unset 52606 // group behave as a zero-length group. For any other unset cases, carrying 52607 // on will result in NOMATCH. 52608 52609 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*4)) != libc.CplUint32(Tsize_t(0))) { 52610 goto __2991 52611 } 52612 52613 if !(*(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*4)) == *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+Tsize_t(1))*4))) { 52614 goto __2993 52615 } 52616 goto __11 52617 __2993: 52618 ; 52619 goto __2992 52620 __2991: /* Group is not set */ 52621 52622 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == Tuint32_t(0) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 52623 goto __2994 52624 } 52625 goto __11 52626 __2994: 52627 ; 52628 __2992: 52629 ; 52630 52631 // First, ensure the minimum number of matches are present. 52632 52633 i = Tuint32_t(1) 52634 __2995: 52635 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 32))) { 52636 goto __2997 52637 } 52638 52639 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))), F, mb, bp+4) 52640 if !(rrc != 0) { 52641 goto __2998 52642 } 52643 52644 if !(rrc > 0) { 52645 goto __2999 52646 } 52647 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52648 __2999: 52649 ; // Partial match 52650 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52651 goto __3000 52652 } 52653 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52654 goto __3001 52655 } 52656 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52657 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52658 goto __3002 52659 } 52660 return -2 52661 __3002: 52662 ; 52663 __3001: 52664 ; 52665 __3000: 52666 ; 52667 52668 rrc = DMATCH_NOMATCH 52669 goto RETURN_SWITCH 52670 52671 __2998: 52672 ; 52673 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 4))) 52674 goto __2996 52675 __2996: 52676 i++ 52677 goto __2995 52678 goto __2997 52679 __2997: 52680 ; 52681 52682 // If min = max, we are done. They are not both allowed to be zero. 52683 52684 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32)) == *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52685 goto __3003 52686 } 52687 goto __11 52688 __3003: 52689 ; 52690 52691 // If minimizing, keep trying and advancing the pointer. 52692 52693 if !(reptype == REPTYPE_MIN) { 52694 goto __3004 52695 } 52696 52697 __3006: 52698 52699 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52700 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM20 52701 goto MATCH_RECURSE 52702 L_RM20: 52703 ; 52704 52705 if !(rrc != DMATCH_NOMATCH) { 52706 goto __3009 52707 } 52708 rrc = rrc 52709 goto RETURN_SWITCH 52710 __3009: 52711 ; 52712 52713 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 32)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52714 goto __3010 52715 } 52716 rrc = DMATCH_NOMATCH 52717 goto RETURN_SWITCH 52718 __3010: 52719 ; 52720 52721 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))), F, mb, bp+8) 52722 if !(rrc != 0) { 52723 goto __3011 52724 } 52725 52726 if !(rrc > 0) { 52727 goto __3012 52728 } 52729 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52730 __3012: 52731 ; // Partial match 52732 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52733 goto __3013 52734 } 52735 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52736 goto __3014 52737 } 52738 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52739 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52740 goto __3015 52741 } 52742 return -2 52743 __3015: 52744 ; 52745 __3014: 52746 ; 52747 __3013: 52748 ; 52749 52750 rrc = DMATCH_NOMATCH 52751 goto RETURN_SWITCH 52752 52753 __3011: 52754 ; 52755 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 8))) 52756 goto __3007 52757 __3007: 52758 goto __3006 52759 goto __3008 52760 __3008: 52761 ; 52762 // Control never gets here 52763 goto __3005 52764 __3004: 52765 samelengths = DTRUE 52766 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Starting position 52767 (*Theapframe)(unsafe.Pointer(F)).Flength = *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+Tsize_t(1))*4)) - *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*4)) 52768 52769 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52770 __3016: 52771 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52772 goto __3018 52773 } 52774 52775 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))), F, mb, bp+12) 52776 if !(rrc != 0) { 52777 goto __3019 52778 } 52779 52780 // Can't use CHECK_PARTIAL because we don't want to update Feptr in 52781 // the soft partial matching case. 52782 52783 if !(rrc > 0 && int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 52784 goto __3020 52785 } 52786 52787 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52788 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52789 goto __3021 52790 } 52791 return -2 52792 __3021: 52793 ; 52794 __3020: 52795 ; 52796 goto __3018 52797 __3019: 52798 ; 52799 52800 if !(*(*Tsize_t)(unsafe.Pointer(bp + 12)) != (*Theapframe)(unsafe.Pointer(F)).Flength) { 52801 goto __3022 52802 } 52803 samelengths = DFALSE 52804 __3022: 52805 ; 52806 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 12))) 52807 goto __3017 52808 __3017: 52809 i++ 52810 goto __3016 52811 goto __3018 52812 __3018: 52813 ; 52814 52815 // If the length matched for each repetition is the same as the length of 52816 // the captured group, we can easily work backwards. This is the normal 52817 // case. However, in caseless UTF-8 mode there are pairs of case-equivalent 52818 // characters whose lengths (in terms of code units) differ. However, this 52819 // is very rare, so we handle it by re-matching fewer and fewer times. 52820 52821 if !(samelengths != 0) { 52822 goto __3023 52823 } 52824 52825 __3025: 52826 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 52827 goto __3026 52828 } 52829 52830 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52831 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM21 52832 goto MATCH_RECURSE 52833 L_RM21: 52834 ; 52835 52836 if !(rrc != DMATCH_NOMATCH) { 52837 goto __3027 52838 } 52839 rrc = rrc 52840 goto RETURN_SWITCH 52841 __3027: 52842 ; 52843 52844 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) -= TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 52845 goto __3025 52846 __3026: 52847 ; 52848 goto __3024 52849 __3023: 52850 52851 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = i 52852 __3028: 52853 52854 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52855 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM22 52856 goto MATCH_RECURSE 52857 L_RM22: 52858 ; 52859 52860 if !(rrc != DMATCH_NOMATCH) { 52861 goto __3031 52862 } 52863 rrc = rrc 52864 goto RETURN_SWITCH 52865 __3031: 52866 ; 52867 52868 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 52869 goto __3032 52870 } 52871 goto __3030 52872 __3032: 52873 ; // Failed after minimal repetition 52874 (*Theapframe)(unsafe.Pointer(F)).Feptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) 52875 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))-- 52876 i = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 52877 __3033: 52878 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4))) { 52879 goto __3035 52880 } 52881 52882 match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4))), F, mb, bp+16) 52883 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 16))) 52884 goto __3034 52885 __3034: 52886 i++ 52887 goto __3033 52888 goto __3035 52889 __3035: 52890 ; 52891 goto __3029 52892 __3029: 52893 goto __3028 52894 goto __3030 52895 __3030: 52896 ; 52897 __3024: 52898 ; 52899 52900 rrc = DMATCH_NOMATCH 52901 goto RETURN_SWITCH 52902 52903 __3005: 52904 ; 52905 // Control never gets here 52906 52907 // ========================================================================= 52908 // Opcodes for the start of various parenthesized items 52909 // ========================================================================= 52910 52911 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 52912 // (*THEN) is within the current branch by comparing the address of OP_THEN 52913 // that is passed back with the end of the branch. If (*THEN) is within the 52914 // current branch, and the branch is one of two or more alternatives (it 52915 // either starts or ends with OP_ALT), we have reached the limit of THEN's 52916 // action, so convert the return code to NOMATCH, which will cause normal 52917 // backtracking to happen from now on. Otherwise, THEN is passed back to an 52918 // outer alternative. This implements Perl's treatment of parenthesized 52919 // groups, where a group not containing | does not affect the current 52920 // alternative, that is, (X) is NOT the same as (X|(*F)). 52921 52922 // ===================================================================== 52923 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 52924 // bracket group, indicating that it may occur zero times. It may repeat 52925 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 52926 // the pattern. Brackets with fixed upper repeat limits are compiled as a 52927 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 52928 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 52929 52930 __111: 52931 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52932 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) 52933 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM9 52934 goto MATCH_RECURSE 52935 L_RM9: 52936 ; 52937 52938 if !(rrc != DMATCH_NOMATCH) { 52939 goto __3036 52940 } 52941 rrc = rrc 52942 goto RETURN_SWITCH 52943 __3036: 52944 ; 52945 52946 __3037: 52947 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 2))))) 52948 goto __3038 52949 __3038: 52950 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) == OP_ALT { 52951 goto __3037 52952 } 52953 goto __3039 52954 __3039: 52955 ; 52956 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + uintptr(1) + uintptr(DLINK_SIZE) 52957 goto __13 52958 52959 __112: 52960 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52961 __3040: 52962 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 2))))) 52963 goto __3041 52964 __3041: 52965 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) == OP_ALT { 52966 goto __3040 52967 } 52968 goto __3042 52969 __3042: 52970 ; 52971 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + uintptr(1) + uintptr(DLINK_SIZE) 52972 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM10 52973 goto MATCH_RECURSE 52974 L_RM10: 52975 ; 52976 52977 if !(rrc != DMATCH_NOMATCH) { 52978 goto __3043 52979 } 52980 rrc = rrc 52981 goto RETURN_SWITCH 52982 __3043: 52983 ; 52984 52985 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 52986 goto __13 52987 52988 __113: 52989 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 52990 __3044: 52991 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 52992 goto __3045 52993 __3045: 52994 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 52995 goto __3044 52996 } 52997 goto __3046 52998 __3046: 52999 ; 53000 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53001 goto __13 53002 53003 // ===================================================================== 53004 // Handle possessive brackets with an unlimited repeat. The end of these 53005 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 53006 // going further in the pattern. 53007 53008 __114: 53009 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(DTRUE) // Zero repeat is allowed 53010 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(1) 53011 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_SCBRAPOS) { 53012 goto __3047 53013 } 53014 goto POSSESSIVE_CAPTURE 53015 __3047: 53016 ; 53017 goto POSSESSIVE_NON_CAPTURE 53018 53019 __115: 53020 __116: 53021 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53022 53023 POSSESSIVE_NON_CAPTURE: 53024 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_NOCAPTURE // Remembered frame type 53025 goto POSSESSIVE_GROUP 53026 53027 __117: 53028 __118: 53029 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53030 53031 POSSESSIVE_CAPTURE: 53032 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 53033 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_CAPTURE | number // Remembered frame type 53034 53035 POSSESSIVE_GROUP: 53036 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = Tuint32_t(DFALSE) // Never matched 53037 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode // Start of this group 53038 53039 __3048: 53040 53041 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Position at group start 53042 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 53043 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53044 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM8 53045 goto MATCH_RECURSE 53046 L_RM8: 53047 ; 53048 53049 if !(rrc == -998) { 53050 goto __3051 53051 } 53052 53053 *(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) = Tuint32_t(DTRUE) // Matched at least once 53054 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))) { 53055 goto __3052 53056 } /* Empty match; skip to end */ 53057 53058 __3053: 53059 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53060 goto __3054 53061 __3054: 53062 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53063 goto __3053 53064 } 53065 goto __3055 53066 __3055: 53067 ; 53068 goto __3050 53069 __3052: 53070 ; 53071 53072 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4 + 1*4)) 53073 goto __3049 53074 __3051: 53075 ; 53076 53077 // See comment above about handling THEN. 53078 53079 if !(rrc == -993) { 53080 goto __3056 53081 } 53082 53083 next_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53084 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode))) == OP_ALT)) { 53085 goto __3057 53086 } 53087 rrc = DMATCH_NOMATCH 53088 __3057: 53089 ; 53090 __3056: 53091 ; 53092 53093 if !(rrc != DMATCH_NOMATCH) { 53094 goto __3058 53095 } 53096 rrc = rrc 53097 goto RETURN_SWITCH 53098 __3058: 53099 ; 53100 53101 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53102 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53103 goto __3059 53104 } 53105 goto __3050 53106 __3059: 53107 ; 53108 goto __3049 53109 __3049: 53110 goto __3048 53111 goto __3050 53112 __3050: 53113 ; 53114 53115 // Success if matched something or zero repeat allowed 53116 53117 if !(*(*Tuint32_t)(unsafe.Pointer(F + 32 + 1*4)) != 0 || *(*Tuint32_t)(unsafe.Pointer(F + 32 + 2*4)) != 0) { 53118 goto __3060 53119 } 53120 53121 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53122 goto __13 53123 __3060: 53124 ; 53125 53126 rrc = DMATCH_NOMATCH 53127 goto RETURN_SWITCH 53128 53129 // ===================================================================== 53130 // Handle non-capturing brackets that cannot match an empty string. When we 53131 // get to the final alternative within the brackets, as long as there are no 53132 // THEN's in the pattern, we can optimize by not recording a new backtracking 53133 // point. (Ideally we should test for a THEN within this group, but we don't 53134 // have that information.) Don't do this if we are at the very top level, 53135 // however, because that would make handling assertions and once-only brackets 53136 // messier when there is nothing to go back to. 53137 53138 __119: 53139 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen != 0 || (*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 53140 goto __3061 53141 } 53142 53143 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(0) 53144 goto GROUPLOOP 53145 __3061: 53146 ; 53147 53148 __3062: 53149 53150 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53151 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) != OP_ALT) { 53152 goto __3065 53153 } 53154 goto __3064 53155 __3065: 53156 ; 53157 53158 /* This is never the final branch. We do not need to test for MATCH_THEN 53159 here because this code is not used when there is a THEN in the pattern. */ 53160 53161 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53162 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM1 53163 goto MATCH_RECURSE 53164 L_RM1: 53165 ; 53166 53167 if !(rrc != DMATCH_NOMATCH) { 53168 goto __3066 53169 } 53170 rrc = rrc 53171 goto RETURN_SWITCH 53172 __3066: 53173 ; 53174 53175 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) 53176 goto __3063 53177 __3063: 53178 goto __3062 53179 goto __3064 53180 __3064: 53181 ; 53182 53183 // Hit the start of the final branch. Continue at this level. 53184 53185 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53186 goto __13 53187 53188 // ===================================================================== 53189 // Handle a capturing bracket, other than those that are possessive with an 53190 // unlimited repeat. 53191 53192 __120: 53193 __121: 53194 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_CAPTURE | uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 53195 goto GROUPLOOP 53196 53197 // ===================================================================== 53198 // Atomic groups and non-capturing brackets that can match an empty string 53199 // must record a backtracking point and also set up a chained frame. 53200 53201 __122: 53202 __123: 53203 __124: 53204 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53205 53206 GROUPLOOP: 53207 __3067: 53208 53209 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 53210 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53211 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM2 53212 goto MATCH_RECURSE 53213 L_RM2: 53214 ; 53215 53216 if !(rrc == -993) { 53217 goto __3070 53218 } 53219 53220 next_ecode1 = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53221 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode1 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode1))) == OP_ALT)) { 53222 goto __3071 53223 } 53224 rrc = DMATCH_NOMATCH 53225 __3071: 53226 ; 53227 __3070: 53228 ; 53229 if !(rrc != DMATCH_NOMATCH) { 53230 goto __3072 53231 } 53232 rrc = rrc 53233 goto RETURN_SWITCH 53234 __3072: 53235 ; 53236 53237 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53238 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53239 goto __3073 53240 } 53241 rrc = DMATCH_NOMATCH 53242 goto RETURN_SWITCH 53243 __3073: 53244 ; 53245 53246 goto __3068 53247 __3068: 53248 goto __3067 53249 goto __3069 53250 __3069: 53251 ; 53252 // Control never reaches here. 53253 53254 // ===================================================================== 53255 // Recursion either matches the current regex, or some subexpression. The 53256 // offset data is the offset to the starting bracket from the start of the 53257 // whole pattern. (This is so that it works from duplicated subpatterns.) 53258 53259 __125: 53260 bracode = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53261 if bracode == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code { 53262 number = uint32(0) 53263 } else { 53264 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 53265 } 53266 53267 // If we are already in a recursion, check for repeating the same one 53268 // without advancing the subject pointer. This should catch convoluted mutual 53269 // recursions. (Some simple cases are caught at compile time.) 53270 53271 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53272 goto __3074 53273 } 53274 53275 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 53276 __3075: 53277 if !(offset != libc.CplUint32(Tsize_t(0))) { 53278 goto __3076 53279 } 53280 53281 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 53282 P = N - uintptr(frame_size) 53283 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_RECURSE|number) { 53284 goto __3077 53285 } 53286 53287 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Theapframe)(unsafe.Pointer(P)).Feptr) { 53288 goto __3078 53289 } 53290 return -52 53291 __3078: 53292 ; 53293 goto __3076 53294 __3077: 53295 ; 53296 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 53297 goto __3075 53298 __3076: 53299 ; 53300 __3074: 53301 ; 53302 53303 // Now run the recursion, branch by branch. 53304 53305 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = bracode 53306 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_RECURSE | number 53307 53308 __3079: 53309 53310 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 53311 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))]) 53312 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM11 53313 goto MATCH_RECURSE 53314 L_RM11: 53315 ; 53316 53317 next_ecode2 = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 2))))) 53318 53319 // Handle backtracking verbs, which are defined in a range that can 53320 // easily be tested for. PCRE does not allow THEN, SKIP, PRUNE or COMMIT to 53321 // escape beyond a recursion; they cause a NOMATCH for the entire recursion. 53322 // 53323 // When one of these verbs triggers, the current recursion group number is 53324 // recorded. If it matches the recursion we are processing, the verb 53325 // happened within the recursion and we must deal with it. Otherwise it must 53326 // have happened after the recursion completed, and so has to be passed 53327 // back. See comment above about handling THEN. 53328 53329 if !(rrc >= -997 && rrc <= -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse == *(*Tuint32_t)(unsafe.Pointer(F + 32))^DGF_RECURSE) { 53330 goto __3082 53331 } 53332 53333 if !(rrc == -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode2 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode2))) == OP_ALT)) { 53334 goto __3083 53335 } 53336 rrc = DMATCH_NOMATCH 53337 goto __3084 53338 __3083: 53339 rrc = DMATCH_NOMATCH 53340 goto RETURN_SWITCH 53341 __3084: 53342 ; 53343 53344 __3082: 53345 ; 53346 53347 // Note that carrying on after (*ACCEPT) in a recursion is handled in the 53348 // OP_ACCEPT code. Nothing needs to be done here. 53349 53350 if !(rrc != DMATCH_NOMATCH) { 53351 goto __3085 53352 } 53353 rrc = rrc 53354 goto RETURN_SWITCH 53355 __3085: 53356 ; 53357 53358 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = next_ecode2 53359 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) != OP_ALT) { 53360 goto __3086 53361 } 53362 rrc = DMATCH_NOMATCH 53363 goto RETURN_SWITCH 53364 __3086: 53365 ; 53366 53367 goto __3080 53368 __3080: 53369 goto __3079 53370 goto __3081 53371 __3081: 53372 ; 53373 // Control never reaches here. 53374 53375 // ===================================================================== 53376 // Positive assertions are like other groups except that PCRE doesn't allow 53377 // the effect of (*THEN) to escape beyond an assertion; it is therefore 53378 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 53379 // captures and mark retained. Any other return is an error. 53380 53381 __126: 53382 __127: 53383 __128: 53384 __129: 53385 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53386 __3087: 53387 53388 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 53389 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53390 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM3 53391 goto MATCH_RECURSE 53392 L_RM3: 53393 ; 53394 53395 if !(rrc == -999) { 53396 goto __3090 53397 } 53398 53399 libc.Xmemcpy(tls, F+84, 53400 assert_accept_frame+uintptr(uint32(uintptr(0)+84)), 53401 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53402 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53403 (*Theapframe)(unsafe.Pointer(F)).Fmark = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Fmark 53404 goto __3089 53405 __3090: 53406 ; 53407 if !(rrc != DMATCH_NOMATCH && rrc != -993) { 53408 goto __3091 53409 } 53410 rrc = rrc 53411 goto RETURN_SWITCH 53412 __3091: 53413 ; 53414 53415 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53416 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53417 goto __3092 53418 } 53419 rrc = DMATCH_NOMATCH 53420 goto RETURN_SWITCH 53421 __3092: 53422 ; 53423 53424 goto __3088 53425 __3088: 53426 goto __3087 53427 goto __3089 53428 __3089: 53429 ; 53430 53431 __3093: 53432 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53433 goto __3094 53434 __3094: 53435 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53436 goto __3093 53437 } 53438 goto __3095 53439 __3095: 53440 ; 53441 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53442 goto __13 53443 53444 // ===================================================================== 53445 // Handle negative assertions. Loop for each non-matching branch as for 53446 // positive assertions. 53447 53448 __130: 53449 __131: 53450 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53451 53452 __3096: 53453 53454 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 32)) 53455 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53456 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM4 53457 goto MATCH_RECURSE 53458 L_RM4: 53459 ; 53460 53461 switch rrc { 53462 case -999: 53463 goto __3100 // Assertion matched, therefore it fails. 53464 case DMATCH_MATCH: 53465 goto __3101 53466 53467 case DMATCH_NOMATCH: 53468 goto __3102 // Branch failed, try next if present. 53469 case -993: 53470 goto __3103 53471 53472 case -997: 53473 goto __3104 // Assertion forced to fail, therefore continue. 53474 case -995: 53475 goto __3105 53476 case -996: 53477 goto __3106 53478 53479 default: 53480 goto __3107 53481 } 53482 goto __3099 53483 53484 __3100: // Assertion matched, therefore it fails. 53485 __3101: 53486 rrc = DMATCH_NOMATCH 53487 goto RETURN_SWITCH 53488 53489 __3102: // Branch failed, try next if present. 53490 __3103: 53491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53492 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53493 goto __3108 53494 } 53495 goto ASSERT_NOT_FAILED 53496 __3108: 53497 ; 53498 goto __3099 53499 53500 __3104: // Assertion forced to fail, therefore continue. 53501 __3105: 53502 __3106: 53503 __3109: 53504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53505 goto __3110 53506 __3110: 53507 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53508 goto __3109 53509 } 53510 goto __3111 53511 __3111: 53512 ; 53513 goto ASSERT_NOT_FAILED 53514 53515 __3107: /* Pass back any other return */ 53516 rrc = rrc 53517 goto RETURN_SWITCH 53518 53519 __3099: 53520 ; 53521 goto __3097 53522 __3097: 53523 goto __3096 53524 goto __3098 53525 __3098: 53526 ; 53527 53528 // None of the branches have matched or there was a backtrack to (*COMMIT), 53529 // (*SKIP), (*PRUNE), or (*THEN) in the last branch. This is success for a 53530 // negative assertion, so carry on. 53531 53532 ASSERT_NOT_FAILED: 53533 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53534 goto __13 53535 53536 // ===================================================================== 53537 // The callout item calls an external function, if one is provided, passing 53538 // details of the match so far. This is mainly for debugging, though the 53539 // function is able to force a failure. 53540 53541 __132: 53542 __133: 53543 rrc = do_callout1(tls, F, mb, bp) 53544 if !(rrc > 0) { 53545 goto __3112 53546 } 53547 rrc = DMATCH_NOMATCH 53548 goto RETURN_SWITCH 53549 __3112: 53550 ; 53551 53552 if !(rrc < 0) { 53553 goto __3113 53554 } 53555 rrc = rrc 53556 goto RETURN_SWITCH 53557 __3113: 53558 ; 53559 53560 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53561 goto __13 53562 53563 // ===================================================================== 53564 // Conditional group: compilation checked that there are no more than two 53565 // branches. If the condition is false, skipping the first branch takes us 53566 // past the end of the item if there is only one branch, but that's exactly 53567 // what we want. 53568 53569 __134: 53570 __135: 53571 53572 // The variable Flength will be added to Fecode when the condition is 53573 // false, to get to the second branch. Setting it to the offset to the ALT or 53574 // KET, then incrementing Fecode achieves this effect. However, if the second 53575 // branch is non-existent, we must point to the KET so that the end of the 53576 // group is correctly processed. We now have Fecode pointing to the condition 53577 // or callout. 53578 53579 (*Theapframe)(unsafe.Pointer(F)).Flength = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) // Offset to the second branch 53580 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr((*Theapframe)(unsafe.Pointer(F)).Flength)))) != OP_ALT) { 53581 goto __3114 53582 } 53583 *(*Tsize_t)(unsafe.Pointer(F + 12)) -= Tsize_t(1 + DLINK_SIZE) 53584 __3114: 53585 ; 53586 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) // From this opcode 53587 53588 // Because of the way auto-callout works during compile, a callout item is 53589 // inserted between OP_COND and an assertion condition. Such a callout can 53590 // also be inserted manually. 53591 53592 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT_STR) { 53593 goto __3115 53594 } 53595 53596 rrc = do_callout1(tls, F, mb, bp) 53597 if !(rrc > 0) { 53598 goto __3116 53599 } 53600 rrc = DMATCH_NOMATCH 53601 goto RETURN_SWITCH 53602 __3116: 53603 ; 53604 53605 if !(rrc < 0) { 53606 goto __3117 53607 } 53608 rrc = rrc 53609 goto RETURN_SWITCH 53610 __3117: 53611 ; 53612 53613 // Advance Fecode past the callout, so it now points to the condition. We 53614 // must adjust Flength so that the value of Fecode+Flength is unchanged. 53615 53616 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53617 *(*Tsize_t)(unsafe.Pointer(F + 12)) -= *(*Tsize_t)(unsafe.Pointer(bp)) 53618 __3115: 53619 ; 53620 53621 // Test the various possible conditions 53622 53623 condition = DFALSE 53624 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 53625 case OP_RREF: 53626 goto __3119 53627 53628 case OP_DNRREF: 53629 goto __3120 53630 53631 case OP_CREF: 53632 goto __3121 53633 53634 case OP_DNCREF: 53635 goto __3122 53636 53637 case OP_FALSE: 53638 goto __3123 53639 case OP_FAIL: 53640 goto __3124 53641 53642 case OP_TRUE: 53643 goto __3125 53644 53645 // The condition is an assertion. Run code similar to the assertion code 53646 // above. 53647 53648 default: 53649 goto __3126 53650 } 53651 goto __3118 53652 53653 __3119: // Group recursion test 53654 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53655 goto __3127 53656 } 53657 53658 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 53659 condition = libc.Bool32(number == Tuint32_t(DRREF_ANY) || number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53660 __3127: 53661 ; 53662 goto __3118 53663 53664 __3120: // Duplicate named group recursion test 53665 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53666 goto __3128 53667 } 53668 53669 count1 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 53670 slot1 = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 53671 __3129: 53672 if !(libc.PostDecInt32(&count1, 1) > 0) { 53673 goto __3130 53674 } 53675 53676 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1 + 1)))) 53677 condition = libc.Bool32(number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53678 if !(condition != 0) { 53679 goto __3131 53680 } 53681 goto __3130 53682 __3131: 53683 ; 53684 slot1 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53685 goto __3129 53686 __3130: 53687 ; 53688 __3128: 53689 ; 53690 goto __3118 53691 53692 __3121: // Numbered group used test 53693 offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))<<1 - uint32(2)) // Doubled ref number 53694 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) != libc.CplUint32(Tsize_t(0))) 53695 goto __3118 53696 53697 __3122: /* Duplicate named group used test */ 53698 53699 count2 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 53700 slot2 = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 53701 __3132: 53702 if !(libc.PostDecInt32(&count2, 1) > 0) { 53703 goto __3133 53704 } 53705 53706 offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2 + 1))))<<1 - uint32(2)) 53707 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) != libc.CplUint32(Tsize_t(0))) 53708 if !(condition != 0) { 53709 goto __3134 53710 } 53711 goto __3133 53712 __3134: 53713 ; 53714 slot2 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53715 goto __3132 53716 __3133: 53717 ; 53718 53719 goto __3118 53720 53721 __3123: 53722 __3124: // The assertion (?!) becomes OP_FAIL 53723 goto __3118 53724 53725 __3125: 53726 condition = DTRUE 53727 goto __3118 53728 53729 // The condition is an assertion. Run code similar to the assertion code 53730 // above. 53731 53732 __3126: 53733 *(*Tuint32_t)(unsafe.Pointer(F + 32)) = Tuint32_t(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ASSERT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ASSERTBACK)) 53734 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 53735 53736 __3135: 53737 53738 group_frame_type = DGF_CONDASSERT | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 53739 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))]) 53740 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM5 53741 goto MATCH_RECURSE 53742 L_RM5: 53743 ; 53744 53745 switch rrc { 53746 case -999: 53747 goto __3139 53748 53749 // Fall through 53750 // In the case of a match, the captures have already been put into 53751 // the current frame. 53752 53753 case DMATCH_MATCH: 53754 goto __3140 53755 53756 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53757 // assertion; it is therefore always treated as NOMATCH. 53758 53759 case DMATCH_NOMATCH: 53760 goto __3141 53761 case -993: 53762 goto __3142 53763 53764 // These force no match without checking other branches. 53765 53766 case -997: 53767 goto __3143 53768 case -995: 53769 goto __3144 53770 case -996: 53771 goto __3145 53772 53773 default: 53774 goto __3146 53775 } 53776 goto __3138 53777 53778 __3139: // Save captures 53779 libc.Xmemcpy(tls, F+84, 53780 assert_accept_frame+uintptr(uint32(uintptr(0)+84)), 53781 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53782 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53783 53784 // Fall through 53785 // In the case of a match, the captures have already been put into 53786 // the current frame. 53787 53788 __3140: 53789 condition = TBOOL(*(*Tuint32_t)(unsafe.Pointer(F + 32))) // TRUE for positive assertion 53790 goto __3138 53791 53792 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53793 // assertion; it is therefore always treated as NOMATCH. 53794 53795 __3141: 53796 __3142: 53797 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4)) + 2))))) 53798 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 4))))) == OP_ALT) { 53799 goto __3147 53800 } 53801 goto __3136 53802 __3147: 53803 ; // Try next branch 53804 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 32)) != 0)) // TRUE for negative assertion 53805 goto __3138 53806 53807 // These force no match without checking other branches. 53808 53809 __3143: 53810 __3144: 53811 __3145: 53812 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 32)) != 0)) 53813 goto __3138 53814 53815 __3146: 53816 rrc = rrc 53817 goto RETURN_SWITCH 53818 53819 __3138: 53820 ; 53821 goto __3137 // Out of the branch loop 53822 goto __3136 53823 __3136: 53824 goto __3135 53825 goto __3137 53826 __3137: 53827 ; 53828 53829 // If the condition is true, find the end of the assertion so that 53830 // advancing past it gets us to the start of the first branch. 53831 53832 if !(condition != 0) { 53833 goto __3148 53834 } 53835 53836 __3149: 53837 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53838 goto __3150 53839 __3150: 53840 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53841 goto __3149 53842 } 53843 goto __3151 53844 __3151: 53845 ; 53846 __3148: 53847 ; 53848 goto __3118 // End of assertion condition 53849 __3118: 53850 ; 53851 53852 // Choose branch according to the condition. 53853 53854 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += func() uintptr { 53855 if condition != 0 { 53856 return uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53857 } 53858 return uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) 53859 }() 53860 53861 // If the opcode is OP_SCOND it means we are at a repeated conditional 53862 // group that might match an empty string. We must therefore descend a level 53863 // so that the start is remembered for checking. For OP_COND we can just 53864 // continue at this level. 53865 53866 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_SCOND) { 53867 goto __3152 53868 } 53869 53870 group_frame_type = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53871 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 53872 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM35 53873 goto MATCH_RECURSE 53874 L_RM35: 53875 ; 53876 53877 rrc = rrc 53878 goto RETURN_SWITCH 53879 53880 __3152: 53881 ; 53882 goto __13 53883 53884 // ========================================================================= 53885 // End of start of parenthesis opcodes 53886 // ========================================================================= 53887 53888 // ===================================================================== 53889 // Move the subject pointer back. This occurs only at the start of each 53890 // branch of a lookbehind assertion. If we are too close to the start to move 53891 // back, fail. When working with UTF-8 we move back a number of characters, 53892 // not bytes. 53893 53894 __136: 53895 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 53896 if !(utf != 0) { 53897 goto __3153 53898 } 53899 53900 __3155: 53901 if !(libc.PostDecUint32(&number, 1) > Tuint32_t(0)) { 53902 goto __3156 53903 } 53904 53905 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 53906 goto __3157 53907 } 53908 rrc = DMATCH_NOMATCH 53909 goto RETURN_SWITCH 53910 __3157: 53911 ; 53912 53913 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53914 __3158: 53915 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 53916 goto __3159 53917 } 53918 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53919 goto __3158 53920 __3159: 53921 ; 53922 goto __3155 53923 __3156: 53924 ; 53925 goto __3154 53926 __3153: 53927 53928 /* No UTF-8 support, or not in UTF-8 mode: count is code unit count */ 53929 53930 if !(Tptrdiff_t(number) > (int32((*Theapframe)(unsafe.Pointer(F)).Feptr)-int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject))/1) { 53931 goto __3160 53932 } 53933 rrc = DMATCH_NOMATCH 53934 goto RETURN_SWITCH 53935 __3160: 53936 ; 53937 53938 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 56)) -= TPCRE2_SPTR8(number) 53939 __3154: 53940 ; 53941 53942 // Save the earliest consulted character, then skip to next opcode 53943 53944 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 53945 goto __3161 53946 } 53947 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 53948 __3161: 53949 ; 53950 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53951 goto __13 53952 53953 // ===================================================================== 53954 // An alternation is the end of a branch; scan along to find the end of the 53955 // bracketed group. 53956 53957 __137: 53958 __3162: 53959 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53960 goto __3163 53961 __3163: 53962 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53963 goto __3162 53964 } 53965 goto __3164 53966 __3164: 53967 ; 53968 goto __13 53969 53970 // ===================================================================== 53971 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 53972 // starting frame was added to the chained frames in order to remember the 53973 // starting subject position for the group. 53974 53975 __138: 53976 __139: 53977 __140: 53978 __141: 53979 53980 bracode = (*Theapframe)(unsafe.Pointer(F)).Fecode - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53981 53982 // Point N to the frame at the start of the most recent group. 53983 // Remember the subject pointer at the start of the group. 53984 53985 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_BRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_COND) { 53986 goto __3165 53987 } 53988 53989 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr((*Theapframe)(unsafe.Pointer(F)).Flast_group_offset) 53990 P = N - uintptr(frame_size) 53991 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 53992 53993 // If we are at the end of an assertion that is a condition, return a 53994 // match, discarding any intermediate backtracking points. Copy back the 53995 // mark setting and the captures into the frame before N so that they are 53996 // set on return. Doing this for all assertions, both positive and negative, 53997 // seems to match what Perl does. 53998 53999 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_CONDASSERT) { 54000 goto __3167 54001 } 54002 54003 libc.Xmemcpy(tls, P+uintptr(uint32(uintptr(0)+84)), F+84, 54004 (*Theapframe)(unsafe.Pointer(F)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54005 (*Theapframe)(unsafe.Pointer(P)).Foffset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top 54006 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 54007 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int32(F) - int32(P)) / 1) 54008 rrc = DMATCH_MATCH 54009 goto RETURN_SWITCH 54010 54011 __3167: 54012 ; 54013 goto __3166 54014 __3165: 54015 P = uintptr(0) 54016 __3166: 54017 ; // Indicates starting frame not recorded 54018 54019 // The group was not a conditional assertion. 54020 54021 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) { 54022 case OP_BRA: 54023 goto __3169 // No need to do anything for these 54024 case OP_COND: 54025 goto __3170 54026 case OP_SCOND: 54027 goto __3171 54028 54029 // Non-atomic positive assertions are like OP_BRA, except that the 54030 // subject pointer must be put back to where it was at the start of the 54031 // assertion. 54032 54033 case OP_ASSERT_NA: 54034 goto __3172 54035 case OP_ASSERTBACK_NA: 54036 goto __3173 54037 54038 // Atomic positive assertions are like OP_ONCE, except that in addition 54039 // the subject pointer must be put back to where it was at the start of the 54040 // assertion. 54041 54042 case OP_ASSERT: 54043 goto __3174 54044 case OP_ASSERTBACK: 54045 goto __3175 54046 // Fall through 54047 54048 // For an atomic group, discard internal backtracking points. We must 54049 // also ensure that any remaining branches within the top-level of the group 54050 // are not tried. Do this by adjusting the code pointer within the backtrack 54051 // frame so that it points to the final branch. 54052 54053 case OP_ONCE: 54054 goto __3176 54055 54056 // A matching negative assertion returns MATCH, which is turned into 54057 // NOMATCH at the assertion level. 54058 54059 case OP_ASSERT_NOT: 54060 goto __3177 54061 case OP_ASSERTBACK_NOT: 54062 goto __3178 54063 54064 // At the end of a script run, apply the script-checking rules. This code 54065 // will never by exercised if Unicode support it not compiled, because in 54066 // that environment script runs cause an error at compile time. 54067 54068 case OP_SCRIPT_RUN: 54069 goto __3179 54070 54071 // Whole-pattern recursion is coded as a recurse into group 0, so it 54072 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54073 // Other recursion is handled here. 54074 54075 case OP_CBRA: 54076 goto __3180 54077 case OP_CBRAPOS: 54078 goto __3181 54079 case OP_SCBRA: 54080 goto __3182 54081 case OP_SCBRAPOS: 54082 goto __3183 54083 } 54084 goto __3168 54085 54086 __3169: // No need to do anything for these 54087 __3170: 54088 __3171: 54089 goto __3168 54090 54091 // Non-atomic positive assertions are like OP_BRA, except that the 54092 // subject pointer must be put back to where it was at the start of the 54093 // assertion. 54094 54095 __3172: 54096 __3173: 54097 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54098 goto __3184 54099 } 54100 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54101 __3184: 54102 ; 54103 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54104 goto __3168 54105 54106 // Atomic positive assertions are like OP_ONCE, except that in addition 54107 // the subject pointer must be put back to where it was at the start of the 54108 // assertion. 54109 54110 __3174: 54111 __3175: 54112 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54113 goto __3185 54114 } 54115 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54116 __3185: 54117 ; 54118 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54119 // Fall through 54120 54121 // For an atomic group, discard internal backtracking points. We must 54122 // also ensure that any remaining branches within the top-level of the group 54123 // are not tried. Do this by adjusting the code pointer within the backtrack 54124 // frame so that it points to the final branch. 54125 54126 __3176: 54127 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int32(F) - int32(P)) / 1) 54128 __3186: 54129 54130 y = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + 2)))) 54131 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(y)))) != OP_ALT) { 54132 goto __3189 54133 } 54134 goto __3188 54135 __3189: 54136 ; 54137 *(*TPCRE2_SPTR8)(unsafe.Pointer(P)) += TPCRE2_SPTR8(y) 54138 goto __3187 54139 __3187: 54140 goto __3186 54141 goto __3188 54142 __3188: 54143 ; 54144 goto __3168 54145 54146 // A matching negative assertion returns MATCH, which is turned into 54147 // NOMATCH at the assertion level. 54148 54149 __3177: 54150 __3178: 54151 rrc = DMATCH_MATCH 54152 goto RETURN_SWITCH 54153 54154 // At the end of a script run, apply the script-checking rules. This code 54155 // will never by exercised if Unicode support it not compiled, because in 54156 // that environment script runs cause an error at compile time. 54157 54158 __3179: 54159 if !!(X_pcre2_script_run_8(tls, (*Theapframe)(unsafe.Pointer(P)).Feptr, (*Theapframe)(unsafe.Pointer(F)).Feptr, utf) != 0) { 54160 goto __3190 54161 } 54162 rrc = DMATCH_NOMATCH 54163 goto RETURN_SWITCH 54164 __3190: 54165 ; 54166 54167 goto __3168 54168 54169 // Whole-pattern recursion is coded as a recurse into group 0, so it 54170 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54171 // Other recursion is handled here. 54172 54173 __3180: 54174 __3181: 54175 __3182: 54176 __3183: 54177 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 54178 54179 // Handle a recursively called group. We reinstate the previous set of 54180 // captures and then carry on after the recursion call. 54181 54182 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == number) { 54183 goto __3191 54184 } 54185 54186 P = N - uintptr(frame_size) 54187 libc.Xmemcpy(tls, F+uintptr(uint32(uintptr(0)+84)), P+84, 54188 (*Theapframe)(unsafe.Pointer(P)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54189 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(P)).Foffset_top 54190 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = (*Theapframe)(unsafe.Pointer(P)).Fcapture_last 54191 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = (*Theapframe)(unsafe.Pointer(P)).Fcurrent_recurse 54192 (*Theapframe)(unsafe.Pointer(F)).Fecode = (*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54193 goto __11 // With next opcode 54194 __3191: 54195 ; 54196 54197 // Deal with actual capturing. 54198 54199 offset = Tsize_t(number<<1 - Tuint32_t(2)) 54200 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 54201 *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset)*4)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(P)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54202 *(*Tsize_t)(unsafe.Pointer(F + 84 + uintptr(offset+Tsize_t(1))*4)) = Tsize_t((int32((*Theapframe)(unsafe.Pointer(F)).Feptr) - int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54203 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 54204 goto __3192 54205 } 54206 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + Tsize_t(2) 54207 __3192: 54208 ; 54209 goto __3168 54210 __3168: 54211 ; // End actions relating to the starting opcode 54212 54213 // OP_KETRPOS is a possessive repeating ket. Remember the current position, 54214 // and return the MATCH_KETRPOS. This makes it possible to do the repeats one 54215 // at a time from the outer level. This must precede the empty string test - 54216 // in this case that test is done at the outer level. 54217 54218 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_KETRPOS) { 54219 goto __3193 54220 } 54221 54222 libc.Xmemcpy(tls, P+uintptr(uint32(uintptr(0)+56)), 54223 F+uintptr(uint32(uintptr(0)+56)), 54224 frame_copy_size) 54225 rrc = -998 54226 goto RETURN_SWITCH 54227 54228 __3193: 54229 ; 54230 54231 // Handle the different kinds of closing brackets. A non-repeating ket 54232 // needs no special action, just continuing at this level. This also happens 54233 // for the repeating kets if the group matched no characters, in order to 54234 // forcibly break infinite loops. Otherwise, the repeating kets try the rest 54235 // of the pattern or restart from the preceding bracket, in the appropriate 54236 // order. 54237 54238 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) != OP_KET && (P == uintptr(0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Theapframe)(unsafe.Pointer(P)).Feptr)) { 54239 goto __3194 54240 } 54241 54242 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_KETRMIN) { 54243 goto __3195 54244 } 54245 54246 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54247 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM6 54248 goto MATCH_RECURSE 54249 L_RM6: 54250 ; 54251 54252 if !(rrc != DMATCH_NOMATCH) { 54253 goto __3196 54254 } 54255 rrc = rrc 54256 goto RETURN_SWITCH 54257 __3196: 54258 ; 54259 54260 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) -= TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 54261 goto __13 // End of ket processing 54262 __3195: 54263 ; 54264 54265 /* Repeat the maximum number of times (KETRMAX) */ 54266 54267 start_ecode = bracode 54268 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM7 54269 goto MATCH_RECURSE 54270 L_RM7: 54271 ; 54272 54273 if !(rrc != DMATCH_NOMATCH) { 54274 goto __3197 54275 } 54276 rrc = rrc 54277 goto RETURN_SWITCH 54278 __3197: 54279 ; 54280 54281 __3194: 54282 ; 54283 54284 // Carry on at this level for a non-repeating ket, or after matching an 54285 // empty string, or after repeating for a maximum number of times. 54286 54287 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 54288 goto __13 54289 54290 // ===================================================================== 54291 // Start and end of line assertions, not multiline mode. 54292 54293 __142: // Start of line, unless PCRE2_NOTBOL is set. 54294 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL != Tuint32_t(0)) { 54295 goto __3198 54296 } 54297 rrc = DMATCH_NOMATCH 54298 goto RETURN_SWITCH 54299 __3198: 54300 ; 54301 54302 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54303 goto __13 54304 54305 __143: // Unconditional start of subject 54306 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject) { 54307 goto __3199 54308 } 54309 rrc = DMATCH_NOMATCH 54310 goto RETURN_SWITCH 54311 __3199: 54312 ; 54313 54314 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54315 goto __13 54316 54317 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 54318 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 54319 54320 __144: 54321 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54322 goto __3200 54323 } 54324 rrc = DMATCH_NOMATCH 54325 goto RETURN_SWITCH 54326 __3200: 54327 ; 54328 54329 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0)) { 54330 goto __3201 54331 } 54332 goto ASSERT_NL_OR_EOS 54333 __3201: 54334 ; 54335 54336 // Fall through 54337 // Unconditional end of subject assertion (\z) 54338 54339 __145: 54340 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54341 goto __3202 54342 } 54343 rrc = DMATCH_NOMATCH 54344 goto RETURN_SWITCH 54345 __3202: 54346 ; 54347 54348 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54349 goto __3203 54350 } 54351 54352 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54353 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54354 goto __3204 54355 } 54356 return -2 54357 __3204: 54358 ; 54359 __3203: 54360 ; 54361 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54362 goto __13 54363 54364 // End of subject or ending \n assertion (\Z) 54365 54366 __146: 54367 ASSERT_NL_OR_EOS: 54368 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (!(func() int32 { 54369 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54370 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 54371 } 54372 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 54373 }() != 0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen))) { 54374 goto __3205 54375 } 54376 54377 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 54378 goto __3206 54379 } 54380 54381 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54382 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54383 goto __3207 54384 } 54385 return -2 54386 __3207: 54387 ; 54388 __3206: 54389 ; 54390 rrc = DMATCH_NOMATCH 54391 goto RETURN_SWITCH 54392 54393 __3205: 54394 ; 54395 54396 // Either at end of string or \n before end. 54397 54398 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54399 goto __3208 54400 } 54401 54402 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54403 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54404 goto __3209 54405 } 54406 return -2 54407 __3209: 54408 ; 54409 __3208: 54410 ; 54411 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54412 goto __13 54413 54414 // ===================================================================== 54415 // Start and end of line assertions, multiline mode. 54416 54417 // Start of subject unless notbol, or after any newline except for one at 54418 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 54419 54420 __147: 54421 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL != Tuint32_t(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject) { 54422 goto __3210 54423 } 54424 rrc = DMATCH_NOMATCH 54425 goto RETURN_SWITCH 54426 __3210: 54427 ; 54428 54429 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && ((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_ALT_CIRCUMFLEX == Tuint32_t(0) || !(func() int32 { 54430 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54431 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+156, utf) != 0) 54432 } 54433 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 54434 }() != 0))) { 54435 goto __3211 54436 } 54437 rrc = DMATCH_NOMATCH 54438 goto RETURN_SWITCH 54439 __3211: 54440 ; 54441 54442 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54443 goto __13 54444 54445 // Assert before any newline, or before end of subject unless noteol is 54446 // set. 54447 54448 __148: 54449 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54450 goto __3212 54451 } 54452 54453 if !!(func() int32 { 54454 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54455 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 54456 } 54457 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 54458 }() != 0) { 54459 goto __3214 54460 } 54461 54462 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)))) { 54463 goto __3215 54464 } 54465 54466 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54467 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54468 goto __3216 54469 } 54470 return -2 54471 __3216: 54472 ; 54473 __3215: 54474 ; 54475 rrc = DMATCH_NOMATCH 54476 goto RETURN_SWITCH 54477 54478 __3214: 54479 ; 54480 goto __3213 54481 __3212: 54482 54483 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54484 goto __3217 54485 } 54486 rrc = DMATCH_NOMATCH 54487 goto RETURN_SWITCH 54488 __3217: 54489 ; 54490 54491 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 54492 goto __3218 54493 } 54494 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54495 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54496 goto __3219 54497 } 54498 return -2 54499 __3219: 54500 ; 54501 __3218: 54502 ; 54503 54504 __3213: 54505 ; 54506 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54507 goto __13 54508 54509 // ===================================================================== 54510 // Start of match assertion 54511 54512 __149: 54513 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset)) { 54514 goto __3220 54515 } 54516 rrc = DMATCH_NOMATCH 54517 goto RETURN_SWITCH 54518 __3220: 54519 ; 54520 54521 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54522 goto __13 54523 54524 // ===================================================================== 54525 // Reset the start of match point 54526 54527 __150: 54528 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Feptr 54529 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54530 goto __13 54531 54532 // ===================================================================== 54533 // Word boundary assertions. Find out if the previous and current 54534 // characters are "word" characters. It takes a bit more work in UTF mode. 54535 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 54536 // not set. When it is set, use Unicode properties if available, even when not 54537 // in UTF mode. Remember the earliest and latest consulted characters. 54538 54539 __151: 54540 __152: 54541 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 54542 goto __3221 54543 } 54544 prev_is_word = DFALSE 54545 goto __3222 54546 __3221: 54547 54548 lastptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 54549 if !(utf != 0) { 54550 goto __3223 54551 } 54552 54553 __3225: 54554 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr)))&0xc0 == 0x80) { 54555 goto __3226 54556 } 54557 lastptr-- 54558 goto __3225 54559 __3226: 54560 ; 54561 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54562 if !(fc >= 0xc0) { 54563 goto __3227 54564 } 54565 if !(fc&0x20 == Tuint32_t(0)) { 54566 goto __3228 54567 } 54568 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f 54569 goto __3229 54570 __3228: 54571 if !(fc&0x10 == Tuint32_t(0)) { 54572 goto __3230 54573 } 54574 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f 54575 goto __3231 54576 __3230: 54577 if !(fc&0x08 == Tuint32_t(0)) { 54578 goto __3232 54579 } 54580 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f 54581 goto __3233 54582 __3232: 54583 if !(fc&0x04 == Tuint32_t(0)) { 54584 goto __3234 54585 } 54586 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 4)))&0x3f 54587 goto __3235 54588 __3234: 54589 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 5)))&0x3f 54590 __3235: 54591 ; 54592 __3233: 54593 ; 54594 __3231: 54595 ; 54596 __3229: 54597 ; 54598 __3227: 54599 ; 54600 54601 goto __3224 54602 __3223: 54603 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54604 __3224: 54605 ; 54606 if !(lastptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 54607 goto __3236 54608 } 54609 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = lastptr 54610 __3236: 54611 ; 54612 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54613 goto __3237 54614 } 54615 54616 if !(fc == Tuint32_t('_')) { 54617 goto __3239 54618 } 54619 prev_is_word = DTRUE 54620 goto __3240 54621 __3239: 54622 54623 cat = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 54624 prev_is_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 54625 __3240: 54626 ; 54627 goto __3238 54628 __3237: 54629 prev_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54630 __3238: 54631 ; 54632 __3222: 54633 ; 54634 54635 // Get status of next character 54636 54637 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54638 goto __3241 54639 } 54640 54641 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 54642 goto __3243 54643 } 54644 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54645 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54646 goto __3244 54647 } 54648 return -2 54649 __3244: 54650 ; 54651 __3243: 54652 ; 54653 54654 cur_is_word = DFALSE 54655 goto __3242 54656 __3241: 54657 54658 nextptr = (*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1) 54659 if !(utf != 0) { 54660 goto __3245 54661 } 54662 54663 __3247: 54664 if !(nextptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(nextptr)))&0xc0 == 0x80) { 54665 goto __3248 54666 } 54667 nextptr++ 54668 goto __3247 54669 __3248: 54670 ; 54671 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54672 if !(fc >= 0xc0) { 54673 goto __3249 54674 } 54675 if !(fc&0x20 == Tuint32_t(0)) { 54676 goto __3250 54677 } 54678 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 54679 goto __3251 54680 __3250: 54681 if !(fc&0x10 == Tuint32_t(0)) { 54682 goto __3252 54683 } 54684 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 54685 goto __3253 54686 __3252: 54687 if !(fc&0x08 == Tuint32_t(0)) { 54688 goto __3254 54689 } 54690 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 54691 goto __3255 54692 __3254: 54693 if !(fc&0x04 == Tuint32_t(0)) { 54694 goto __3256 54695 } 54696 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 54697 goto __3257 54698 __3256: 54699 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 54700 __3257: 54701 ; 54702 __3255: 54703 ; 54704 __3253: 54705 ; 54706 __3251: 54707 ; 54708 __3249: 54709 ; 54710 54711 goto __3246 54712 __3245: 54713 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54714 __3246: 54715 ; 54716 if !(nextptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54717 goto __3258 54718 } 54719 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = nextptr 54720 __3258: 54721 ; 54722 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54723 goto __3259 54724 } 54725 54726 if !(fc == Tuint32_t('_')) { 54727 goto __3261 54728 } 54729 cur_is_word = DTRUE 54730 goto __3262 54731 __3261: 54732 54733 cat1 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 54734 cur_is_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 54735 __3262: 54736 ; 54737 goto __3260 54738 __3259: 54739 cur_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54740 __3260: 54741 ; 54742 __3242: 54743 ; 54744 54745 // Now see if the situation is what we want 54746 54747 if !(func() int32 { 54748 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) == OP_WORD_BOUNDARY { 54749 return libc.Bool32(cur_is_word == prev_is_word) 54750 } 54751 return libc.Bool32(cur_is_word != prev_is_word) 54752 }() != 0) { 54753 goto __3263 54754 } 54755 rrc = DMATCH_NOMATCH 54756 goto RETURN_SWITCH 54757 __3263: 54758 ; 54759 54760 goto __13 54761 54762 // ===================================================================== 54763 // Backtracking (*VERB)s, with and without arguments. Note that if the 54764 // pattern is successfully matched, we do not come back from RMATCH. 54765 54766 __153: 54767 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+120, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54768 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54769 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM12 54770 goto MATCH_RECURSE 54771 L_RM12: 54772 ; 54773 54774 // A return of MATCH_SKIP_ARG means that matching failed at SKIP with an 54775 // argument, and we must check whether that argument matches this MARK's 54776 // argument. It is passed back in mb->verb_skip_ptr. If it does match, we 54777 // return MATCH_SKIP with mb->verb_skip_ptr now pointing to the subject 54778 // position that corresponds to this mark. Otherwise, pass back the return 54779 // code unaltered. 54780 54781 if !(rrc == -994 && X_pcre2_strcmp_8(tls, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2), (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr) == 0) { 54782 goto __3264 54783 } 54784 54785 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr /* Pass back current position */ 54786 rrc = -995 54787 goto RETURN_SWITCH 54788 54789 __3264: 54790 ; 54791 rrc = rrc 54792 goto RETURN_SWITCH 54793 54794 __154: 54795 rrc = DMATCH_NOMATCH 54796 goto RETURN_SWITCH 54797 54798 // Record the current recursing group number in mb->verb_current_recurse 54799 // when a backtracking return such as MATCH_COMMIT is given. This enables the 54800 // recurse processing to catch verbs from within the recursion. 54801 54802 __155: 54803 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54804 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM13 54805 goto MATCH_RECURSE 54806 L_RM13: 54807 ; 54808 54809 if !(rrc != DMATCH_NOMATCH) { 54810 goto __3265 54811 } 54812 rrc = rrc 54813 goto RETURN_SWITCH 54814 __3265: 54815 ; 54816 54817 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54818 rrc = -997 54819 goto RETURN_SWITCH 54820 54821 __156: 54822 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+120, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54823 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54824 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM36 54825 goto MATCH_RECURSE 54826 L_RM36: 54827 ; 54828 54829 if !(rrc != DMATCH_NOMATCH) { 54830 goto __3266 54831 } 54832 rrc = rrc 54833 goto RETURN_SWITCH 54834 __3266: 54835 ; 54836 54837 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54838 rrc = -997 54839 goto RETURN_SWITCH 54840 54841 __157: 54842 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54843 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM14 54844 goto MATCH_RECURSE 54845 L_RM14: 54846 ; 54847 54848 if !(rrc != DMATCH_NOMATCH) { 54849 goto __3267 54850 } 54851 rrc = rrc 54852 goto RETURN_SWITCH 54853 __3267: 54854 ; 54855 54856 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54857 rrc = -996 54858 goto RETURN_SWITCH 54859 54860 __158: 54861 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+120, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54862 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54863 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM15 54864 goto MATCH_RECURSE 54865 L_RM15: 54866 ; 54867 54868 if !(rrc != DMATCH_NOMATCH) { 54869 goto __3268 54870 } 54871 rrc = rrc 54872 goto RETURN_SWITCH 54873 __3268: 54874 ; 54875 54876 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54877 rrc = -996 54878 goto RETURN_SWITCH 54879 54880 __159: 54881 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54882 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM16 54883 goto MATCH_RECURSE 54884 L_RM16: 54885 ; 54886 54887 if !(rrc != DMATCH_NOMATCH) { 54888 goto __3269 54889 } 54890 rrc = rrc 54891 goto RETURN_SWITCH 54892 __3269: 54893 ; 54894 54895 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Pass back current position 54896 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54897 rrc = -995 54898 goto RETURN_SWITCH 54899 54900 // Note that, for Perl compatibility, SKIP with an argument does NOT set 54901 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 54902 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 54903 // that failed and any that precede it (either they also failed, or were not 54904 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 54905 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 54906 // set to the count of the one that failed. 54907 54908 __160: 54909 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count++ 54910 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg) { 54911 goto __3270 54912 } 54913 54914 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))) 54915 goto __13 54916 __3270: 54917 ; 54918 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54919 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM17 54920 goto MATCH_RECURSE 54921 L_RM17: 54922 ; 54923 54924 if !(rrc != DMATCH_NOMATCH) { 54925 goto __3271 54926 } 54927 rrc = rrc 54928 goto RETURN_SWITCH 54929 __3271: 54930 ; 54931 54932 // Pass back the current skip name and return the special MATCH_SKIP_ARG 54933 // return code. This will either be caught by a matching MARK, or get to the 54934 // top, where it causes a rematch with mb->ignore_skip_arg set to the value of 54935 // mb->skip_arg_count. 54936 54937 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(2) 54938 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54939 rrc = -994 54940 goto RETURN_SWITCH 54941 54942 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 54943 // the branch in which it occurs can be determined. 54944 54945 __161: 54946 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54947 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM18 54948 goto MATCH_RECURSE 54949 L_RM18: 54950 ; 54951 54952 if !(rrc != DMATCH_NOMATCH) { 54953 goto __3272 54954 } 54955 rrc = rrc 54956 goto RETURN_SWITCH 54957 __3272: 54958 ; 54959 54960 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 54961 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54962 rrc = -993 54963 goto RETURN_SWITCH 54964 54965 __162: 54966 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+120, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54967 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54968 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM19 54969 goto MATCH_RECURSE 54970 L_RM19: 54971 ; 54972 54973 if !(rrc != DMATCH_NOMATCH) { 54974 goto __3273 54975 } 54976 rrc = rrc 54977 goto RETURN_SWITCH 54978 __3273: 54979 ; 54980 54981 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 54982 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54983 rrc = -993 54984 goto RETURN_SWITCH 54985 54986 // ===================================================================== 54987 // There's been some horrible disaster. Arrival here can only mean there is 54988 // something seriously wrong in the code above or the OP_xxx definitions. 54989 54990 __163: 54991 return -44 54992 __13: 54993 ; 54994 54995 // Do not insert any code in here without much thought; it is assumed 54996 // that "continue" in the code above comes out to here to repeat the main 54997 // loop. 54998 54999 goto __11 55000 __11: 55001 goto __10 55002 goto __12 55003 __12: 55004 ; // End of main loop 55005 // Control never reaches here 55006 55007 // ========================================================================= 55008 // The RRETURN() macro jumps here. The number that is saved in Freturn_id 55009 // indicates which label we actually want to return to. The value in Frdepth is 55010 // the index number of the frame in the vector. The return value has been placed 55011 // in rrc. 55012 55013 RETURN_SWITCH: 55014 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 55015 goto __3274 55016 } 55017 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 55018 __3274: 55019 ; 55020 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 55021 goto __3275 55022 } 55023 return rrc 55024 __3275: 55025 ; // Exit from the top level 55026 F = F - uintptr((*Theapframe)(unsafe.Pointer(F)).Fback_frame) // Backtrack 55027 *(*Tuint32_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb + 60)) |= DPCRE2_CALLOUT_BACKTRACK // Note for callouts 55028 55029 switch int32((*Theapframe)(unsafe.Pointer(F)).Freturn_id) { 55030 case 1: 55031 goto __3277 55032 case 2: 55033 goto __3278 55034 case 3: 55035 goto __3279 55036 case 4: 55037 goto __3280 55038 case 5: 55039 goto __3281 55040 case 6: 55041 goto __3282 55042 case 7: 55043 goto __3283 55044 case 8: 55045 goto __3284 55046 case 9: 55047 goto __3285 55048 case 10: 55049 goto __3286 55050 case 11: 55051 goto __3287 55052 case 12: 55053 goto __3288 55054 case 13: 55055 goto __3289 55056 case 14: 55057 goto __3290 55058 case 15: 55059 goto __3291 55060 case 16: 55061 goto __3292 55062 case 17: 55063 goto __3293 55064 case 18: 55065 goto __3294 55066 case 19: 55067 goto __3295 55068 case 20: 55069 goto __3296 55070 case 21: 55071 goto __3297 55072 case 22: 55073 goto __3298 55074 case 23: 55075 goto __3299 55076 case 24: 55077 goto __3300 55078 case 25: 55079 goto __3301 55080 case 26: 55081 goto __3302 55082 case 27: 55083 goto __3303 55084 case 28: 55085 goto __3304 55086 case 29: 55087 goto __3305 55088 case 30: 55089 goto __3306 55090 case 31: 55091 goto __3307 55092 case 32: 55093 goto __3308 55094 case 33: 55095 goto __3309 55096 case 34: 55097 goto __3310 55098 case 35: 55099 goto __3311 55100 case 36: 55101 goto __3312 55102 55103 case 100: 55104 goto __3313 55105 case 101: 55106 goto __3314 55107 55108 case 200: 55109 goto __3315 55110 case 201: 55111 goto __3316 55112 case 202: 55113 goto __3317 55114 case 203: 55115 goto __3318 55116 case 204: 55117 goto __3319 55118 case 205: 55119 goto __3320 55120 case 206: 55121 goto __3321 55122 case 207: 55123 goto __3322 55124 case 208: 55125 goto __3323 55126 case 209: 55127 goto __3324 55128 case 210: 55129 goto __3325 55130 case 211: 55131 goto __3326 55132 case 212: 55133 goto __3327 55134 case 213: 55135 goto __3328 55136 case 214: 55137 goto __3329 55138 case 215: 55139 goto __3330 55140 case 216: 55141 goto __3331 55142 case 217: 55143 goto __3332 55144 case 218: 55145 goto __3333 55146 case 219: 55147 goto __3334 55148 case 220: 55149 goto __3335 55150 case 221: 55151 goto __3336 55152 case 222: 55153 goto __3337 55154 case 223: 55155 goto __3338 55156 case 224: 55157 goto __3339 55158 case 225: 55159 goto __3340 55160 55161 default: 55162 goto __3341 55163 } 55164 goto __3276 55165 55166 __3277: 55167 goto L_RM1 55168 __3278: 55169 goto L_RM2 55170 __3279: 55171 goto L_RM3 55172 __3280: 55173 goto L_RM4 55174 __3281: 55175 goto L_RM5 55176 __3282: 55177 goto L_RM6 55178 __3283: 55179 goto L_RM7 55180 __3284: 55181 goto L_RM8 55182 __3285: 55183 goto L_RM9 55184 __3286: 55185 goto L_RM10 55186 __3287: 55187 goto L_RM11 55188 __3288: 55189 goto L_RM12 55190 __3289: 55191 goto L_RM13 55192 __3290: 55193 goto L_RM14 55194 __3291: 55195 goto L_RM15 55196 __3292: 55197 goto L_RM16 55198 __3293: 55199 goto L_RM17 55200 __3294: 55201 goto L_RM18 55202 __3295: 55203 goto L_RM19 55204 __3296: 55205 goto L_RM20 55206 __3297: 55207 goto L_RM21 55208 __3298: 55209 goto L_RM22 55210 __3299: 55211 goto L_RM23 55212 __3300: 55213 goto L_RM24 55214 __3301: 55215 goto L_RM25 55216 __3302: 55217 goto L_RM26 55218 __3303: 55219 goto L_RM27 55220 __3304: 55221 goto L_RM28 55222 __3305: 55223 goto L_RM29 55224 __3306: 55225 goto L_RM30 55226 __3307: 55227 goto L_RM31 55228 __3308: 55229 goto L_RM32 55230 __3309: 55231 goto L_RM33 55232 __3310: 55233 goto L_RM34 55234 __3311: 55235 goto L_RM35 55236 __3312: 55237 goto L_RM36 55238 55239 __3313: 55240 goto L_RM100 55241 __3314: 55242 goto L_RM101 55243 55244 __3315: 55245 goto L_RM200 55246 __3316: 55247 goto L_RM201 55248 __3317: 55249 goto L_RM202 55250 __3318: 55251 goto L_RM203 55252 __3319: 55253 goto L_RM204 55254 __3320: 55255 goto L_RM205 55256 __3321: 55257 goto L_RM206 55258 __3322: 55259 goto L_RM207 55260 __3323: 55261 goto L_RM208 55262 __3324: 55263 goto L_RM209 55264 __3325: 55265 goto L_RM210 55266 __3326: 55267 goto L_RM211 55268 __3327: 55269 goto L_RM212 55270 __3328: 55271 goto L_RM213 55272 __3329: 55273 goto L_RM214 55274 __3330: 55275 goto L_RM215 55276 __3331: 55277 goto L_RM216 55278 __3332: 55279 goto L_RM217 55280 __3333: 55281 goto L_RM218 55282 __3334: 55283 goto L_RM219 55284 __3335: 55285 goto L_RM220 55286 __3336: 55287 goto L_RM221 55288 __3337: 55289 goto L_RM222 55290 __3338: 55291 goto L_RM223 55292 __3339: 55293 goto L_RM224 55294 __3340: 55295 goto L_RM225 55296 55297 __3341: 55298 return -44 55299 __3276: 55300 ; 55301 return int32(0) 55302 } 55303 55304 // ************************************************ 55305 // 55306 // Match a Regular Expression * 55307 // 55308 55309 // This function applies a compiled pattern to a subject string and picks out 55310 // portions of the string if it matches. Two elements in the vector are set for 55311 // each substring: the offsets to the start and end of the substring. 55312 // 55313 // Arguments: 55314 // code points to the compiled expression 55315 // subject points to the subject string 55316 // length length of subject string (may contain binary zeros) 55317 // start_offset where to start in the subject string 55318 // options option bits 55319 // match_data points to a match_data block 55320 // mcontext points a PCRE2 context 55321 // 55322 // Returns: > 0 => success; value is the number of ovector pairs filled 55323 // = 0 => success, but ovector is not big enough 55324 // = -1 => failed to match (PCRE2_ERROR_NOMATCH) 55325 // = -2 => partial match (PCRE2_ERROR_PARTIAL) 55326 // < -2 => some kind of unexpected problem 55327 55328 func Xpcre2_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr) int32 { /* pcre2_match.c:6297:1: */ 55329 bp := tls.Alloc(20720) 55330 defer tls.Free(20720) 55331 55332 var rc int32 55333 var was_zero_terminated int32 55334 var start_bits uintptr 55335 var re uintptr 55336 var anchored TBOOL 55337 var firstline TBOOL 55338 var has_first_cu TBOOL 55339 var has_req_cu TBOOL 55340 var startline TBOOL 55341 var memchr_found_first_cu TPCRE2_SPTR8 55342 var memchr_found_first_cu2 TPCRE2_SPTR8 55343 var first_cu TPCRE2_UCHAR8 55344 var first_cu2 TPCRE2_UCHAR8 55345 var req_cu TPCRE2_UCHAR8 55346 var req_cu2 TPCRE2_UCHAR8 55347 var bumpalong_limit TPCRE2_SPTR8 55348 var end_subject TPCRE2_SPTR8 55349 var true_end_subject TPCRE2_SPTR8 55350 var start_match TPCRE2_SPTR8 55351 var req_cu_ptr TPCRE2_SPTR8 55352 var start_partial TPCRE2_SPTR8 55353 var match_partial TPCRE2_SPTR8 55354 55355 // This flag is needed even when Unicode is not supported for convenience 55356 // (it is used by the IS_NEWLINE macro). 55357 55358 var utf TBOOL 55359 var ucp TBOOL 55360 var allow_invalid TBOOL 55361 var fragment_options Tuint32_t 55362 var frame_size Tsize_t 55363 55364 // We need to have mb as a pointer to a match block, because the IS_NEWLINE 55365 // macro is used below, and it expects NLBLOCK to be defined as a pointer. 55366 55367 // var cb Tpcre2_callout_block_8 at bp+20656, 64 55368 55369 // var actual_match_block Tmatch_block_8 at bp, 176 55370 55371 var mb uintptr 55372 55373 // Allocate an initial vector of backtracking frames on the stack. If this 55374 // proves to be too small, it is replaced by a larger one on the heap. To get a 55375 // vector of the size required that is aligned for pointers, allocate it as a 55376 // vector of pointers. 55377 55378 // var stack_frames_vector [5120]TPCRE2_SPTR8 at bp+176, 20480 55379 55380 var i uint32 55381 var skipped_bad_start TBOOL 55382 var t TPCRE2_SPTR8 55383 var c TPCRE2_UCHAR8 55384 var ok TBOOL 55385 // In 16-bit and 32_bit modes we have to do our own search, so can 55386 // look for both cases at once. 55387 55388 // In 8-bit mode, the use of memchr() gives a big speed up, even 55389 // though we have to call it twice in order to find the earliest 55390 // occurrence of the code unit in either of its cases. Caching is used 55391 // to remember the positions of previously found code units. This can 55392 // make a huge difference when the strings are very long and only one 55393 // case is actually present. 55394 55395 var pp1 TPCRE2_SPTR8 55396 var pp2 TPCRE2_SPTR8 55397 var searchlength Tsize_t 55398 var c1 Tuint32_t 55399 var pp TPCRE2_SPTR8 55400 var check_length Tsize_t 55401 var p TPCRE2_SPTR8 55402 var new_start_match TPCRE2_SPTR8 55403 was_zero_terminated = 0 55404 start_bits = uintptr(0) 55405 re = code 55406 has_first_cu = DFALSE 55407 has_req_cu = DFALSE 55408 first_cu = TPCRE2_UCHAR8(0) 55409 first_cu2 = TPCRE2_UCHAR8(0) 55410 req_cu = TPCRE2_UCHAR8(0) 55411 req_cu2 = TPCRE2_UCHAR8(0) 55412 utf = DFALSE 55413 ucp = DFALSE 55414 fragment_options = Tuint32_t(0) 55415 mb = bp /* &actual_match_block */ 55416 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames = bp + 176 /* stack_frames_vector */ 55417 55418 // Recognize NULL, length 0 as an empty string. 55419 55420 if !(subject == uintptr(0) && length == Tsize_t(0)) { 55421 goto __1 55422 } 55423 subject = ts + 797 /* "" */ 55424 __1: 55425 ; 55426 55427 // Plausibility checks 55428 55429 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_ENDANCHORED|DPCRE2_NOTBOL|DPCRE2_NOTEOL|DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART|DPCRE2_NO_UTF_CHECK|DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT|DPCRE2_NO_JIT|DPCRE2_COPY_MATCHED_SUBJECT) != Tuint32_t(0)) { 55430 goto __2 55431 } 55432 return -34 55433 __2: 55434 ; 55435 if !(code == uintptr(0) || subject == uintptr(0) || match_data == uintptr(0)) { 55436 goto __3 55437 } 55438 return -51 55439 __3: 55440 ; 55441 55442 start_match = subject + uintptr(start_offset) 55443 req_cu_ptr = start_match - uintptr(1) 55444 if !(length == libc.CplUint32(Tsize_t(0))) { 55445 goto __4 55446 } 55447 55448 length = X_pcre2_strlen_8(tls, subject) 55449 was_zero_terminated = 1 55450 __4: 55451 ; 55452 true_end_subject = libc.AssignUintptr(&end_subject, subject+uintptr(length)) 55453 55454 if !(start_offset > length) { 55455 goto __5 55456 } 55457 return -33 55458 __5: 55459 ; 55460 55461 // Check that the first field in the block is the magic number. 55462 55463 if !(uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 55464 goto __6 55465 } 55466 return -31 55467 __6: 55468 ; 55469 55470 // Check the code unit width. 55471 55472 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 55473 goto __7 55474 } 55475 return -32 55476 __7: 55477 ; 55478 55479 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 55480 // options variable for this function. Users of PCRE2 who are not calling the 55481 // function directly would like to have a way of setting these flags, in the same 55482 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 55483 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 55484 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which we now 55485 // transfer to the options for this function. The bits are guaranteed to be 55486 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 55487 // that the match-time bits are not more significant than the flag bits. If by 55488 // accident this is not the case, a compile-time division by zero error will 55489 // occur. 55490 55491 options = options | (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)/(uint32((DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)&(libc.CplInt32(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)+1))/((DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)&(libc.CplUint32(DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)+uint32(1)))) 55492 55493 // If the pattern was successfully studied with JIT support, we will run the 55494 // JIT executable instead of the rest of this function. Most options must be set 55495 // at compile time for the JIT code to be usable. 55496 55497 // Initialize UTF/UCP parameters. 55498 55499 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 55500 allow_invalid = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) 55501 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 55502 55503 // Convert the partial matching flags into an integer. 55504 55505 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial = func() uint16 { 55506 if options&DPCRE2_PARTIAL_HARD != Tuint32_t(0) { 55507 return uint16(2) 55508 } 55509 return func() uint16 { 55510 if options&DPCRE2_PARTIAL_SOFT != Tuint32_t(0) { 55511 return uint16(1) 55512 } 55513 return uint16(0) 55514 }() 55515 }() 55516 55517 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 55518 // time. 55519 55520 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 55521 goto __8 55522 } 55523 return -34 55524 __8: 55525 ; 55526 55527 // It is an error to set an offset limit without setting the flag at compile 55528 // time. 55529 55530 if !(mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint32(Tsize_t(0)) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 55531 goto __9 55532 } 55533 return -56 55534 __9: 55535 ; 55536 55537 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 55538 // free the memory that was obtained. Set the field to NULL for no match cases. 55539 55540 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 55541 goto __10 55542 } 55543 55544 (*struct { 55545 f func(*libc.TLS, uintptr, uintptr) 55546 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 55547 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 55548 *(*Tuint8_t)(unsafe.Pointer(match_data + 37)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 55549 __10: 55550 ; 55551 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) 55552 55553 // Zero the error offset in case the first code unit is invalid UTF. 55554 55555 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t(0) 55556 55557 // ============================= JIT matching ============================== 55558 55559 // Prepare for JIT matching. Check a UTF string for validity unless no check is 55560 // requested or invalid UTF can be handled. We check only the portion of the 55561 // subject that might be be inspected during matching - from the offset minus the 55562 // maximum lookbehind to the given length. This saves time when a small part of a 55563 // large subject is being matched by the use of a starting offset. Note that the 55564 // maximum lookbehind is a number of characters, not code units. 55565 55566 // ========================= End of JIT matching ========================== 55567 55568 // Proceed with non-JIT matching. The default is to allow lookbehinds to the 55569 // start of the subject. A UTF check when there is a non-zero offset may change 55570 // this. 55571 55572 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = subject 55573 55574 // If a UTF subject string was not checked for validity in the JIT code above, 55575 // check it here, and handle support for invalid UTF strings. The check above 55576 // happens only when invalid UTF is not supported and PCRE2_NO_CHECK_UTF is unset. 55577 // If we get here in those circumstances, it means the subject string is valid, 55578 // but for some reason JIT matching was not successful. There is no need to check 55579 // the subject again. 55580 // 55581 // We check only the portion of the subject that might be be inspected during 55582 // matching - from the offset minus the maximum lookbehind to the given length. 55583 // This saves time when a small part of a large subject is being matched by the 55584 // use of a starting offset. Note that the maximum lookbehind is a number of 55585 // characters, not code units. 55586 // 55587 // Note also that support for invalid UTF forces a check, overriding the setting 55588 // of PCRE2_NO_CHECK_UTF. 55589 55590 if !(utf != 0 && (options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) || allow_invalid != 0)) { 55591 goto __11 55592 } 55593 55594 skipped_bad_start = DFALSE 55595 55596 // For 8-bit and 16-bit UTF, check that the first code unit is a valid 55597 // character start. If we are handling invalid UTF, just skip over such code 55598 // units. Otherwise, give an appropriate error. 55599 55600 if !(allow_invalid != 0) { 55601 goto __12 55602 } 55603 55604 __14: 55605 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55606 goto __15 55607 } 55608 55609 start_match++ 55610 skipped_bad_start = DTRUE 55611 goto __14 55612 __15: 55613 ; 55614 goto __13 55615 __12: 55616 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55617 goto __16 55618 } 55619 55620 if !(start_offset > Tsize_t(0)) { 55621 goto __17 55622 } 55623 return -36 55624 __17: 55625 ; 55626 return -22 // Isolated 0x80 byte 55627 __16: 55628 ; 55629 __13: 55630 ; 55631 55632 // The mb->check_subject field points to the start of UTF checking; 55633 // lookbehinds can go back no further than this. 55634 55635 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 55636 55637 // Move back by the maximum lookbehind, just in case it happens at the very 55638 // start of matching, but don't do this if we skipped bad 8-bit or 16-bit code 55639 // units above. 55640 55641 if !!(skipped_bad_start != 0) { 55642 goto __18 55643 } 55644 55645 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 55646 __19: 55647 if !(i > uint32(0) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject > subject) { 55648 goto __21 55649 } 55650 55651 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55652 __22: 55653 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject > subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)))&0xc0 == 0x80) { 55654 goto __23 55655 } 55656 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55657 goto __22 55658 __23: 55659 ; 55660 goto __20 55661 __20: 55662 i-- 55663 goto __19 55664 goto __21 55665 __21: 55666 ; 55667 __18: 55668 ; 55669 55670 // Validate the relevant portion of the subject. There's a loop in case we 55671 // encounter bad UTF in the characters preceding start_match which we are 55672 // scanning because of a lookbehind. 55673 55674 __24: 55675 55676 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject, 55677 length-Tsize_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)-int32(subject))/1), match_data+32) 55678 55679 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc == 0) { 55680 goto __27 55681 } 55682 goto __26 55683 __27: 55684 ; // Valid UTF string 55685 55686 // Invalid UTF string. Adjust the offset to be an absolute offset in the 55687 // whole string. If we are handling invalid UTF strings, set end_subject to 55688 // stop before the bad code unit, and set the options to "not end of line". 55689 // Otherwise return the error. 55690 55691 *(*Tsize_t)(unsafe.Pointer(match_data + 32)) += Tsize_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) - int32(subject)) / 1) 55692 if !(!(allow_invalid != 0) || (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc > 0) { 55693 goto __28 55694 } 55695 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 55696 __28: 55697 ; 55698 end_subject = subject + uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar) 55699 55700 // If the end precedes start_match, it means there is invalid UTF in the 55701 // extra code units we reversed over because of a lookbehind. Advance past the 55702 // first bad code unit, and then skip invalid character starting code units in 55703 // 8-bit and 16-bit modes, and try again with the original end point. 55704 55705 if !(end_subject < start_match) { 55706 goto __29 55707 } 55708 55709 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = end_subject + uintptr(1) 55710 __31: 55711 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject < start_match && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)))&0xc0 == 0x80) { 55712 goto __32 55713 } 55714 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject++ 55715 goto __31 55716 __32: 55717 ; 55718 end_subject = true_end_subject 55719 goto __30 55720 __29: 55721 55722 fragment_options = DPCRE2_NOTEOL 55723 goto __26 55724 __30: 55725 ; 55726 goto __25 55727 __25: 55728 goto __24 55729 goto __26 55730 __26: 55731 ; 55732 __11: 55733 ; 55734 55735 // A NULL match context means "use a default context", but we take the memory 55736 // control functions from the pattern. 55737 55738 if !(mcontext == uintptr(0)) { 55739 goto __33 55740 } 55741 55742 mcontext = uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) 55743 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 55744 goto __34 55745 __33: 55746 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 55747 __34: 55748 ; 55749 55750 anchored = libc.Bool32(((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ANCHORED != Tuint32_t(0)) 55751 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 55752 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 55753 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit == libc.CplUint32(Tsize_t(0)) { 55754 bumpalong_limit = true_end_subject 55755 } else { 55756 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 55757 } 55758 55759 // Initialize and set up the fixed fields in the callout block, with a pointer 55760 // in the match block. 55761 55762 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb = bp + 20656 /* &cb */ 55763 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20656 /* &cb */)).Fversion = Tuint32_t(2) 55764 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20656 /* &cb */)).Fsubject = subject 55765 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20656 /* &cb */)).Fsubject_length = Tsize_t((int32(end_subject) - int32(subject)) / 1) 55766 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20656 /* &cb */)).Fcallout_flags = Tuint32_t(0) 55767 55768 // Fill in the remaining fields in the match block, except for moptions, which 55769 // gets set later. 55770 55771 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 55772 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 55773 55774 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 55775 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 55776 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 55777 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASTHEN) != Tuint32_t(0)) 55778 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial = libc.Bool32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) > 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0)) 55779 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options // Pattern options 55780 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 55781 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = libc.AssignPtrUintptr(mb+120, uintptr(0)) // In case never set 55782 55783 // The name table is needed for finding all the numbers associated with a 55784 // given name, for condition testing. The code follows the name table. 55785 55786 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) 55787 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_count = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count 55788 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size 55789 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 55790 55791 // Process the \R and newline settings. 55792 55793 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 55794 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 55795 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 55796 case DPCRE2_NEWLINE_CR: 55797 goto __36 55798 55799 case DPCRE2_NEWLINE_LF: 55800 goto __37 55801 55802 case DPCRE2_NEWLINE_NUL: 55803 goto __38 55804 55805 case DPCRE2_NEWLINE_CRLF: 55806 goto __39 55807 55808 case DPCRE2_NEWLINE_ANY: 55809 goto __40 55810 55811 case DPCRE2_NEWLINE_ANYCRLF: 55812 goto __41 55813 55814 default: 55815 goto __42 55816 } 55817 goto __35 55818 55819 __36: 55820 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55821 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)) = TPCRE2_UCHAR8('\015') 55822 goto __35 55823 55824 __37: 55825 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55826 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)) = TPCRE2_UCHAR8('\012') 55827 goto __35 55828 55829 __38: 55830 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55831 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)) = TPCRE2_UCHAR8(0) 55832 goto __35 55833 55834 __39: 55835 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 55836 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160)) = TPCRE2_UCHAR8('\015') 55837 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1)) = TPCRE2_UCHAR8('\012') 55838 goto __35 55839 55840 __40: 55841 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 55842 goto __35 55843 55844 __41: 55845 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 55846 goto __35 55847 55848 __42: 55849 return -44 55850 __35: 55851 ; 55852 55853 // The backtracking frames have fixed data at the front, and a PCRE2_SIZE 55854 // vector at the end, whose size depends on the number of capturing parentheses in 55855 // the pattern. It is not used at all if there are no capturing parentheses. 55856 // 55857 // frame_size is the total size of each frame 55858 // mb->frame_vector_size is the total usable size of the vector (rounded down 55859 // to a whole number of frames) 55860 // 55861 // The last of these is changed within the match() function if the frame vector 55862 // has to be expanded. We therefore put it into the match block so that it is 55863 // correct when calling match() more than once for non-anchored patterns. 55864 // 55865 // We must also pad frame_size for alignment to ensure subsequent frames are as 55866 // aligned as heapframe. Whilst ovector is word-aligned due to being a PCRE2_SIZE 55867 // array, that does not guarantee it is suitably aligned for pointers, as some 55868 // architectures have pointers that are larger than a size_t. 55869 55870 frame_size = (uint32(uintptr(0)+84) + uint32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint32(unsafe.Sizeof(Tsize_t(0))) + uint32(uintptr(0)+4) - uint32(1)) & libc.CplUint32(uint32(uintptr(0)+4)-uint32(1)) 55871 55872 // Limits set in the pattern override the match context only if they are 55873 // smaller. 55874 55875 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit = func() uint32 { 55876 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap { 55877 return uint32((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 55878 } 55879 return uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 55880 }() 55881 55882 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit = func() uint32 { 55883 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match { 55884 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 55885 } 55886 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 55887 }() 55888 55889 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = func() uint32 { 55890 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth { 55891 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 55892 } 55893 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 55894 }() 55895 55896 // If a pattern has very many capturing parentheses, the frame size may be very 55897 // large. Ensure that there are at least 10 available frames by getting an initial 55898 // vector on the heap if necessary, except when the heap limit prevents this. Get 55899 // fewer if possible. (The heap limit is in kibibytes.) 55900 55901 if !(frame_size <= Tsize_t(DSTART_FRAMES_SIZE/10)) { 55902 goto __43 55903 } 55904 55905 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames // Initial frame vector on the stack 55906 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = Tsize_t(DSTART_FRAMES_SIZE) / frame_size * frame_size 55907 goto __44 55908 __43: 55909 55910 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = frame_size * Tsize_t(10) 55911 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size/Tsize_t(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 55912 goto __45 55913 } 55914 55915 if !(frame_size > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit*Tsize_t(1024)) { 55916 goto __46 55917 } 55918 return -63 55919 __46: 55920 ; 55921 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * Tsize_t(1024) / frame_size * frame_size 55922 __45: 55923 ; 55924 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*struct { 55925 f func(*libc.TLS, Tsize_t, uintptr) uintptr 55926 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size, 55927 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 55928 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames == uintptr(0)) { 55929 goto __47 55930 } 55931 return -48 55932 __47: 55933 ; 55934 __44: 55935 ; 55936 55937 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size) 55938 55939 // Write to the ovector within the first frame to mark every capture unset and 55940 // to avoid uninitialized memory read errors when it is copied to a new frame. 55941 55942 libc.Xmemset(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames+uintptr(uint32(uintptr(0)+84)), 0xff, 55943 frame_size-Tsize_t(uintptr(0)+84)) 55944 55945 // Pointers to the individual character tables 55946 55947 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dlcc_offset) 55948 (*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) 55949 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 55950 55951 // Set up the first code unit to match, if available. If there's no first code 55952 // unit there may be a bitmap of possible first characters. 55953 55954 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 55955 goto __48 55956 } 55957 55958 has_first_cu = DTRUE 55959 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 55960 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 55961 goto __50 55962 } 55963 55964 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(first_cu))) 55965 if !(int32(first_cu) > 127 && ucp != 0 && !(utf != 0)) { 55966 goto __51 55967 } 55968 first_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(first_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(first_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(first_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 55969 __51: 55970 ; 55971 __50: 55972 ; 55973 goto __49 55974 __48: 55975 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 55976 goto __52 55977 } 55978 start_bits = re + 20 /* &.start_bitmap */ 55979 __52: 55980 ; 55981 __49: 55982 ; 55983 55984 // There may also be a "last known required character" set. 55985 55986 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 55987 goto __53 55988 } 55989 55990 has_req_cu = DTRUE 55991 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 55992 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 55993 goto __54 55994 } 55995 55996 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(req_cu))) 55997 if !(int32(req_cu) > 127 && ucp != 0 && !(utf != 0)) { 55998 goto __55 55999 } 56000 req_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(req_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(req_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(req_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 56001 __55: 56002 ; 56003 __54: 56004 ; 56005 __53: 56006 ; 56007 56008 // ========================================================================== 56009 56010 // Loop for handling unanchored repeated matching attempts; for anchored regexs 56011 // the loop runs just once. 56012 56013 FRAGMENT_RESTART: 56014 56015 start_partial = libc.AssignUintptr(&match_partial, uintptr(0)) 56016 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DFALSE 56017 56018 memchr_found_first_cu = uintptr(0) 56019 memchr_found_first_cu2 = uintptr(0) 56020 56021 __56: 56022 56023 // ----------------- Start of match optimizations ---------------- 56024 56025 // There are some optimizations that avoid running the match if a known 56026 // starting point is not found, or if a known later code unit is not present. 56027 // However, there is an option (settable at compile time) that disables these, 56028 // for testing and for ensuring that all callouts do actually occur. 56029 56030 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 56031 goto __59 56032 } 56033 56034 // If firstline is TRUE, the start of the match is constrained to the first 56035 // line of a multiline string. That is, the match must be before or at the 56036 // first newline following the start of matching. Temporarily adjust 56037 // end_subject so that we stop the scans for a first code unit at a newline. 56038 // If the match fails at the newline, later code breaks the loop. 56039 56040 if !(firstline != 0) { 56041 goto __60 56042 } 56043 56044 t = start_match 56045 if !(utf != 0) { 56046 goto __61 56047 } 56048 56049 __63: 56050 if !(t < end_subject && !(func() int32 { 56051 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56052 return libc.Bool32(t < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 56053 } 56054 return libc.Bool32(t <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 56055 }() != 0)) { 56056 goto __64 56057 } 56058 56059 t++ 56060 __65: 56061 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 56062 goto __66 56063 } 56064 t++ 56065 goto __65 56066 __66: 56067 ; 56068 goto __63 56069 __64: 56070 ; 56071 goto __62 56072 __61: 56073 __67: 56074 if !(t < end_subject && !(func() int32 { 56075 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56076 return libc.Bool32(t < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 56077 } 56078 return libc.Bool32(t <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 56079 }() != 0)) { 56080 goto __68 56081 } 56082 t++ 56083 goto __67 56084 __68: 56085 ; 56086 __62: 56087 ; 56088 end_subject = t 56089 __60: 56090 ; 56091 56092 // Anchored: check the first code unit if one is recorded. This may seem 56093 // pointless but it can help in detecting a no match case without scanning for 56094 // the required code unit. 56095 56096 if !(anchored != 0) { 56097 goto __69 56098 } 56099 56100 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 56101 goto __71 56102 } 56103 56104 ok = libc.Bool32(start_match < end_subject) 56105 if !(ok != 0) { 56106 goto __72 56107 } 56108 56109 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 56110 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 56111 if !(!(ok != 0) && start_bits != uintptr(0)) { 56112 goto __73 56113 } 56114 56115 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 56116 __73: 56117 ; 56118 __72: 56119 ; 56120 if !!(ok != 0) { 56121 goto __74 56122 } 56123 56124 rc = DMATCH_NOMATCH 56125 goto __58 56126 __74: 56127 ; 56128 __71: 56129 ; 56130 goto __70 56131 __69: 56132 56133 if !(has_first_cu != 0) { 56134 goto __75 56135 } 56136 56137 if !(int32(first_cu) != int32(first_cu2)) { 56138 goto __77 56139 } /* Caseless */ 56140 56141 // In 16-bit and 32_bit modes we have to do our own search, so can 56142 // look for both cases at once. 56143 56144 // In 8-bit mode, the use of memchr() gives a big speed up, even 56145 // though we have to call it twice in order to find the earliest 56146 // occurrence of the code unit in either of its cases. Caching is used 56147 // to remember the positions of previously found code units. This can 56148 // make a huge difference when the strings are very long and only one 56149 // case is actually present. 56150 56151 pp1 = uintptr(0) 56152 pp2 = uintptr(0) 56153 searchlength = Tsize_t((int32(end_subject) - int32(start_match)) / 1) 56154 56155 // If we haven't got a previously found position for first_cu, or if 56156 // the current starting position is later, we need to do a search. If 56157 // the code unit is not found, set it to the end. 56158 56159 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 56160 goto __79 56161 } 56162 56163 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 56164 if pp1 == uintptr(0) { 56165 memchr_found_first_cu = end_subject 56166 } else { 56167 memchr_found_first_cu = pp1 56168 } 56169 goto __80 56170 __79: 56171 if memchr_found_first_cu == end_subject { 56172 pp1 = uintptr(0) 56173 } else { 56174 pp1 = memchr_found_first_cu 56175 } 56176 __80: 56177 ; 56178 56179 // Do the same thing for the other case. 56180 56181 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 56182 goto __81 56183 } 56184 56185 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 56186 if pp2 == uintptr(0) { 56187 memchr_found_first_cu2 = end_subject 56188 } else { 56189 memchr_found_first_cu2 = pp2 56190 } 56191 goto __82 56192 __81: 56193 if memchr_found_first_cu2 == end_subject { 56194 pp2 = uintptr(0) 56195 } else { 56196 pp2 = memchr_found_first_cu2 56197 } 56198 __82: 56199 ; 56200 56201 // Set the start to the end of the subject if neither case was found. 56202 // Otherwise, use the earlier found point. 56203 56204 if !(pp1 == uintptr(0)) { 56205 goto __83 56206 } 56207 if pp2 == uintptr(0) { 56208 start_match = end_subject 56209 } else { 56210 start_match = pp2 56211 } 56212 goto __84 56213 __83: 56214 if pp2 == uintptr(0) || pp1 < pp2 { 56215 start_match = pp1 56216 } else { 56217 start_match = pp2 56218 } 56219 __84: 56220 ; 56221 56222 goto __78 56223 __77: 56224 56225 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint32((int32(end_subject)-int32(start_match))/1)) 56226 if !(start_match == uintptr(0)) { 56227 goto __85 56228 } 56229 start_match = end_subject 56230 __85: 56231 ; 56232 __78: 56233 ; 56234 56235 // If we can't find the required first code unit, having reached the 56236 // true end of the subject, break the bumpalong loop, to force a match 56237 // failure, except when doing partial matching, when we let the next cycle 56238 // run at the end of the subject. To see why, consider the pattern 56239 // /(?<=abc)def/, which partially matches "abc", even though the string 56240 // does not contain the starting character "d". If we have not reached the 56241 // true end of the subject (PCRE2_FIRSTLINE caused end_subject to be 56242 // temporarily modified) we also let the cycle run, because the matching 56243 // string is legitimately allowed to start with the first code unit of a 56244 // newline. 56245 56246 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56247 goto __86 56248 } 56249 56250 rc = DMATCH_NOMATCH 56251 goto __58 56252 __86: 56253 ; 56254 goto __76 56255 __75: 56256 if !(startline != 0) { 56257 goto __87 56258 } 56259 56260 if !(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 56261 goto __89 56262 } 56263 56264 if !(utf != 0) { 56265 goto __90 56266 } 56267 56268 __92: 56269 if !(start_match < end_subject && !(func() int32 { 56270 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56271 return libc.Bool32(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+156, utf) != 0) 56272 } 56273 return libc.Bool32(start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 56274 }() != 0)) { 56275 goto __93 56276 } 56277 56278 start_match++ 56279 __94: 56280 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56281 goto __95 56282 } 56283 start_match++ 56284 goto __94 56285 __95: 56286 ; 56287 goto __92 56288 __93: 56289 ; 56290 goto __91 56291 __90: 56292 __96: 56293 if !(start_match < end_subject && !(func() int32 { 56294 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56295 return libc.Bool32(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+156, utf) != 0) 56296 } 56297 return libc.Bool32(start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 56298 }() != 0)) { 56299 goto __97 56300 } 56301 start_match++ 56302 goto __96 56303 __97: 56304 ; 56305 __91: 56306 ; 56307 56308 // If we have just passed a CR and the newline option is ANY or 56309 // ANYCRLF, and we are now at a LF, advance the match position by one 56310 // more code unit. 56311 56312 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF)) && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012') { 56313 goto __98 56314 } 56315 start_match++ 56316 __98: 56317 ; 56318 __89: 56319 ; 56320 goto __88 56321 __87: 56322 if !(start_bits != uintptr(0)) { 56323 goto __99 56324 } 56325 56326 __100: 56327 if !(start_match < end_subject) { 56328 goto __101 56329 } 56330 56331 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 56332 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 56333 goto __102 56334 } 56335 goto __101 56336 __102: 56337 ; 56338 start_match++ 56339 goto __100 56340 __101: 56341 ; 56342 56343 // See comment above in first_cu checking about the next few lines. 56344 56345 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56346 goto __103 56347 } 56348 56349 rc = DMATCH_NOMATCH 56350 goto __58 56351 __103: 56352 ; 56353 __99: 56354 ; 56355 __88: 56356 ; 56357 __76: 56358 ; 56359 __70: 56360 ; // End first code unit handling 56361 56362 // Restore fudged end_subject 56363 56364 end_subject = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 56365 56366 // The following two optimizations must be disabled for partial matching. 56367 56368 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0) { 56369 goto __104 56370 } 56371 56372 // The minimum matching length is a lower bound; no string of that length 56373 // may actually match the pattern. Although the value is, strictly, in 56374 // characters, we treat it as code units to avoid spending too much time in 56375 // this optimization. 56376 56377 if !((int32(end_subject)-int32(start_match))/1 < int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 56378 goto __105 56379 } 56380 56381 rc = DMATCH_NOMATCH 56382 goto __58 56383 __105: 56384 ; 56385 56386 // If req_cu is set, we know that that code unit must appear in the 56387 // subject for the (non-partial) match to succeed. If the first code unit is 56388 // set, req_cu must be later in the subject; otherwise the test starts at 56389 // the match point. This optimization can save a huge amount of backtracking 56390 // in patterns with nested unlimited repeats that aren't going to match. 56391 // Writing separate code for caseful/caseless versions makes it go faster, 56392 // as does using an autoincrement and backing off on a match. As in the case 56393 // of the first code unit, using memchr() in the 8-bit library gives a big 56394 // speed up. Unlike the first_cu check above, we do not need to call 56395 // memchr() twice in the caseless case because we only need to check for the 56396 // presence of the character in either case, not find the first occurrence. 56397 // 56398 // The search can be skipped if the code unit was found later than the 56399 // current starting point in a previous iteration of the bumpalong loop. 56400 // 56401 // HOWEVER: when the subject string is very, very long, searching to its end 56402 // can take a long time, and give bad performance on quite ordinary 56403 // anchored patterns. This showed up when somebody was matching something 56404 // like /^\d+C/ on a 32-megabyte string... so we don't do this when the 56405 // string is sufficiently long, but it's worth searching a lot more for 56406 // unanchored patterns. 56407 56408 p = start_match + uintptr(func() int32 { 56409 if has_first_cu != 0 { 56410 return 1 56411 } 56412 return 0 56413 }()) 56414 if !(has_req_cu != 0 && p > req_cu_ptr) { 56415 goto __106 56416 } 56417 56418 check_length = Tsize_t((int32(end_subject) - int32(start_match)) / 1) 56419 56420 if !(check_length < Tsize_t(DREQ_CU_MAX) || !(anchored != 0) && check_length < Tsize_t(DREQ_CU_MAX*1000)) { 56421 goto __107 56422 } 56423 56424 if !(int32(req_cu) != int32(req_cu2)) { 56425 goto __108 56426 } /* Caseless */ 56427 56428 pp = p 56429 p = libc.Xmemchr(tls, pp, int32(req_cu), uint32((int32(end_subject)-int32(pp))/1)) 56430 if !(p == uintptr(0)) { 56431 goto __110 56432 } 56433 56434 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint32((int32(end_subject)-int32(pp))/1)) 56435 if !(p == uintptr(0)) { 56436 goto __111 56437 } 56438 p = end_subject 56439 __111: 56440 ; 56441 __110: 56442 ; 56443 goto __109 56444 __108: 56445 56446 p = libc.Xmemchr(tls, p, int32(req_cu), uint32((int32(end_subject)-int32(p))/1)) 56447 if !(p == uintptr(0)) { 56448 goto __112 56449 } 56450 p = end_subject 56451 __112: 56452 ; 56453 __109: 56454 ; 56455 56456 // If we can't find the required code unit, break the bumpalong loop, 56457 // forcing a match failure. 56458 56459 if !(p >= end_subject) { 56460 goto __113 56461 } 56462 56463 rc = DMATCH_NOMATCH 56464 goto __58 56465 __113: 56466 ; 56467 56468 // If we have found the required code unit, save the point where we 56469 // found it, so that we don't search again next time round the bumpalong 56470 // loop if the start hasn't yet passed this code unit. 56471 56472 req_cu_ptr = p 56473 __107: 56474 ; 56475 __106: 56476 ; 56477 __104: 56478 ; 56479 __59: 56480 ; 56481 56482 // ------------ End of start of match optimizations ------------ 56483 56484 // Give no match if we have passed the bumpalong limit. 56485 56486 if !(start_match > bumpalong_limit) { 56487 goto __114 56488 } 56489 56490 rc = DMATCH_NOMATCH 56491 goto __58 56492 __114: 56493 ; 56494 56495 // OK, we can now run the match. If "hitend" is set afterwards, remember the 56496 // first starting point for which a partial match was found. 56497 56498 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20656 /* &cb */)).Fstart_match = Tsize_t((int32(start_match) - int32(subject)) / 1) 56499 *(*Tuint32_t)(unsafe.Pointer(bp + 20656 + 60)) |= DPCRE2_CALLOUT_STARTMATCH 56500 56501 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 56502 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 56503 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions = options | fragment_options 56504 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 56505 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = Tsize_t(0) 56506 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count = Tuint32_t(0) 56507 56508 rc = match(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code, match_data+44, 56509 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket, frame_size, mb) 56510 56511 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend != 0 && start_partial == uintptr(0)) { 56512 goto __115 56513 } 56514 56515 start_partial = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr 56516 match_partial = start_match 56517 __115: 56518 ; 56519 56520 switch rc { 56521 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56522 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56523 // entirely. The only way we can do that is to re-do the match at the same 56524 // point, with a flag to force SKIP with an argument to be ignored. Just 56525 // treating this case as NOMATCH does not work because it does not check other 56526 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56527 56528 case -994: 56529 goto __117 56530 56531 // SKIP passes back the next starting point explicitly, but if it is no 56532 // greater than the match we have just done, treat it as NOMATCH. 56533 56534 case -995: 56535 goto __118 56536 // Fall through 56537 56538 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56539 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56540 56541 case DMATCH_NOMATCH: 56542 goto __119 56543 case -996: 56544 goto __120 56545 case -993: 56546 goto __121 56547 56548 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56549 56550 case -997: 56551 goto __122 56552 56553 // Any other return is either a match, or some kind of error. 56554 56555 default: 56556 goto __123 56557 } 56558 goto __116 56559 56560 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56561 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56562 // entirely. The only way we can do that is to re-do the match at the same 56563 // point, with a flag to force SKIP with an argument to be ignored. Just 56564 // treating this case as NOMATCH does not work because it does not check other 56565 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56566 56567 __117: 56568 new_start_match = start_match 56569 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count 56570 goto __116 56571 56572 // SKIP passes back the next starting point explicitly, but if it is no 56573 // greater than the match we have just done, treat it as NOMATCH. 56574 56575 __118: 56576 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr > start_match) { 56577 goto __124 56578 } 56579 56580 new_start_match = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr 56581 goto __116 56582 __124: 56583 ; 56584 // Fall through 56585 56586 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56587 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56588 56589 __119: 56590 __120: 56591 __121: 56592 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 56593 new_start_match = start_match + uintptr(1) 56594 if !(utf != 0) { 56595 goto __125 56596 } 56597 __126: 56598 if !(new_start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(new_start_match)))&0xc0 == 0x80) { 56599 goto __127 56600 } 56601 new_start_match++ 56602 goto __126 56603 __127: 56604 ; 56605 __125: 56606 ; 56607 goto __116 56608 56609 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56610 56611 __122: 56612 rc = DMATCH_NOMATCH 56613 goto ENDLOOP 56614 56615 // Any other return is either a match, or some kind of error. 56616 56617 __123: 56618 goto ENDLOOP 56619 __116: 56620 ; 56621 56622 // Control reaches here for the various types of "no match at this point" 56623 // result. Reset the code to MATCH_NOMATCH for subsequent checking. 56624 56625 rc = DMATCH_NOMATCH 56626 56627 // If PCRE2_FIRSTLINE is set, the match must happen before or at the first 56628 // newline in the subject (though it may continue over the newline). Therefore, 56629 // if we have just failed to match, starting at a newline, do not continue. 56630 56631 if !(firstline != 0 && func() int32 { 56632 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56633 return libc.Bool32(start_match < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+156, utf) != 0) 56634 } 56635 return libc.Bool32(start_match <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 160 + 1))))) 56636 }() != 0) { 56637 goto __128 56638 } 56639 goto __58 56640 __128: 56641 ; 56642 56643 // Advance to new matching position 56644 56645 start_match = new_start_match 56646 56647 // Break the loop if the pattern is anchored or if we have passed the end of 56648 // the subject. 56649 56650 if !(anchored != 0 || start_match > end_subject) { 56651 goto __129 56652 } 56653 goto __58 56654 __129: 56655 ; 56656 56657 // If we have just passed a CR and we are now at a LF, and the pattern does 56658 // not contain any explicit matches for \r or \n, and the newline option is CRLF 56659 // or ANY or ANYCRLF, advance the match position by one more code unit. In 56660 // normal matching start_match will aways be greater than the first position at 56661 // this stage, but a failed *SKIP can cause a return at the same point, which is 56662 // why the first test exists. 56663 56664 if !(start_match > subject+uintptr(start_offset) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012' && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) == Tuint32_t(0) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2))) { 56665 goto __130 56666 } 56667 start_match++ 56668 __130: 56669 ; 56670 56671 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = uintptr(0) // Reset for start of next match attempt 56672 goto __57 56673 __57: 56674 goto __56 56675 goto __58 56676 __58: 56677 ; // End of for(;;) "bumpalong" loop 56678 56679 // ========================================================================== 56680 56681 // When we reach here, one of the following stopping conditions is true: 56682 // 56683 // (1) The match succeeded, either completely, or partially; 56684 // 56685 // (2) The pattern is anchored or the match was failed after (*COMMIT); 56686 // 56687 // (3) We are past the end of the subject or the bumpalong limit; 56688 // 56689 // (4) PCRE2_FIRSTLINE is set and we have failed to match at a newline, because 56690 // this option requests that a match occur at or before the first newline in 56691 // the subject. 56692 // 56693 // (5) Some kind of error occurred. 56694 // 56695 56696 ENDLOOP: 56697 56698 // If end_subject != true_end_subject, it means we are handling invalid UTF, 56699 // and have just processed a non-terminal fragment. If this resulted in no match 56700 // or a partial match we must carry on to the next fragment (a partial match is 56701 // returned to the caller only at the very end of the subject). A loop is used to 56702 // avoid trying to match against empty fragments; if the pattern can match an 56703 // empty string it would have done so already. 56704 56705 if !(utf != 0 && end_subject != true_end_subject && (rc == DMATCH_NOMATCH || rc == -2)) { 56706 goto __131 56707 } 56708 56709 __132: 56710 56711 // Advance past the first bad code unit, and then skip invalid character 56712 // starting code units in 8-bit and 16-bit modes. 56713 56714 start_match = end_subject + uintptr(1) 56715 56716 __135: 56717 if !(start_match < true_end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56718 goto __136 56719 } 56720 start_match++ 56721 goto __135 56722 __136: 56723 ; 56724 56725 // If we have hit the end of the subject, there isn't another non-empty 56726 // fragment, so give up. 56727 56728 if !(start_match >= true_end_subject) { 56729 goto __137 56730 } 56731 56732 rc = DMATCH_NOMATCH // In case it was partial 56733 goto __134 56734 __137: 56735 ; 56736 56737 // Check the rest of the subject 56738 56739 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 56740 rc = X_pcre2_valid_utf_8(tls, start_match, length-Tsize_t((int32(start_match)-int32(subject))/1), 56741 match_data+32) 56742 56743 // The rest of the subject is valid UTF. 56744 56745 if !(rc == 0) { 56746 goto __138 56747 } 56748 56749 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, true_end_subject) 56750 fragment_options = DPCRE2_NOTBOL 56751 goto FRAGMENT_RESTART 56752 goto __139 56753 __138: 56754 if !(rc < 0) { 56755 goto __140 56756 } 56757 56758 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, start_match+uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar)) 56759 if !(end_subject > start_match) { 56760 goto __141 56761 } 56762 56763 fragment_options = DPCRE2_NOTBOL | DPCRE2_NOTEOL 56764 goto FRAGMENT_RESTART 56765 __141: 56766 ; 56767 __140: 56768 ; 56769 __139: 56770 ; 56771 goto __133 56772 __133: 56773 goto __132 56774 goto __134 56775 __134: 56776 ; 56777 __131: 56778 ; 56779 56780 // Release an enlarged frame vector that is on the heap. 56781 56782 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 56783 goto __142 56784 } 56785 (*struct { 56786 f func(*libc.TLS, uintptr, uintptr) 56787 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 56788 __142: 56789 ; 56790 56791 // Fill in fields that are always returned in the match data. 56792 56793 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 56794 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark 56795 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_INTERPRETER 56796 56797 // Handle a fully successful match. Set the return code to the number of 56798 // captured strings, or 0 if there were too many to fit into the ovector, and then 56799 // set the remaining returned values before returning. Make a copy of the subject 56800 // string if requested. 56801 56802 if !(rc == DMATCH_MATCH) { 56803 goto __143 56804 } 56805 56806 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = func() int32 { 56807 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top) >= 2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 56808 return 0 56809 } 56810 return int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top)/2 + 1 56811 }() 56812 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int32(start_match) - int32(subject)) / 1) 56813 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int32(subject)) / 1) 56814 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((func() int32 { 56815 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr { 56816 return int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) 56817 } 56818 return int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr) 56819 }() - int32(subject)) / 1) 56820 if !(options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 56821 goto __144 56822 } 56823 56824 length = (length + Tsize_t(was_zero_terminated)) * Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8) 56825 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 56826 f func(*libc.TLS, Tsize_t, uintptr) uintptr 56827 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 56828 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56829 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 56830 goto __146 56831 } 56832 return -48 56833 __146: 56834 ; 56835 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 56836 *(*Tuint8_t)(unsafe.Pointer(match_data + 37)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 56837 goto __145 56838 __144: 56839 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56840 __145: 56841 ; 56842 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56843 __143: 56844 ; 56845 56846 // Control gets here if there has been a partial match, an error, or if the 56847 // overall match attempt has failed at all permitted starting positions. Any mark 56848 // data is in the nomatch_mark field. 56849 56850 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 56851 56852 // For anything other than nomatch or partial match, just return the code. 56853 56854 if !(rc != DMATCH_NOMATCH && rc != -2) { 56855 goto __147 56856 } 56857 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 56858 goto __148 56859 __147: 56860 if !(match_partial != uintptr(0)) { 56861 goto __149 56862 } 56863 56864 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56865 *(*Tsize_t)(unsafe.Pointer(match_data + 44)) = Tsize_t((int32(match_partial) - int32(subject)) / 1) 56866 *(*Tsize_t)(unsafe.Pointer(match_data + 44 + 1*4)) = Tsize_t((int32(end_subject) - int32(subject)) / 1) 56867 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int32(match_partial) - int32(subject)) / 1) 56868 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int32(start_partial) - int32(subject)) / 1) 56869 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int32(end_subject) - int32(subject)) / 1) 56870 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -2 56871 goto __150 56872 __149: 56873 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -1 56874 __150: 56875 ; 56876 __148: 56877 ; 56878 56879 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56880 } 56881 56882 // End of pcre2_match.c 56883 56884 // This function is needed only when memmove() is not available. 56885 56886 // End of pcre2_internal.h 56887 56888 // ************************************************ 56889 // 56890 // Create a match data block given ovector size * 56891 // 56892 56893 // A minimum of 1 is imposed on the number of ovector pairs. 56894 56895 func Xpcre2_match_data_create_8(tls *libc.TLS, oveccount Tuint32_t, gcontext uintptr) uintptr { /* pcre2_match_data.c:56:33: */ 56896 var yield uintptr 56897 if oveccount < Tuint32_t(1) { 56898 oveccount = Tuint32_t(1) 56899 } 56900 yield = X_pcre2_memctl_malloc_8(tls, 56901 uint32(uintptr(0)+44)+uint32(Tuint32_t(2)*oveccount)*uint32(unsafe.Sizeof(Tsize_t(0))), 56902 gcontext) 56903 if yield == uintptr(0) { 56904 return uintptr(0) 56905 } 56906 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Foveccount = Tuint16_t(oveccount) 56907 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Fflags = Tuint8_t(0) 56908 return yield 56909 } 56910 56911 // ************************************************ 56912 // 56913 // Create a match data block using pattern data * 56914 // 56915 56916 // If no context is supplied, use the memory allocator from the code. 56917 56918 func Xpcre2_match_data_create_from_pattern_8(tls *libc.TLS, code uintptr, gcontext uintptr) uintptr { /* pcre2_match_data.c:78:33: */ 56919 if gcontext == uintptr(0) { 56920 gcontext = code 56921 } 56922 return Xpcre2_match_data_create_8(tls, uint32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1), 56923 gcontext) 56924 } 56925 56926 // ************************************************ 56927 // 56928 // Free a match data block * 56929 // 56930 56931 func Xpcre2_match_data_free_8(tls *libc.TLS, match_data uintptr) { /* pcre2_match_data.c:94:1: */ 56932 if match_data != uintptr(0) { 56933 if uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0) { 56934 (*struct { 56935 f func(*libc.TLS, uintptr, uintptr) 56936 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 56937 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56938 } 56939 (*struct { 56940 f func(*libc.TLS, uintptr, uintptr) 56941 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, match_data, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56942 } 56943 } 56944 56945 // ************************************************ 56946 // 56947 // Get last mark in match * 56948 // 56949 56950 func Xpcre2_get_mark_8(tls *libc.TLS, match_data uintptr) TPCRE2_SPTR8 { /* pcre2_match_data.c:112:1: */ 56951 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark 56952 } 56953 56954 // ************************************************ 56955 // 56956 // Get pointer to ovector * 56957 // 56958 56959 func Xpcre2_get_ovector_pointer_8(tls *libc.TLS, match_data uintptr) uintptr { /* pcre2_match_data.c:123:27: */ 56960 return match_data + 44 /* &.ovector */ 56961 } 56962 56963 // ************************************************ 56964 // 56965 // Get number of ovector slots * 56966 // 56967 56968 func Xpcre2_get_ovector_count_8(tls *libc.TLS, match_data uintptr) Tuint32_t { /* pcre2_match_data.c:136:1: */ 56969 return Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 56970 } 56971 56972 // ************************************************ 56973 // 56974 // Get starting code unit in match * 56975 // 56976 56977 func Xpcre2_get_startchar_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:148:1: */ 56978 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar 56979 } 56980 56981 // ************************************************ 56982 // 56983 // Get size of match data block * 56984 // 56985 56986 func Xpcre2_get_match_data_size_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:160:1: */ 56987 return uint32(uintptr(0)+44) + uint32(2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount))*uint32(unsafe.Sizeof(Tsize_t(0))) 56988 } 56989 56990 // End of pcre2_match_data.c 56991 56992 // This function is needed only when memmove() is not available. 56993 56994 // End of pcre2_internal.h 56995 56996 // ************************************************ 56997 // 56998 // Check for newline at given position * 56999 // 57000 57001 // This function is called only via the IS_NEWLINE macro, which does so only 57002 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57003 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the code unit 57004 // pointed to by ptr is less than the end of the string. 57005 // 57006 // Arguments: 57007 // ptr pointer to possible newline 57008 // type the newline type 57009 // endptr pointer to the end of the string 57010 // lenptr where to return the length 57011 // utf TRUE if in utf mode 57012 // 57013 // Returns: TRUE or FALSE 57014 57015 func X_pcre2_is_newline_8(tls *libc.TLS, ptr TPCRE2_SPTR8, type1 Tuint32_t, endptr TPCRE2_SPTR8, lenptr uintptr, utf TBOOL) TBOOL { /* pcre2_newline.c:79:1: */ 57016 var c Tuint32_t 57017 57018 if utf != 0 { 57019 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57020 if c >= 0xc0 { 57021 if c&0x20 == Tuint32_t(0) { 57022 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57023 } else if c&0x10 == Tuint32_t(0) { 57024 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57025 } else if c&0x08 == Tuint32_t(0) { 57026 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57027 } else if c&0x04 == Tuint32_t(0) { 57028 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57029 } else { 57030 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 57031 } 57032 } 57033 57034 } else { 57035 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57036 } 57037 57038 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57039 switch c { 57040 case Tuint32_t('\012'): 57041 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57042 return DTRUE 57043 fallthrough 57044 57045 case Tuint32_t('\015'): 57046 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57047 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57048 return uint32(2) 57049 } 57050 return uint32(1) 57051 }() 57052 return DTRUE 57053 fallthrough 57054 57055 default: 57056 return DFALSE 57057 } 57058 } else { 57059 switch c { 57060 case Tuint32_t('\012'): 57061 fallthrough 57062 case Tuint32_t('\013'): 57063 fallthrough 57064 case Tuint32_t('\014'): 57065 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57066 return DTRUE 57067 fallthrough 57068 57069 case Tuint32_t('\015'): 57070 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57071 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57072 return uint32(2) 57073 } 57074 return uint32(1) 57075 }() 57076 return DTRUE 57077 fallthrough 57078 57079 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 57080 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57081 if utf != 0 { 57082 return uint32(2) 57083 } 57084 return uint32(1) 57085 }() 57086 return DTRUE 57087 fallthrough 57088 57089 case Tuint32_t(0x2028): 57090 fallthrough // LS 57091 case Tuint32_t(0x2029): // PS 57092 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57093 return DTRUE 57094 fallthrough 57095 57096 default: 57097 return DFALSE 57098 } 57099 } 57100 return TBOOL(0) 57101 } 57102 57103 // ************************************************ 57104 // 57105 // Check for newline at previous position * 57106 // 57107 57108 // This function is called only via the WAS_NEWLINE macro, which does so only 57109 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57110 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the initial 57111 // value of ptr is greater than the start of the string that is being processed. 57112 // 57113 // Arguments: 57114 // ptr pointer to possible newline 57115 // type the newline type 57116 // startptr pointer to the start of the string 57117 // lenptr where to return the length 57118 // utf TRUE if in utf mode 57119 // 57120 // Returns: TRUE or FALSE 57121 57122 func X_pcre2_was_newline_8(tls *libc.TLS, ptr TPCRE2_SPTR8, type1 Tuint32_t, startptr TPCRE2_SPTR8, lenptr uintptr, utf TBOOL) TBOOL { /* pcre2_newline.c:169:1: */ 57123 var c Tuint32_t 57124 ptr-- 57125 57126 if utf != 0 { 57127 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80 { 57128 ptr-- 57129 } 57130 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57131 if c >= 0xc0 { 57132 if c&0x20 == Tuint32_t(0) { 57133 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57134 } else if c&0x10 == Tuint32_t(0) { 57135 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57136 } else if c&0x08 == Tuint32_t(0) { 57137 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57138 } else if c&0x04 == Tuint32_t(0) { 57139 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57140 } else { 57141 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 57142 } 57143 } 57144 57145 } else { 57146 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57147 } 57148 57149 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57150 switch c { 57151 case Tuint32_t('\012'): 57152 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57153 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57154 return uint32(2) 57155 } 57156 return uint32(1) 57157 }() 57158 return DTRUE 57159 fallthrough 57160 57161 case Tuint32_t('\015'): 57162 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57163 return DTRUE 57164 fallthrough 57165 57166 default: 57167 return DFALSE 57168 } 57169 } else { 57170 switch c { 57171 case Tuint32_t('\012'): 57172 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57173 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57174 return uint32(2) 57175 } 57176 return uint32(1) 57177 }() 57178 return DTRUE 57179 fallthrough 57180 57181 case Tuint32_t('\013'): 57182 fallthrough 57183 case Tuint32_t('\014'): 57184 fallthrough 57185 case Tuint32_t('\015'): 57186 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57187 return DTRUE 57188 fallthrough 57189 57190 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 57191 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57192 if utf != 0 { 57193 return uint32(2) 57194 } 57195 return uint32(1) 57196 }() 57197 return DTRUE 57198 fallthrough 57199 57200 case Tuint32_t(0x2028): 57201 fallthrough // LS 57202 case Tuint32_t(0x2029): // PS 57203 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57204 return DTRUE 57205 fallthrough 57206 57207 default: 57208 return DFALSE 57209 } 57210 } 57211 return TBOOL(0) 57212 } 57213 57214 // End of pcre2_newline.c 57215 57216 // This function is needed only when memmove() is not available. 57217 57218 // End of pcre2_internal.h 57219 57220 // If SUPPORT_UNICODE is not defined, this function will never be called. 57221 // Supply a dummy function because some compilers do not like empty source 57222 // modules. 57223 57224 // ************************************************ 57225 // 57226 // Convert code point to UTF * 57227 // 57228 57229 // 57230 // Arguments: 57231 // cvalue the character value 57232 // buffer pointer to buffer for result 57233 // 57234 // Returns: number of code units placed in the buffer 57235 57236 func X_pcre2_ord2utf_8(tls *libc.TLS, cvalue Tuint32_t, buffer uintptr) uint32 { /* pcre2_ord2utf.c:81:1: */ 57237 // Convert to UTF-8 57238 57239 var i int32 57240 var j int32 57241 for i = 0; i < X_pcre2_utf8_table1_size; i++ { 57242 if int32(cvalue) <= X_pcre2_utf8_table1[i] { 57243 break 57244 } 57245 } 57246 buffer += uintptr(i) 57247 for j = i; j > 0; j-- { 57248 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&buffer, 1))) = TPCRE2_UCHAR8(Tuint32_t(0x80) | cvalue&Tuint32_t(0x3f)) 57249 cvalue >>= 6 57250 } 57251 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer)) = TPCRE2_UCHAR8(Tuint32_t(X_pcre2_utf8_table2[i]) | cvalue) 57252 return uint32(i + 1) 57253 57254 // Convert to UTF-16 57255 57256 } 57257 57258 // End of pcre_ord2utf.c 57259 57260 // This function is needed only when memmove() is not available. 57261 57262 // End of pcre2_internal.h 57263 57264 // ************************************************ 57265 // 57266 // Return info about compiled pattern * 57267 // 57268 57269 // 57270 // Arguments: 57271 // code points to compiled code 57272 // what what information is required 57273 // where where to put the information; if NULL, return length 57274 // 57275 // Returns: 0 when data returned 57276 // > 0 when length requested 57277 // < 0 on error or unset value 57278 57279 func Xpcre2_pattern_info_8(tls *libc.TLS, code uintptr, what Tuint32_t, where uintptr) int32 { /* pcre2_pattern_info.c:65:1: */ 57280 var re uintptr = code 57281 57282 if where == uintptr(0) { 57283 switch what { 57284 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57285 fallthrough 57286 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57287 fallthrough 57288 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57289 fallthrough 57290 case Tuint32_t(DPCRE2_INFO_BSR): 57291 fallthrough 57292 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57293 fallthrough 57294 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57295 fallthrough 57296 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57297 fallthrough 57298 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57299 fallthrough 57300 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57301 fallthrough 57302 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57303 fallthrough 57304 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57305 fallthrough 57306 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57307 fallthrough 57308 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57309 fallthrough 57310 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57311 fallthrough 57312 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57313 fallthrough 57314 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57315 fallthrough 57316 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57317 fallthrough 57318 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57319 fallthrough 57320 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57321 fallthrough 57322 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57323 fallthrough 57324 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57325 fallthrough 57326 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57327 return int32(unsafe.Sizeof(Tuint32_t(0))) 57328 fallthrough 57329 57330 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57331 return int32(unsafe.Sizeof(uintptr(0))) 57332 fallthrough 57333 57334 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57335 fallthrough 57336 case Tuint32_t(DPCRE2_INFO_SIZE): 57337 fallthrough 57338 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57339 return int32(unsafe.Sizeof(Tsize_t(0))) 57340 fallthrough 57341 57342 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57343 return int32(unsafe.Sizeof(TPCRE2_SPTR8(0))) 57344 } 57345 } 57346 57347 if re == uintptr(0) { 57348 return -51 57349 } 57350 57351 // Check that the first field in the block is the magic number. If it is not, 57352 // return with PCRE2_ERROR_BADMAGIC. 57353 57354 if uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57355 return -31 57356 } 57357 57358 // Check that this pattern was compiled in the correct bit mode 57359 57360 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57361 return -32 57362 } 57363 57364 switch what { 57365 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57366 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 57367 break 57368 57369 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57370 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options 57371 break 57372 57373 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57374 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref) 57375 break 57376 57377 case Tuint32_t(DPCRE2_INFO_BSR): 57378 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention) 57379 break 57380 57381 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57382 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket) 57383 break 57384 57385 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57386 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 57387 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth == 4294967295 { 57388 return -55 57389 } 57390 break 57391 57392 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57393 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options 57394 break 57395 57396 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57397 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57398 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57399 return uint32(1) 57400 } 57401 return func() uint32 { 57402 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0) { 57403 return uint32(2) 57404 } 57405 return uint32(0) 57406 }() 57407 }() 57408 break 57409 57410 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57411 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57412 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57413 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit 57414 } 57415 return uint32(0) 57416 }() 57417 break 57418 57419 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57420 *(*uintptr)(unsafe.Pointer(where)) = func() uintptr { 57421 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) { 57422 return re + 20 57423 } 57424 return uintptr(0) 57425 }() 57426 break 57427 57428 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57429 *(*Tsize_t)(unsafe.Pointer(where)) = uint32(uintptr(0)+84) + uint32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint32(unsafe.Sizeof(Tsize_t(0))) 57430 break 57431 57432 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57433 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASBKC) != Tuint32_t(0))) 57434 break 57435 57436 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57437 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) != Tuint32_t(0))) 57438 break 57439 57440 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57441 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap 57442 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap == 4294967295 { 57443 return -55 57444 } 57445 break 57446 57447 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57448 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_JCHANGED) != Tuint32_t(0))) 57449 break 57450 57451 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57452 *(*Tsize_t)(unsafe.Pointer(where)) = Tsize_t(0) 57453 break 57454 57455 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57456 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57457 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57458 return uint32(1) 57459 } 57460 return uint32(0) 57461 }() 57462 break 57463 57464 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57465 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57466 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57467 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit 57468 } 57469 return uint32(0) 57470 }() 57471 break 57472 57473 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57474 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0))) 57475 break 57476 57477 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57478 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 57479 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match == 4294967295 { 57480 return -55 57481 } 57482 break 57483 57484 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57485 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 57486 break 57487 57488 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57489 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) 57490 break 57491 57492 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57493 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 57494 break 57495 57496 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57497 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count) 57498 break 57499 57500 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57501 *(*TPCRE2_SPTR8)(unsafe.Pointer(where)) = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) 57502 break 57503 57504 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57505 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) 57506 break 57507 57508 case Tuint32_t(DPCRE2_INFO_SIZE): 57509 *(*Tsize_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 57510 break 57511 57512 default: 57513 return -34 57514 } 57515 57516 return 0 57517 } 57518 57519 // ************************************************ 57520 // 57521 // Callout enumerator * 57522 // 57523 57524 // 57525 // Arguments: 57526 // code points to compiled code 57527 // callback function called for each callout block 57528 // callout_data user data passed to the callback 57529 // 57530 // Returns: 0 when successfully completed 57531 // < 0 on local error 57532 // != 0 for callback error 57533 57534 func Xpcre2_callout_enumerate_8(tls *libc.TLS, code uintptr, callback uintptr, callout_data uintptr) int32 { /* pcre2_pattern_info.c:268:1: */ 57535 bp := tls.Alloc(28) 57536 defer tls.Free(28) 57537 57538 var re uintptr = code 57539 // var cb Tpcre2_callout_enumerate_block_8 at bp, 28 57540 57541 var cc TPCRE2_SPTR8 57542 var utf TBOOL 57543 57544 if re == uintptr(0) { 57545 return -51 57546 } 57547 57548 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 57549 57550 // Check that the first field in the block is the magic number. If it is not, 57551 // return with PCRE2_ERROR_BADMAGIC. 57552 57553 if uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57554 return -31 57555 } 57556 57557 // Check that this pattern was compiled in the correct bit mode 57558 57559 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57560 return -32 57561 } 57562 57563 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fversion = Tuint32_t(0) 57564 cc = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) + 57565 uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 57566 57567 for 1 != 0 { 57568 var rc int32 57569 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 57570 case OP_END: 57571 return 0 57572 57573 case OP_CHAR: 57574 fallthrough 57575 case OP_CHARI: 57576 fallthrough 57577 case OP_NOT: 57578 fallthrough 57579 case OP_NOTI: 57580 fallthrough 57581 case OP_STAR: 57582 fallthrough 57583 case OP_MINSTAR: 57584 fallthrough 57585 case OP_PLUS: 57586 fallthrough 57587 case OP_MINPLUS: 57588 fallthrough 57589 case OP_QUERY: 57590 fallthrough 57591 case OP_MINQUERY: 57592 fallthrough 57593 case OP_UPTO: 57594 fallthrough 57595 case OP_MINUPTO: 57596 fallthrough 57597 case OP_EXACT: 57598 fallthrough 57599 case OP_POSSTAR: 57600 fallthrough 57601 case OP_POSPLUS: 57602 fallthrough 57603 case OP_POSQUERY: 57604 fallthrough 57605 case OP_POSUPTO: 57606 fallthrough 57607 case OP_STARI: 57608 fallthrough 57609 case OP_MINSTARI: 57610 fallthrough 57611 case OP_PLUSI: 57612 fallthrough 57613 case OP_MINPLUSI: 57614 fallthrough 57615 case OP_QUERYI: 57616 fallthrough 57617 case OP_MINQUERYI: 57618 fallthrough 57619 case OP_UPTOI: 57620 fallthrough 57621 case OP_MINUPTOI: 57622 fallthrough 57623 case OP_EXACTI: 57624 fallthrough 57625 case OP_POSSTARI: 57626 fallthrough 57627 case OP_POSPLUSI: 57628 fallthrough 57629 case OP_POSQUERYI: 57630 fallthrough 57631 case OP_POSUPTOI: 57632 fallthrough 57633 case OP_NOTSTAR: 57634 fallthrough 57635 case OP_NOTMINSTAR: 57636 fallthrough 57637 case OP_NOTPLUS: 57638 fallthrough 57639 case OP_NOTMINPLUS: 57640 fallthrough 57641 case OP_NOTQUERY: 57642 fallthrough 57643 case OP_NOTMINQUERY: 57644 fallthrough 57645 case OP_NOTUPTO: 57646 fallthrough 57647 case OP_NOTMINUPTO: 57648 fallthrough 57649 case OP_NOTEXACT: 57650 fallthrough 57651 case OP_NOTPOSSTAR: 57652 fallthrough 57653 case OP_NOTPOSPLUS: 57654 fallthrough 57655 case OP_NOTPOSQUERY: 57656 fallthrough 57657 case OP_NOTPOSUPTO: 57658 fallthrough 57659 case OP_NOTSTARI: 57660 fallthrough 57661 case OP_NOTMINSTARI: 57662 fallthrough 57663 case OP_NOTPLUSI: 57664 fallthrough 57665 case OP_NOTMINPLUSI: 57666 fallthrough 57667 case OP_NOTQUERYI: 57668 fallthrough 57669 case OP_NOTMINQUERYI: 57670 fallthrough 57671 case OP_NOTUPTOI: 57672 fallthrough 57673 case OP_NOTMINUPTOI: 57674 fallthrough 57675 case OP_NOTEXACTI: 57676 fallthrough 57677 case OP_NOTPOSSTARI: 57678 fallthrough 57679 case OP_NOTPOSPLUSI: 57680 fallthrough 57681 case OP_NOTPOSQUERYI: 57682 fallthrough 57683 case OP_NOTPOSUPTOI: 57684 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57685 if utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0 { 57686 cc += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 57687 } 57688 break 57689 57690 case OP_TYPESTAR: 57691 fallthrough 57692 case OP_TYPEMINSTAR: 57693 fallthrough 57694 case OP_TYPEPLUS: 57695 fallthrough 57696 case OP_TYPEMINPLUS: 57697 fallthrough 57698 case OP_TYPEQUERY: 57699 fallthrough 57700 case OP_TYPEMINQUERY: 57701 fallthrough 57702 case OP_TYPEUPTO: 57703 fallthrough 57704 case OP_TYPEMINUPTO: 57705 fallthrough 57706 case OP_TYPEEXACT: 57707 fallthrough 57708 case OP_TYPEPOSSTAR: 57709 fallthrough 57710 case OP_TYPEPOSPLUS: 57711 fallthrough 57712 case OP_TYPEPOSQUERY: 57713 fallthrough 57714 case OP_TYPEPOSUPTO: 57715 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57716 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_NOTPROP { 57717 cc += uintptr(2) 57718 } 57719 break 57720 57721 case OP_XCLASS: 57722 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57723 break 57724 57725 case OP_MARK: 57726 fallthrough 57727 case OP_COMMIT_ARG: 57728 fallthrough 57729 case OP_PRUNE_ARG: 57730 fallthrough 57731 case OP_SKIP_ARG: 57732 fallthrough 57733 case OP_THEN_ARG: 57734 cc += TPCRE2_SPTR8(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 57735 break 57736 57737 case OP_CALLOUT: 57738 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57739 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 57740 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5))) 57741 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_offset = Tsize_t(0) 57742 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_length = Tsize_t(0) 57743 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = uintptr(0) 57744 rc = (*struct { 57745 f func(*libc.TLS, uintptr, uintptr) int32 57746 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57747 if rc != 0 { 57748 return rc 57749 } 57750 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57751 break 57752 57753 case OP_CALLOUT_STR: 57754 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57755 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 57756 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(0) 57757 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 7)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 8))))) 57758 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6)))) - uint32(1+4*DLINK_SIZE) - uint32(2)) 57759 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = cc + uintptr(1+4*DLINK_SIZE) + uintptr(1) 57760 rc = (*struct { 57761 f func(*libc.TLS, uintptr, uintptr) int32 57762 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57763 if rc != 0 { 57764 return rc 57765 } 57766 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 57767 break 57768 57769 default: 57770 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57771 break 57772 } 57773 } 57774 return int32(0) 57775 } 57776 57777 // End of pcre2_pattern_info.c 57778 57779 func X_pcre2_script_run_8(tls *libc.TLS, ptr TPCRE2_SPTR8, endptr TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_script_run.c:85:1: */ 57780 bp := tls.Alloc(48) 57781 defer tls.Free(48) 57782 57783 var require_state Tuint32_t = SCRIPT_UNSET 57784 // var require_map [6]Tuint32_t at bp, 24 57785 57786 // var map1 [6]Tuint32_t at bp+24, 24 57787 57788 var require_digitset Tuint32_t = Tuint32_t(0) 57789 var c Tuint32_t 57790 57791 // Any string containing fewer than 2 characters is a valid script run. 57792 57793 if ptr >= endptr { 57794 return DTRUE 57795 } 57796 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 57797 if utf != 0 && c >= 0xc0 { 57798 if c&0x20 == Tuint32_t(0) { 57799 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 57800 } else if c&0x10 == Tuint32_t(0) { 57801 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57802 ptr += uintptr(2) 57803 } else if c&0x08 == Tuint32_t(0) { 57804 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57805 ptr += uintptr(3) 57806 } else if c&0x04 == Tuint32_t(0) { 57807 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57808 ptr += uintptr(4) 57809 } else { 57810 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57811 ptr += uintptr(5) 57812 } 57813 } 57814 57815 if ptr >= endptr { 57816 return DTRUE 57817 } 57818 57819 // Initialize the require map. This is a full-size bitmap that has a bit for 57820 // every script, as opposed to the maps in ucd_script_sets, which only have bits 57821 // for scripts less than ucp_Unknown - those that appear in script extension 57822 // lists. 57823 57824 { 57825 var i int32 = 0 57826 __1: 57827 if !(i < ucp_Script_Count/32+1) { 57828 goto __3 57829 } 57830 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) = Tuint32_t(0) 57831 goto __2 57832 __2: 57833 i++ 57834 goto __1 57835 goto __3 57836 __3: 57837 } 57838 57839 // Scan strings of two or more characters, checking the Unicode characteristics 57840 // of each code point. There is special code for scripts that can be combined with 57841 // characters from the Han Chinese script. This may be used in conjunction with 57842 // four other scripts in these combinations: 57843 // 57844 // . Han with Hiragana and Katakana is allowed (for Japanese). 57845 // . Han with Bopomofo is allowed (for Taiwanese Mandarin). 57846 // . Han with Hangul is allowed (for Korean). 57847 // 57848 // If the first significant character's script is one of the four, the required 57849 // script type is immediately known. However, if the first significant 57850 // character's script is Han, we have to keep checking for a non-Han character. 57851 // Hence the SCRIPT_HANPENDING state. 57852 57853 for { 57854 var ucd uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 57855 var script Tuint32_t = Tuint32_t((*Tucd_record)(unsafe.Pointer(ucd)).Fscript) 57856 57857 // If the script is Unknown, the string is not a valid script run. Such 57858 // characters can only form script runs of length one (see test above). 57859 57860 if script == ucp_Unknown { 57861 return DFALSE 57862 } 57863 57864 // A character without any script extensions whose script is Inherited or 57865 // Common is always accepted with any script. If there are extensions, the 57866 // following processing happens for all scripts. 57867 57868 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK != 0 || script != ucp_Inherited && script != ucp_Common { 57869 var OK TBOOL 57870 57871 // Set up a full-sized map for this character that can include bits for all 57872 // scripts. Copy the scriptx map for this character (which covers those 57873 // scripts that appear in script extension lists), set the remaining values to 57874 // zero, and then, except for Common or Inherited, add this script's bit to 57875 // the map. 57876 57877 libc.Xmemcpy(tls, bp+24, uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8))+uintptr(int32((*Tucd_record)(unsafe.Pointer(ucd)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4, uint32(ucp_Unknown/32+1)*uint32(unsafe.Sizeof(Tuint32_t(0)))) 57878 libc.Xmemset(tls, bp+24+uintptr(ucp_Unknown/32+1)*4, 0, uint32(ucp_Script_Count/32+1-(ucp_Unknown/32+1))*uint32(unsafe.Sizeof(Tuint32_t(0)))) 57879 if script != ucp_Common && script != ucp_Inherited { 57880 *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(script/Tuint32_t(32))*4)) |= uint32(1) << (script % Tuint32_t(32)) 57881 } 57882 57883 // Handle the different checking states 57884 57885 switch require_state { 57886 // First significant character - it might follow Common or Inherited 57887 // characters that do not have any script extensions. 57888 57889 case SCRIPT_UNSET: 57890 switch script { 57891 case ucp_Han: 57892 require_state = SCRIPT_HANPENDING 57893 break 57894 fallthrough 57895 57896 case ucp_Hiragana: 57897 fallthrough 57898 case ucp_Katakana: 57899 require_state = SCRIPT_HANHIRAKATA 57900 break 57901 fallthrough 57902 57903 case ucp_Bopomofo: 57904 require_state = SCRIPT_HANBOPOMOFO 57905 break 57906 fallthrough 57907 57908 case ucp_Hangul: 57909 require_state = SCRIPT_HANHANGUL 57910 break 57911 fallthrough 57912 57913 default: 57914 libc.Xmemcpy(tls, bp, bp+24, uint32(ucp_Script_Count/32+1)*uint32(unsafe.Sizeof(Tuint32_t(0)))) 57915 require_state = SCRIPT_MAP 57916 break 57917 } 57918 break 57919 fallthrough 57920 57921 // The first significant character was Han. An inspection of the Unicode 57922 // 11.0.0 files shows that there are the following types of Script Extension 57923 // list that involve the Han, Bopomofo, Hiragana, Katakana, and Hangul 57924 // scripts: 57925 // 57926 // . Bopomofo + Han 57927 // . Han + Hiragana + Katakana 57928 // . Hiragana + Katakana 57929 // . Bopopmofo + Hangul + Han + Hiragana + Katakana 57930 // 57931 // The following code tries to make sense of this. 57932 57933 case SCRIPT_HANPENDING: 57934 if script != ucp_Han { 57935 var chspecial Tuint32_t = Tuint32_t(0) 57936 57937 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Bopomofo%32)) != Tuint32_t(0) { 57938 chspecial = chspecial | Tuint32_t(DFOUND_BOPOMOFO) 57939 } 57940 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hiragana%32)) != Tuint32_t(0) { 57941 chspecial = chspecial | Tuint32_t(DFOUND_HIRAGANA) 57942 } 57943 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Katakana%32)) != Tuint32_t(0) { 57944 chspecial = chspecial | Tuint32_t(DFOUND_KATAKANA) 57945 } 57946 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hangul%32)) != Tuint32_t(0) { 57947 chspecial = chspecial | Tuint32_t(DFOUND_HANGUL) 57948 } 57949 57950 if chspecial == Tuint32_t(0) { 57951 return DFALSE 57952 } // Not allowed with Han 57953 57954 if chspecial == Tuint32_t(DFOUND_BOPOMOFO) { 57955 require_state = SCRIPT_HANBOPOMOFO 57956 } else if chspecial == Tuint32_t(DFOUND_HIRAGANA|DFOUND_KATAKANA) { 57957 require_state = SCRIPT_HANHIRAKATA 57958 } 57959 57960 // Otherwise this character must be allowed with all of them, so remain 57961 // in the pending state. 57962 } 57963 break 57964 fallthrough 57965 57966 // Previously encountered one of the "with Han" scripts. Check that 57967 // this character is appropriate. 57968 57969 case SCRIPT_HANHIRAKATA: 57970 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hiragana%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Katakana%32)) == Tuint32_t(0) { 57971 return DFALSE 57972 } 57973 break 57974 fallthrough 57975 57976 case SCRIPT_HANBOPOMOFO: 57977 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Bopomofo%32)) == Tuint32_t(0) { 57978 return DFALSE 57979 } 57980 break 57981 fallthrough 57982 57983 case SCRIPT_HANHANGUL: 57984 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hangul%32)) == Tuint32_t(0) { 57985 return DFALSE 57986 } 57987 break 57988 fallthrough 57989 57990 // Previously encountered one or more characters that are allowed with a 57991 // list of scripts. 57992 57993 case SCRIPT_MAP: 57994 OK = DFALSE 57995 57996 { 57997 var i int32 = 0 57998 __4: 57999 if !(i < ucp_Script_Count/32+1) { 58000 goto __6 58001 } 58002 { 58003 if *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4))&*(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) != Tuint32_t(0) { 58004 OK = DTRUE 58005 goto __6 58006 } 58007 58008 } 58009 goto __5 58010 __5: 58011 i++ 58012 goto __4 58013 goto __6 58014 __6: 58015 } 58016 58017 if !(OK != 0) { 58018 return DFALSE 58019 } 58020 58021 // The rest of the string must be in this script, but we have to 58022 // allow for the Han complications. 58023 58024 switch script { 58025 case ucp_Han: 58026 require_state = SCRIPT_HANPENDING 58027 break 58028 fallthrough 58029 58030 case ucp_Hiragana: 58031 fallthrough 58032 case ucp_Katakana: 58033 require_state = SCRIPT_HANHIRAKATA 58034 break 58035 fallthrough 58036 58037 case ucp_Bopomofo: 58038 require_state = SCRIPT_HANBOPOMOFO 58039 break 58040 fallthrough 58041 58042 case ucp_Hangul: 58043 require_state = SCRIPT_HANHANGUL 58044 break 58045 fallthrough 58046 58047 // Compute the intersection of the required list of scripts and the 58048 // allowed scripts for this character. 58049 58050 default: 58051 { 58052 var i int32 = 0 58053 __7: 58054 if !(i < ucp_Script_Count/32+1) { 58055 goto __9 58056 } 58057 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) &= *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) 58058 goto __8 58059 __8: 58060 i++ 58061 goto __7 58062 goto __9 58063 __9: 58064 } 58065 break 58066 } 58067 58068 break 58069 } 58070 } // End checking character's script and extensions. 58071 58072 // The character is in an acceptable script. We must now ensure that all 58073 // decimal digits in the string come from the same set. Some scripts (e.g. 58074 // Common, Arabic) have more than one set of decimal digits. This code does 58075 // not allow mixing sets, even within the same script. The vector called 58076 // PRIV(ucd_digit_sets)[] contains, in its first element, the number of 58077 // following elements, and then, in ascending order, the code points of the 58078 // '9' characters in every set of 10 digits. Each set is identified by the 58079 // offset in the vector of its '9' character. An initial check of the first 58080 // value picks up ASCII digits quickly. Otherwise, a binary chop is used. 58081 58082 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fchartype) == ucp_Nd { 58083 var digitset Tuint32_t 58084 58085 if c <= X_pcre2_ucd_digit_sets_8[1] { 58086 digitset = Tuint32_t(1) 58087 } else { 58088 var mid int32 58089 var bot int32 = 1 58090 var top int32 = int32(X_pcre2_ucd_digit_sets_8[0]) 58091 for { 58092 if top <= bot+1 { 58093 digitset = Tuint32_t(top) 58094 break 58095 } 58096 mid = (top + bot) / 2 58097 if c <= X_pcre2_ucd_digit_sets_8[mid] { 58098 top = mid 58099 } else { 58100 bot = mid 58101 } 58102 } 58103 } 58104 58105 // A required value of 0 means "unset". 58106 58107 if require_digitset == Tuint32_t(0) { 58108 require_digitset = digitset 58109 } else if digitset != require_digitset { 58110 return DFALSE 58111 } 58112 } // End digit handling 58113 58114 // If we haven't yet got to the end, pick up the next character. 58115 58116 if ptr >= endptr { 58117 return DTRUE 58118 } 58119 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 58120 if utf != 0 && c >= 0xc0 { 58121 if c&0x20 == Tuint32_t(0) { 58122 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 58123 } else if c&0x10 == Tuint32_t(0) { 58124 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 58125 ptr += uintptr(2) 58126 } else if c&0x08 == Tuint32_t(0) { 58127 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 58128 ptr += uintptr(3) 58129 } else if c&0x04 == Tuint32_t(0) { 58130 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 58131 ptr += uintptr(4) 58132 } else { 58133 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 58134 ptr += uintptr(5) 58135 } 58136 } 58137 58138 } 58139 return TBOOL(0) // End checking loop 58140 58141 } 58142 58143 // End of pcre2_script_run.c 58144 58145 // This function is needed only when memmove() is not available. 58146 58147 // End of pcre2_internal.h 58148 58149 // Magic number to provide a small check against being handed junk. 58150 58151 // Deserialization is limited to the current PCRE version and 58152 // character width. 58153 58154 // ************************************************ 58155 // 58156 // Serialize compiled patterns * 58157 // 58158 58159 func Xpcre2_serialize_encode_8(tls *libc.TLS, codes uintptr, number_of_codes Tint32_t, serialized_bytes uintptr, serialized_size uintptr, gcontext uintptr) Tint32_t { /* pcre2_serialize.c:72:1: */ 58160 var bytes uintptr 58161 var dst_bytes uintptr 58162 var i Tint32_t 58163 var total_size Tsize_t 58164 var re uintptr 58165 var tables uintptr 58166 var data uintptr 58167 58168 var memctl uintptr 58169 if gcontext != uintptr(0) { 58170 memctl = gcontext 58171 } else { 58172 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58173 } 58174 58175 if codes == uintptr(0) || serialized_bytes == uintptr(0) || serialized_size == uintptr(0) { 58176 return -51 58177 } 58178 58179 if number_of_codes <= 0 { 58180 return -29 58181 } 58182 58183 // Compute total size. 58184 total_size = uint32(unsafe.Sizeof(Tpcre2_serialized_data{})) + uint32(Dcbits_offset+Dcbit_length+256) 58185 tables = uintptr(0) 58186 58187 for i = 0; i < number_of_codes; i++ { 58188 if *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*4)) == uintptr(0) { 58189 return -51 58190 } 58191 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*4)) 58192 if uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 58193 return -31 58194 } 58195 if tables == uintptr(0) { 58196 tables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 58197 } else if tables != (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables { 58198 return -30 58199 } 58200 total_size = total_size + (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 58201 } 58202 58203 // Initialize the byte stream. 58204 bytes = (*struct { 58205 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58206 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, total_size+Tsize_t(unsafe.Sizeof(Tpcre2_memctl{})), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58207 if bytes == uintptr(0) { 58208 return -48 58209 } 58210 58211 // The controller is stored as a hidden parameter. 58212 libc.Xmemcpy(tls, bytes, memctl, uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 58213 bytes += uintptr(unsafe.Sizeof(Tpcre2_memctl{})) 58214 58215 data = bytes 58216 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic = DSERIALIZED_DATA_MAGIC 58217 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion = Tuint32_t(DPCRE2_MAJOR | int32(DPCRE2_MINOR)<<16) 58218 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig = uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0))) | uint32(uint32(unsafe.Sizeof(uintptr(0))))<<8 | uint32(uint32(unsafe.Sizeof(Tsize_t(0))))<<16 58219 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes = number_of_codes 58220 58221 // Copy all compiled code data. 58222 dst_bytes = bytes + uintptr(uint32(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58223 libc.Xmemcpy(tls, dst_bytes, tables, uint32(Dcbits_offset+Dcbit_length+256)) 58224 dst_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58225 58226 for i = 0; i < number_of_codes; i++ { 58227 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*4)) 58228 libc.Xmemcpy(tls, dst_bytes, re, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58229 58230 // Certain fields in the compiled code block are re-set during 58231 // deserialization. In order to ensure that the serialized data stream is always 58232 // the same for the same pattern, set them to zero here. We can't assume the 58233 // copy of the pattern is correctly aligned for accessing the fields as part of 58234 // a structure. Note the use of sizeof(void *) in the second of these, to 58235 // specify the size of a pointer. If sizeof(uint8_t *) is used (tables is a 58236 // pointer to uint8_t), gcc gives a warning because the first argument is also a 58237 // pointer to uint8_t. Casting the first argument to (void *) can stop this, but 58238 // it didn't stop Coverity giving the same complaint. 58239 58240 libc.Xmemset(tls, dst_bytes+uintptr(uint32(uintptr(0))), 0, 58241 uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 58242 libc.Xmemset(tls, dst_bytes+uintptr(uint32(uintptr(0)+12)), 0, 58243 uint32(unsafe.Sizeof(uintptr(0)))) 58244 libc.Xmemset(tls, dst_bytes+uintptr(uint32(uintptr(0)+16)), 0, 58245 uint32(unsafe.Sizeof(uintptr(0)))) 58246 58247 dst_bytes += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58248 } 58249 58250 *(*uintptr)(unsafe.Pointer(serialized_bytes)) = bytes 58251 *(*Tsize_t)(unsafe.Pointer(serialized_size)) = total_size 58252 return number_of_codes 58253 } 58254 58255 // ************************************************ 58256 // 58257 // Deserialize compiled patterns * 58258 // 58259 58260 func Xpcre2_serialize_decode_8(tls *libc.TLS, codes uintptr, number_of_codes Tint32_t, bytes uintptr, gcontext uintptr) Tint32_t { /* pcre2_serialize.c:163:1: */ 58261 bp := tls.Alloc(4) 58262 defer tls.Free(4) 58263 58264 var data uintptr = bytes 58265 var memctl uintptr 58266 if gcontext != uintptr(0) { 58267 memctl = gcontext 58268 } else { 58269 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58270 } 58271 var src_bytes uintptr 58272 var dst_re uintptr 58273 var tables uintptr 58274 var i Tint32_t 58275 var j Tint32_t 58276 58277 // Sanity checks. 58278 58279 if data == uintptr(0) || codes == uintptr(0) { 58280 return -51 58281 } 58282 if number_of_codes <= 0 { 58283 return -29 58284 } 58285 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes <= 0 { 58286 return -62 58287 } 58288 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58289 return -31 58290 } 58291 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58292 return -32 58293 } 58294 if uint32((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint32(uint32(unsafe.Sizeof(uintptr(0))))<<8|uint32(uint32(unsafe.Sizeof(Tsize_t(0))))<<16 { 58295 return -32 58296 } 58297 58298 if number_of_codes > (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes { 58299 number_of_codes = (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58300 } 58301 58302 src_bytes = bytes + uintptr(uint32(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58303 58304 // Decode tables. The reference count for the tables is stored immediately 58305 // following them. 58306 58307 tables = (*struct { 58308 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58309 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, uint32(Dcbits_offset+Dcbit_length+256)+uint32(unsafe.Sizeof(Tsize_t(0))), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58310 if tables == uintptr(0) { 58311 return -48 58312 } 58313 58314 libc.Xmemcpy(tls, tables, src_bytes, uint32(Dcbits_offset+Dcbit_length+256)) 58315 *(*Tsize_t)(unsafe.Pointer(tables + uintptr(Dcbits_offset+Dcbit_length+256))) = Tsize_t(number_of_codes) 58316 src_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58317 58318 // Decode the byte stream. We must not try to read the size from the compiled 58319 // code block in the stream, because it might be unaligned, which causes errors on 58320 // hardware such as Sparc-64 that doesn't like unaligned memory accesses. The type 58321 // of the blocksize field is given its own name to ensure that it is the same here 58322 // as in the block. 58323 58324 for i = 0; i < number_of_codes; i++ { 58325 // var blocksize Tsize_t at bp, 4 58326 58327 libc.Xmemcpy(tls, bp, src_bytes+uintptr(uint32(uintptr(0)+52)), 58328 uint32(unsafe.Sizeof(Tsize_t(0)))) 58329 if *(*Tsize_t)(unsafe.Pointer(bp)) <= Tsize_t(unsafe.Sizeof(Tpcre2_real_code_8{})) { 58330 return -62 58331 } 58332 58333 // The allocator provided by gcontext replaces the original one. 58334 58335 dst_re = X_pcre2_memctl_malloc_8(tls, *(*Tsize_t)(unsafe.Pointer(bp /* blocksize */)), 58336 gcontext) 58337 if dst_re == uintptr(0) { 58338 (*struct { 58339 f func(*libc.TLS, uintptr, uintptr) 58340 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, tables, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58341 for j = 0; j < i; j++ { 58342 (*struct { 58343 f func(*libc.TLS, uintptr, uintptr) 58344 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*4)), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58345 *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*4)) = uintptr(0) 58346 } 58347 return -48 58348 } 58349 58350 // The new allocator must be preserved. 58351 58352 libc.Xmemcpy(tls, dst_re+uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))), 58353 src_bytes+uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))), *(*Tsize_t)(unsafe.Pointer(bp))-Tsize_t(unsafe.Sizeof(Tpcre2_memctl{}))) 58354 if uint32((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fmagic_number) != DMAGIC_NUMBER || int32((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fname_entry_size) > DMAX_NAME_SIZE+DIMM2_SIZE+1 || int32((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fname_count) > DMAX_NAME_COUNT { 58355 (*struct { 58356 f func(*libc.TLS, uintptr, uintptr) 58357 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, dst_re, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58358 return -62 58359 } 58360 58361 // At the moment only one table is supported. 58362 58363 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Ftables = tables 58364 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fexecutable_jit = uintptr(0) 58365 *(*Tuint32_t)(unsafe.Pointer(dst_re + 72)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 58366 58367 *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*4)) = dst_re 58368 src_bytes += uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* blocksize */))) 58369 } 58370 58371 return number_of_codes 58372 } 58373 58374 // ************************************************ 58375 // 58376 // Get the number of serialized patterns * 58377 // 58378 58379 func Xpcre2_serialize_get_number_of_codes_8(tls *libc.TLS, bytes uintptr) Tint32_t { /* pcre2_serialize.c:259:1: */ 58380 var data uintptr = bytes 58381 58382 if data == uintptr(0) { 58383 return -51 58384 } 58385 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58386 return -31 58387 } 58388 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58389 return -32 58390 } 58391 if uint32((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint32(uint32(unsafe.Sizeof(uintptr(0))))<<8|uint32(uint32(unsafe.Sizeof(Tsize_t(0))))<<16 { 58392 return -32 58393 } 58394 58395 return (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58396 } 58397 58398 // ************************************************ 58399 // 58400 // Free the allocated stream * 58401 // 58402 58403 func Xpcre2_serialize_free_8(tls *libc.TLS, bytes uintptr) { /* pcre2_serialize.c:277:1: */ 58404 if bytes != uintptr(0) { 58405 var memctl uintptr = bytes - uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 58406 (*struct { 58407 f func(*libc.TLS, uintptr, uintptr) 58408 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58409 } 58410 } 58411 58412 // End of pcre2_serialize.c 58413 58414 // This function is needed only when memmove() is not available. 58415 58416 // End of pcre2_internal.h 58417 58418 // ************************************************ 58419 // 58420 // Emulated memmove() for systems without it * 58421 // 58422 58423 // This function can make use of bcopy() if it is available. Otherwise do it by 58424 // steam, as there some non-Unix environments that lack both memmove() and 58425 // bcopy(). 58426 58427 // ************************************************ 58428 // 58429 // Compare two zero-terminated PCRE2 strings * 58430 // 58431 58432 // 58433 // Arguments: 58434 // str1 first string 58435 // str2 second string 58436 // 58437 // Returns: 0, 1, or -1 58438 58439 func X_pcre2_strcmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8) int32 { /* pcre2_string_utils.c:102:1: */ 58440 var c1 TPCRE2_UCHAR8 58441 var c2 TPCRE2_UCHAR8 58442 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str2))) != 0 { 58443 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58444 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58445 if int32(c1) != int32(c2) { 58446 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58447 } 58448 } 58449 return 0 58450 } 58451 58452 // ************************************************ 58453 // 58454 // Compare zero-terminated PCRE2 & 8-bit strings * 58455 // 58456 58457 // As the 8-bit string is almost always a literal, its type is specified as 58458 // const char *. 58459 // 58460 // Arguments: 58461 // str1 first string 58462 // str2 second string 58463 // 58464 // Returns: 0, 1, or -1 58465 58466 func X_pcre2_strcmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr) int32 { /* pcre2_string_utils.c:130:1: */ 58467 var c1 TPCRE2_UCHAR8 58468 var c2 TPCRE2_UCHAR8 58469 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*int8)(unsafe.Pointer(str2))) != 0 { 58470 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58471 c2 = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58472 if int32(c1) != int32(c2) { 58473 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58474 } 58475 } 58476 return 0 58477 } 58478 58479 // ************************************************ 58480 // 58481 // Compare two PCRE2 strings, given a length * 58482 // 58483 58484 // 58485 // Arguments: 58486 // str1 first string 58487 // str2 second string 58488 // len the length 58489 // 58490 // Returns: 0, 1, or -1 58491 58492 func X_pcre2_strncmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8, len Tsize_t) int32 { /* pcre2_string_utils.c:157:1: */ 58493 var c1 TPCRE2_UCHAR8 58494 var c2 TPCRE2_UCHAR8 58495 for ; len > Tsize_t(0); len-- { 58496 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58497 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58498 if int32(c1) != int32(c2) { 58499 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58500 } 58501 } 58502 return 0 58503 } 58504 58505 // ************************************************ 58506 // 58507 // Compare PCRE2 string to 8-bit string by length * 58508 // 58509 58510 // As the 8-bit string is almost always a literal, its type is specified as 58511 // const char *. 58512 // 58513 // Arguments: 58514 // str1 first string 58515 // str2 second string 58516 // len the length 58517 // 58518 // Returns: 0, 1, or -1 58519 58520 func X_pcre2_strncmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr, len Tsize_t) int32 { /* pcre2_string_utils.c:186:1: */ 58521 var c1 TPCRE2_UCHAR8 58522 var c2 TPCRE2_UCHAR8 58523 for ; len > Tsize_t(0); len-- { 58524 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58525 c2 = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58526 if int32(c1) != int32(c2) { 58527 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58528 } 58529 } 58530 return 0 58531 } 58532 58533 // ************************************************ 58534 // 58535 // Find the length of a PCRE2 string * 58536 // 58537 58538 // 58539 // Argument: the string 58540 // Returns: the length 58541 58542 func X_pcre2_strlen_8(tls *libc.TLS, str TPCRE2_SPTR8) Tsize_t { /* pcre2_string_utils.c:209:1: */ 58543 var c Tsize_t = Tsize_t(0) 58544 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str, 1)))) != 0 { 58545 c++ 58546 } 58547 return c 58548 } 58549 58550 // ************************************************ 58551 // 58552 // Copy 8-bit 0-terminated string to PCRE2 string * 58553 // 58554 58555 // Arguments: 58556 // str1 buffer to receive the string 58557 // str2 8-bit string to be copied 58558 // 58559 // Returns: the number of code units used (excluding trailing zero) 58560 58561 func X_pcre2_strcpy_c8_8(tls *libc.TLS, str1 uintptr, str2 uintptr) Tsize_t { /* pcre2_string_utils.c:229:1: */ 58562 var t uintptr = str1 58563 for int32(*(*int8)(unsafe.Pointer(str2))) != 0 { 58564 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&t, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58565 } 58566 *(*TPCRE2_UCHAR8)(unsafe.Pointer(t)) = TPCRE2_UCHAR8(0) 58567 return Tsize_t((int32(t) - int32(str1)) / 1) 58568 } 58569 58570 // End of pcre2_string_utils.c 58571 58572 // ************************************************ 58573 // 58574 // Find the minimum subject length for a group * 58575 // 58576 58577 // Scan a parenthesized group and compute the minimum length of subject that 58578 // is needed to match it. This is a lower bound; it does not mean there is a 58579 // string of that length that matches. In UTF mode, the result is in characters 58580 // rather than code units. The field in a compiled pattern for storing the minimum 58581 // length is 16-bits long (on the grounds that anything longer than that is 58582 // pathological), so we give up when we reach that amount. This also means that 58583 // integer overflow for really crazy patterns cannot happen. 58584 // 58585 // Backreference minimum lengths are cached to speed up multiple references. This 58586 // function is called only when the highest back reference in the pattern is less 58587 // than or equal to MAX_CACHE_BACKREF, which is one less than the size of the 58588 // caching vector. The zeroth element contains the number of the highest set 58589 // value. 58590 // 58591 // Arguments: 58592 // re compiled pattern block 58593 // code pointer to start of group (the bracket) 58594 // startcode pointer to start of the whole pattern's code 58595 // utf UTF flag 58596 // recurses chain of recurse_check to catch mutual recursion 58597 // countptr pointer to call count (to catch over complexity) 58598 // backref_cache vector for caching back references. 58599 // 58600 // This function is no longer called when the pattern contains (*ACCEPT); however, 58601 // the old code for returning -1 is retained, just in case. 58602 // 58603 // Returns: the minimum length 58604 // -1 \C in UTF-8 mode 58605 // or (*ACCEPT) 58606 // or pattern too complicated 58607 // -2 internal error (missing capturing bracket) 58608 // -3 internal error (opcode not listed) 58609 58610 func find_minlength(tls *libc.TLS, re uintptr, code TPCRE2_SPTR8, startcode TPCRE2_SPTR8, utf TBOOL, recurses uintptr, countptr uintptr, backref_cache uintptr) int32 { /* pcre2_study.c:103:1: */ 58611 bp := tls.Alloc(8) 58612 defer tls.Free(8) 58613 58614 var length int32 58615 var branchlength int32 58616 var prev_cap_recno int32 58617 var prev_cap_d int32 58618 var prev_recurse_recno int32 58619 var prev_recurse_d int32 58620 var once_fudge Tuint32_t 58621 var had_recurse TBOOL 58622 var dupcapused TBOOL 58623 var nextbranch TPCRE2_SPTR8 58624 var cc uintptr 58625 // var this_recurse Trecurse_check at bp, 8 58626 58627 var r uintptr 58628 var dd int32 58629 var i int32 58630 var count int32 58631 var slot uintptr 58632 var r1 uintptr 58633 var i1 int32 58634 var r2 uintptr 58635 var d int32 58636 var min int32 58637 var recno int32 58638 var op TPCRE2_UCHAR8 58639 var cs uintptr 58640 var ce uintptr 58641 length = -1 58642 branchlength = 0 58643 prev_cap_recno = -1 58644 prev_cap_d = 0 58645 prev_recurse_recno = -1 58646 prev_recurse_d = 0 58647 once_fudge = Tuint32_t(0) 58648 had_recurse = DFALSE 58649 dupcapused = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_DUPCAPUSED) != Tuint32_t(0)) 58650 nextbranch = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 58651 cc = code + uintptr(1) + uintptr(DLINK_SIZE) 58652 58653 // If this is a "could be empty" group, its minimum length is 0. 58654 58655 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) >= OP_SBRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) <= OP_SCOND) { 58656 goto __1 58657 } 58658 return 0 58659 __1: 58660 ; 58661 58662 // Skip over capturing bracket number 58663 58664 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS) { 58665 goto __2 58666 } 58667 cc += uintptr(DIMM2_SIZE) 58668 __2: 58669 ; 58670 58671 // A large and/or complex regex can take too long to process. 58672 58673 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(countptr)), 1) > 1000) { 58674 goto __3 58675 } 58676 return -1 58677 __3: 58678 ; 58679 58680 // Scan along the opcodes for this branch. If we get to the end of the branch, 58681 // check the length against that of the other branches. If the accumulated length 58682 // passes 16-bits, reset to that value and skip the rest of the branch. 58683 58684 __4: 58685 58686 if !(branchlength >= 65535) { 58687 goto __7 58688 } 58689 58690 branchlength = 65535 58691 cc = nextbranch 58692 __7: 58693 ; 58694 58695 op = *(*TPCRE2_UCHAR8)(unsafe.Pointer(cc)) 58696 switch int32(op) { 58697 case OP_COND: 58698 goto __9 58699 case OP_SCOND: 58700 goto __10 58701 58702 case OP_BRA: 58703 goto __11 58704 // Fall through 58705 58706 case OP_ONCE: 58707 goto __12 58708 case OP_SCRIPT_RUN: 58709 goto __13 58710 case OP_SBRA: 58711 goto __14 58712 case OP_BRAPOS: 58713 goto __15 58714 case OP_SBRAPOS: 58715 goto __16 58716 58717 // To save time for repeated capturing subpatterns, we remember the 58718 // length of the previous one. Unfortunately we can't do the same for 58719 // the unnumbered ones above. Nor can we do this if (?| is present in the 58720 // pattern because captures with the same number are not then identical. 58721 58722 case OP_CBRA: 58723 goto __17 58724 case OP_SCBRA: 58725 goto __18 58726 case OP_CBRAPOS: 58727 goto __19 58728 case OP_SCBRAPOS: 58729 goto __20 58730 58731 // ACCEPT makes things far too complicated; we have to give up. In fact, 58732 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 58733 // used. However, leave the code in place, just in case. 58734 58735 case OP_ACCEPT: 58736 goto __21 58737 case OP_ASSERT_ACCEPT: 58738 goto __22 58739 58740 // Reached end of a branch; if it's a ket it is the end of a nested 58741 // call. If it's ALT it is an alternation in a nested call. If it is END it's 58742 // the end of the outer call. All can be handled by the same code. If the 58743 // length of any branch is zero, there is no need to scan any subsequent 58744 // branches. 58745 58746 case OP_ALT: 58747 goto __23 58748 case OP_KET: 58749 goto __24 58750 case OP_KETRMAX: 58751 goto __25 58752 case OP_KETRMIN: 58753 goto __26 58754 case OP_KETRPOS: 58755 goto __27 58756 case OP_END: 58757 goto __28 58758 58759 // Skip over assertive subpatterns 58760 58761 case OP_ASSERT: 58762 goto __29 58763 case OP_ASSERT_NOT: 58764 goto __30 58765 case OP_ASSERTBACK: 58766 goto __31 58767 case OP_ASSERTBACK_NOT: 58768 goto __32 58769 case OP_ASSERT_NA: 58770 goto __33 58771 case OP_ASSERTBACK_NA: 58772 goto __34 58773 // Fall through 58774 58775 // Skip over things that don't match chars 58776 58777 case OP_REVERSE: 58778 goto __35 58779 case OP_CREF: 58780 goto __36 58781 case OP_DNCREF: 58782 goto __37 58783 case OP_RREF: 58784 goto __38 58785 case OP_DNRREF: 58786 goto __39 58787 case OP_FALSE: 58788 goto __40 58789 case OP_TRUE: 58790 goto __41 58791 case OP_CALLOUT: 58792 goto __42 58793 case OP_SOD: 58794 goto __43 58795 case OP_SOM: 58796 goto __44 58797 case OP_EOD: 58798 goto __45 58799 case OP_EODN: 58800 goto __46 58801 case OP_CIRC: 58802 goto __47 58803 case OP_CIRCM: 58804 goto __48 58805 case OP_DOLL: 58806 goto __49 58807 case OP_DOLLM: 58808 goto __50 58809 case OP_NOT_WORD_BOUNDARY: 58810 goto __51 58811 case OP_WORD_BOUNDARY: 58812 goto __52 58813 58814 case OP_CALLOUT_STR: 58815 goto __53 58816 58817 // Skip over a subpattern that has a {0} or {0,x} quantifier 58818 58819 case OP_BRAZERO: 58820 goto __54 58821 case OP_BRAMINZERO: 58822 goto __55 58823 case OP_BRAPOSZERO: 58824 goto __56 58825 case OP_SKIPZERO: 58826 goto __57 58827 58828 // Handle literal characters and + repetitions 58829 58830 case OP_CHAR: 58831 goto __58 58832 case OP_CHARI: 58833 goto __59 58834 case OP_NOT: 58835 goto __60 58836 case OP_NOTI: 58837 goto __61 58838 case OP_PLUS: 58839 goto __62 58840 case OP_PLUSI: 58841 goto __63 58842 case OP_MINPLUS: 58843 goto __64 58844 case OP_MINPLUSI: 58845 goto __65 58846 case OP_POSPLUS: 58847 goto __66 58848 case OP_POSPLUSI: 58849 goto __67 58850 case OP_NOTPLUS: 58851 goto __68 58852 case OP_NOTPLUSI: 58853 goto __69 58854 case OP_NOTMINPLUS: 58855 goto __70 58856 case OP_NOTMINPLUSI: 58857 goto __71 58858 case OP_NOTPOSPLUS: 58859 goto __72 58860 case OP_NOTPOSPLUSI: 58861 goto __73 58862 58863 case OP_TYPEPLUS: 58864 goto __74 58865 case OP_TYPEMINPLUS: 58866 goto __75 58867 case OP_TYPEPOSPLUS: 58868 goto __76 58869 58870 // Handle exact repetitions. The count is already in characters, but we 58871 // may need to skip over a multibyte character in UTF mode. 58872 58873 case OP_EXACT: 58874 goto __77 58875 case OP_EXACTI: 58876 goto __78 58877 case OP_NOTEXACT: 58878 goto __79 58879 case OP_NOTEXACTI: 58880 goto __80 58881 58882 case OP_TYPEEXACT: 58883 goto __81 58884 58885 // Handle single-char non-literal matchers 58886 58887 case OP_PROP: 58888 goto __82 58889 case OP_NOTPROP: 58890 goto __83 58891 // Fall through 58892 58893 case OP_NOT_DIGIT: 58894 goto __84 58895 case OP_DIGIT: 58896 goto __85 58897 case OP_NOT_WHITESPACE: 58898 goto __86 58899 case OP_WHITESPACE: 58900 goto __87 58901 case OP_NOT_WORDCHAR: 58902 goto __88 58903 case OP_WORDCHAR: 58904 goto __89 58905 case OP_ANY: 58906 goto __90 58907 case OP_ALLANY: 58908 goto __91 58909 case OP_EXTUNI: 58910 goto __92 58911 case OP_HSPACE: 58912 goto __93 58913 case OP_NOT_HSPACE: 58914 goto __94 58915 case OP_VSPACE: 58916 goto __95 58917 case OP_NOT_VSPACE: 58918 goto __96 58919 58920 // "Any newline" might match two characters, but it also might match just 58921 // one. 58922 58923 case OP_ANYNL: 58924 goto __97 58925 58926 // The single-byte matcher means we can't proceed in UTF mode. (In 58927 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 58928 // appear, but leave the code, just in case.) 58929 58930 case OP_ANYBYTE: 58931 goto __98 58932 58933 // For repeated character types, we have to test for \p and \P, which have 58934 // an extra two bytes of parameters. 58935 58936 case OP_TYPESTAR: 58937 goto __99 58938 case OP_TYPEMINSTAR: 58939 goto __100 58940 case OP_TYPEQUERY: 58941 goto __101 58942 case OP_TYPEMINQUERY: 58943 goto __102 58944 case OP_TYPEPOSSTAR: 58945 goto __103 58946 case OP_TYPEPOSQUERY: 58947 goto __104 58948 58949 case OP_TYPEUPTO: 58950 goto __105 58951 case OP_TYPEMINUPTO: 58952 goto __106 58953 case OP_TYPEPOSUPTO: 58954 goto __107 58955 58956 // Check a class for variable quantification 58957 58958 case OP_CLASS: 58959 goto __108 58960 case OP_NCLASS: 58961 goto __109 58962 case OP_XCLASS: 58963 goto __110 58964 58965 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 58966 // way: we find the minimum length for the subpattern. A recursion 58967 // (backreference or subroutine) causes an a flag to be set that causes the 58968 // length of this branch to be ignored. The logic is that a recursion can only 58969 // make sense if there is another alternative that stops the recursing. That 58970 // will provide the minimum length (when no recursion happens). 58971 // 58972 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 58973 // matches an empty string (by default it causes a matching failure), so in 58974 // that case we must set the minimum length to zero. 58975 // 58976 // For backreferenes, if duplicate numbers are present in the pattern we check 58977 // for a reference to a duplicate. If it is, we don't know which version will 58978 // be referenced, so we have to set the minimum length to zero. 58979 58980 // Duplicate named pattern back reference. 58981 58982 case OP_DNREF: 58983 goto __111 58984 case OP_DNREFI: 58985 goto __112 58986 58987 // Single back reference by number. References by name are converted to by 58988 // number when there is no duplication. 58989 58990 case OP_REF: 58991 goto __113 58992 case OP_REFI: 58993 goto __114 58994 58995 // Recursion always refers to the first occurrence of a subpattern with a 58996 // given number. Therefore, we can always make use of caching, even when the 58997 // pattern contains multiple subpatterns with the same number. 58998 58999 case OP_RECURSE: 59000 goto __115 59001 59002 // Anything else does not or need not match a character. We can get the 59003 // item's length from the table, but for those that can match zero occurrences 59004 // of a character, we must take special action for UTF-8 characters. As it 59005 // happens, the "NOT" versions of these opcodes are used at present only for 59006 // ASCII characters, so they could be omitted from this list. However, in 59007 // future that may change, so we include them here so as not to leave a 59008 // gotcha for a future maintainer. 59009 59010 case OP_UPTO: 59011 goto __116 59012 case OP_UPTOI: 59013 goto __117 59014 case OP_NOTUPTO: 59015 goto __118 59016 case OP_NOTUPTOI: 59017 goto __119 59018 case OP_MINUPTO: 59019 goto __120 59020 case OP_MINUPTOI: 59021 goto __121 59022 case OP_NOTMINUPTO: 59023 goto __122 59024 case OP_NOTMINUPTOI: 59025 goto __123 59026 case OP_POSUPTO: 59027 goto __124 59028 case OP_POSUPTOI: 59029 goto __125 59030 case OP_NOTPOSUPTO: 59031 goto __126 59032 case OP_NOTPOSUPTOI: 59033 goto __127 59034 59035 case OP_STAR: 59036 goto __128 59037 case OP_STARI: 59038 goto __129 59039 case OP_NOTSTAR: 59040 goto __130 59041 case OP_NOTSTARI: 59042 goto __131 59043 case OP_MINSTAR: 59044 goto __132 59045 case OP_MINSTARI: 59046 goto __133 59047 case OP_NOTMINSTAR: 59048 goto __134 59049 case OP_NOTMINSTARI: 59050 goto __135 59051 case OP_POSSTAR: 59052 goto __136 59053 case OP_POSSTARI: 59054 goto __137 59055 case OP_NOTPOSSTAR: 59056 goto __138 59057 case OP_NOTPOSSTARI: 59058 goto __139 59059 59060 case OP_QUERY: 59061 goto __140 59062 case OP_QUERYI: 59063 goto __141 59064 case OP_NOTQUERY: 59065 goto __142 59066 case OP_NOTQUERYI: 59067 goto __143 59068 case OP_MINQUERY: 59069 goto __144 59070 case OP_MINQUERYI: 59071 goto __145 59072 case OP_NOTMINQUERY: 59073 goto __146 59074 case OP_NOTMINQUERYI: 59075 goto __147 59076 case OP_POSQUERY: 59077 goto __148 59078 case OP_POSQUERYI: 59079 goto __149 59080 case OP_NOTPOSQUERY: 59081 goto __150 59082 case OP_NOTPOSQUERYI: 59083 goto __151 59084 59085 // Skip these, but we need to add in the name length. 59086 59087 case OP_MARK: 59088 goto __152 59089 case OP_COMMIT_ARG: 59090 goto __153 59091 case OP_PRUNE_ARG: 59092 goto __154 59093 case OP_SKIP_ARG: 59094 goto __155 59095 case OP_THEN_ARG: 59096 goto __156 59097 59098 // The remaining opcodes are just skipped over. 59099 59100 case OP_CLOSE: 59101 goto __157 59102 case OP_COMMIT: 59103 goto __158 59104 case OP_FAIL: 59105 goto __159 59106 case OP_PRUNE: 59107 goto __160 59108 case OP_SET_SOM: 59109 goto __161 59110 case OP_SKIP: 59111 goto __162 59112 case OP_THEN: 59113 goto __163 59114 59115 // This should not occur: we list all opcodes explicitly so that when 59116 // new ones get added they are properly considered. 59117 59118 default: 59119 goto __164 59120 } 59121 goto __8 59122 59123 __9: 59124 __10: 59125 59126 // If there is only one branch in a condition, the implied branch has zero 59127 // length, so we don't add anything. This covers the DEFINE "condition" 59128 // automatically. If there are two branches we can treat it the same as any 59129 // other non-capturing subpattern. 59130 59131 cs = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59132 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs))) != OP_ALT) { 59133 goto __165 59134 } 59135 59136 cc = cs + uintptr(1) + uintptr(DLINK_SIZE) 59137 goto __8 59138 __165: 59139 ; 59140 goto PROCESS_NON_CAPTURE 59141 59142 __11: 59143 // There's a special case of OP_BRA, when it is wrapped round a repeated 59144 // OP_RECURSE. We'd like to process the latter at this level so that 59145 // remembering the value works for repeated cases. So we do nothing, but 59146 // set a fudge value to skip over the OP_KET after the recurse. 59147 59148 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_RECURSE && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))) == OP_KET) { 59149 goto __166 59150 } 59151 59152 once_fudge = Tuint32_t(1 + DLINK_SIZE) 59153 cc += uintptr(1 + DLINK_SIZE) 59154 goto __8 59155 __166: 59156 ; 59157 // Fall through 59158 59159 __12: 59160 __13: 59161 __14: 59162 __15: 59163 __16: 59164 PROCESS_NON_CAPTURE: 59165 d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59166 backref_cache) 59167 if !(d < 0) { 59168 goto __167 59169 } 59170 return d 59171 __167: 59172 ; 59173 branchlength = branchlength + d 59174 __168: 59175 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59176 goto __169 59177 __169: 59178 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59179 goto __168 59180 } 59181 goto __170 59182 __170: 59183 ; 59184 cc += uintptr(1 + DLINK_SIZE) 59185 goto __8 59186 59187 // To save time for repeated capturing subpatterns, we remember the 59188 // length of the previous one. Unfortunately we can't do the same for 59189 // the unnumbered ones above. Nor can we do this if (?| is present in the 59190 // pattern because captures with the same number are not then identical. 59191 59192 __17: 59193 __18: 59194 __19: 59195 __20: 59196 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59197 if !(dupcapused != 0 || recno != prev_cap_recno) { 59198 goto __171 59199 } 59200 59201 prev_cap_recno = recno 59202 prev_cap_d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59203 backref_cache) 59204 if !(prev_cap_d < 0) { 59205 goto __172 59206 } 59207 return prev_cap_d 59208 __172: 59209 ; 59210 __171: 59211 ; 59212 branchlength = branchlength + prev_cap_d 59213 __173: 59214 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59215 goto __174 59216 __174: 59217 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59218 goto __173 59219 } 59220 goto __175 59221 __175: 59222 ; 59223 cc += uintptr(1 + DLINK_SIZE) 59224 goto __8 59225 59226 // ACCEPT makes things far too complicated; we have to give up. In fact, 59227 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 59228 // used. However, leave the code in place, just in case. 59229 59230 __21: 59231 __22: 59232 return -1 59233 59234 // Reached end of a branch; if it's a ket it is the end of a nested 59235 // call. If it's ALT it is an alternation in a nested call. If it is END it's 59236 // the end of the outer call. All can be handled by the same code. If the 59237 // length of any branch is zero, there is no need to scan any subsequent 59238 // branches. 59239 59240 __23: 59241 __24: 59242 __25: 59243 __26: 59244 __27: 59245 __28: 59246 if !(length < 0 || !(had_recurse != 0) && branchlength < length) { 59247 goto __176 59248 } 59249 length = branchlength 59250 __176: 59251 ; 59252 if !(int32(op) != OP_ALT || length == 0) { 59253 goto __177 59254 } 59255 return length 59256 __177: 59257 ; 59258 nextbranch = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59259 cc += uintptr(1 + DLINK_SIZE) 59260 branchlength = 0 59261 had_recurse = DFALSE 59262 goto __8 59263 59264 // Skip over assertive subpatterns 59265 59266 __29: 59267 __30: 59268 __31: 59269 __32: 59270 __33: 59271 __34: 59272 __178: 59273 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59274 goto __179 59275 __179: 59276 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59277 goto __178 59278 } 59279 goto __180 59280 __180: 59281 ; 59282 // Fall through 59283 59284 // Skip over things that don't match chars 59285 59286 __35: 59287 __36: 59288 __37: 59289 __38: 59290 __39: 59291 __40: 59292 __41: 59293 __42: 59294 __43: 59295 __44: 59296 __45: 59297 __46: 59298 __47: 59299 __48: 59300 __49: 59301 __50: 59302 __51: 59303 __52: 59304 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59305 goto __8 59306 59307 __53: 59308 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 59309 goto __8 59310 59311 // Skip over a subpattern that has a {0} or {0,x} quantifier 59312 59313 __54: 59314 __55: 59315 __56: 59316 __57: 59317 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59318 __181: 59319 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59320 goto __182 59321 __182: 59322 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59323 goto __181 59324 } 59325 goto __183 59326 __183: 59327 ; 59328 cc += uintptr(1 + DLINK_SIZE) 59329 goto __8 59330 59331 // Handle literal characters and + repetitions 59332 59333 __58: 59334 __59: 59335 __60: 59336 __61: 59337 __62: 59338 __63: 59339 __64: 59340 __65: 59341 __66: 59342 __67: 59343 __68: 59344 __69: 59345 __70: 59346 __71: 59347 __72: 59348 __73: 59349 branchlength++ 59350 cc += uintptr(2) 59351 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59352 goto __184 59353 } 59354 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59355 __184: 59356 ; 59357 goto __8 59358 59359 __74: 59360 __75: 59361 __76: 59362 branchlength++ 59363 cc += func() uintptr { 59364 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP { 59365 return uintptr(4) 59366 } 59367 return uintptr(2) 59368 }() 59369 goto __8 59370 59371 // Handle exact repetitions. The count is already in characters, but we 59372 // may need to skip over a multibyte character in UTF mode. 59373 59374 __77: 59375 __78: 59376 __79: 59377 __80: 59378 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59379 cc += uintptr(2 + DIMM2_SIZE) 59380 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59381 goto __185 59382 } 59383 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59384 __185: 59385 ; 59386 goto __8 59387 59388 __81: 59389 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59390 cc += uintptr(2 + DIMM2_SIZE + func() int32 { 59391 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59392 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP { 59393 return 2 59394 } 59395 return 0 59396 }()) 59397 goto __8 59398 59399 // Handle single-char non-literal matchers 59400 59401 __82: 59402 __83: 59403 cc += uintptr(2) 59404 // Fall through 59405 59406 __84: 59407 __85: 59408 __86: 59409 __87: 59410 __88: 59411 __89: 59412 __90: 59413 __91: 59414 __92: 59415 __93: 59416 __94: 59417 __95: 59418 __96: 59419 branchlength++ 59420 cc++ 59421 goto __8 59422 59423 // "Any newline" might match two characters, but it also might match just 59424 // one. 59425 59426 __97: 59427 branchlength = branchlength + 1 59428 cc++ 59429 goto __8 59430 59431 // The single-byte matcher means we can't proceed in UTF mode. (In 59432 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 59433 // appear, but leave the code, just in case.) 59434 59435 __98: 59436 if !(utf != 0) { 59437 goto __186 59438 } 59439 return -1 59440 __186: 59441 ; 59442 branchlength++ 59443 cc++ 59444 goto __8 59445 59446 // For repeated character types, we have to test for \p and \P, which have 59447 // an extra two bytes of parameters. 59448 59449 __99: 59450 __100: 59451 __101: 59452 __102: 59453 __103: 59454 __104: 59455 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP) { 59456 goto __187 59457 } 59458 cc += uintptr(2) 59459 __187: 59460 ; 59461 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59462 goto __8 59463 59464 __105: 59465 __106: 59466 __107: 59467 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59468 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP) { 59469 goto __188 59470 } 59471 cc += uintptr(2) 59472 __188: 59473 ; 59474 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59475 goto __8 59476 59477 // Check a class for variable quantification 59478 59479 __108: 59480 __109: 59481 __110: 59482 // The original code caused an unsigned overflow in 64 bit systems, 59483 // so now we use a conditional statement. 59484 if !(int32(op) == OP_XCLASS) { 59485 goto __189 59486 } 59487 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59488 goto __190 59489 __189: 59490 cc += uintptr(X_pcre2_OP_lengths_8[OP_CLASS]) 59491 __190: 59492 ; 59493 59494 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59495 case OP_CRPLUS: 59496 goto __192 59497 case OP_CRMINPLUS: 59498 goto __193 59499 case OP_CRPOSPLUS: 59500 goto __194 59501 // Fall through 59502 59503 case OP_CRSTAR: 59504 goto __195 59505 case OP_CRMINSTAR: 59506 goto __196 59507 case OP_CRQUERY: 59508 goto __197 59509 case OP_CRMINQUERY: 59510 goto __198 59511 case OP_CRPOSSTAR: 59512 goto __199 59513 case OP_CRPOSQUERY: 59514 goto __200 59515 59516 case OP_CRRANGE: 59517 goto __201 59518 case OP_CRMINRANGE: 59519 goto __202 59520 case OP_CRPOSRANGE: 59521 goto __203 59522 59523 default: 59524 goto __204 59525 } 59526 goto __191 59527 59528 __192: 59529 __193: 59530 __194: 59531 branchlength++ 59532 // Fall through 59533 59534 __195: 59535 __196: 59536 __197: 59537 __198: 59538 __199: 59539 __200: 59540 cc++ 59541 goto __191 59542 59543 __201: 59544 __202: 59545 __203: 59546 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59547 cc += uintptr(1 + 2*DIMM2_SIZE) 59548 goto __191 59549 59550 __204: 59551 branchlength++ 59552 goto __191 59553 __191: 59554 ; 59555 goto __8 59556 59557 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 59558 // way: we find the minimum length for the subpattern. A recursion 59559 // (backreference or subroutine) causes an a flag to be set that causes the 59560 // length of this branch to be ignored. The logic is that a recursion can only 59561 // make sense if there is another alternative that stops the recursing. That 59562 // will provide the minimum length (when no recursion happens). 59563 // 59564 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 59565 // matches an empty string (by default it causes a matching failure), so in 59566 // that case we must set the minimum length to zero. 59567 // 59568 // For backreferenes, if duplicate numbers are present in the pattern we check 59569 // for a reference to a duplicate. If it is, we don't know which version will 59570 // be referenced, so we have to set the minimum length to zero. 59571 59572 // Duplicate named pattern back reference. 59573 59574 __111: 59575 __112: 59576 if !(!(dupcapused != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59577 goto __205 59578 } 59579 59580 count = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59581 slot = 59582 re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))*uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 59583 59584 d = 0x7fffffff 59585 59586 // Scan all groups with the same name; find the shortest. 59587 59588 __207: 59589 if !(libc.PostDecInt32(&count, 1) > 0) { 59590 goto __208 59591 } 59592 59593 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1))))) 59594 59595 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59596 goto __209 59597 } 59598 dd = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59599 goto __210 59600 __209: 59601 59602 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59603 if !(cs == uintptr(0)) { 59604 goto __211 59605 } 59606 return -2 59607 __211: 59608 ; 59609 __212: 59610 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59611 goto __213 59612 __213: 59613 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59614 goto __212 59615 } 59616 goto __214 59617 __214: 59618 ; 59619 59620 dd = 0 59621 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59622 goto __215 59623 } 59624 59625 if !(cc > cs && cc < ce) { 59626 goto __216 59627 } /* Simple recursion */ 59628 59629 had_recurse = DTRUE 59630 goto __217 59631 __216: 59632 59633 r = recurses 59634 r = recurses 59635 __218: 59636 if !(r != uintptr(0)) { 59637 goto __220 59638 } 59639 if !((*Trecurse_check)(unsafe.Pointer(r)).Fgroup == cs) { 59640 goto __221 59641 } 59642 goto __220 59643 __221: 59644 ; 59645 goto __219 59646 __219: 59647 r = (*Trecurse_check)(unsafe.Pointer(r)).Fprev 59648 goto __218 59649 goto __220 59650 __220: 59651 ; 59652 if !(r != uintptr(0)) { 59653 goto __222 59654 } /* Mutual recursion */ 59655 59656 had_recurse = DTRUE 59657 goto __223 59658 __222: 59659 59660 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses // No recursion 59661 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59662 dd = find_minlength(tls, re, cs, startcode, utf, bp, 59663 countptr, backref_cache) 59664 if !(dd < 0) { 59665 goto __224 59666 } 59667 return dd 59668 __224: 59669 ; 59670 __223: 59671 ; 59672 __217: 59673 ; 59674 __215: 59675 ; 59676 59677 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = dd 59678 i = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59679 __225: 59680 if !(i < recno) { 59681 goto __227 59682 } 59683 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i)*4)) = -1 59684 goto __226 59685 __226: 59686 i++ 59687 goto __225 59688 goto __227 59689 __227: 59690 ; 59691 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59692 __210: 59693 ; 59694 59695 if !(dd < d) { 59696 goto __228 59697 } 59698 d = dd 59699 __228: 59700 ; 59701 if !(d <= 0) { 59702 goto __229 59703 } 59704 goto __208 59705 __229: 59706 ; // No point looking at any more 59707 slot += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 59708 goto __207 59709 __208: 59710 ; 59711 goto __206 59712 __205: 59713 d = 0 59714 __206: 59715 ; 59716 cc += uintptr(1 + 2*DIMM2_SIZE) 59717 goto REPEAT_BACK_REFERENCE 59718 59719 // Single back reference by number. References by name are converted to by 59720 // number when there is no duplication. 59721 59722 __113: 59723 __114: 59724 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59725 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59726 goto __230 59727 } 59728 d = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59729 goto __231 59730 __230: 59731 59732 d = 0 59733 59734 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59735 goto __232 59736 } 59737 59738 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59739 if !(cs == uintptr(0)) { 59740 goto __233 59741 } 59742 return -2 59743 __233: 59744 ; 59745 __234: 59746 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59747 goto __235 59748 __235: 59749 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59750 goto __234 59751 } 59752 goto __236 59753 __236: 59754 ; 59755 59756 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59757 goto __237 59758 } 59759 59760 if !(cc > cs && cc < ce) { 59761 goto __238 59762 } /* Simple recursion */ 59763 59764 had_recurse = DTRUE 59765 goto __239 59766 __238: 59767 59768 r1 = recurses 59769 r1 = recurses 59770 __240: 59771 if !(r1 != uintptr(0)) { 59772 goto __242 59773 } 59774 if !((*Trecurse_check)(unsafe.Pointer(r1)).Fgroup == cs) { 59775 goto __243 59776 } 59777 goto __242 59778 __243: 59779 ; 59780 goto __241 59781 __241: 59782 r1 = (*Trecurse_check)(unsafe.Pointer(r1)).Fprev 59783 goto __240 59784 goto __242 59785 __242: 59786 ; 59787 if !(r1 != uintptr(0)) { 59788 goto __244 59789 } /* Mutual recursion */ 59790 59791 had_recurse = DTRUE 59792 goto __245 59793 __244: /* No recursion */ 59794 59795 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59796 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59797 d = find_minlength(tls, re, cs, startcode, utf, bp, countptr, 59798 backref_cache) 59799 if !(d < 0) { 59800 goto __246 59801 } 59802 return d 59803 __246: 59804 ; 59805 __245: 59806 ; 59807 __239: 59808 ; 59809 __237: 59810 ; 59811 __232: 59812 ; 59813 59814 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = d 59815 i1 = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59816 __247: 59817 if !(i1 < recno) { 59818 goto __249 59819 } 59820 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i1)*4)) = -1 59821 goto __248 59822 __248: 59823 i1++ 59824 goto __247 59825 goto __249 59826 __249: 59827 ; 59828 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59829 __231: 59830 ; 59831 59832 cc += uintptr(1 + DIMM2_SIZE) 59833 59834 // Handle repeated back references 59835 59836 REPEAT_BACK_REFERENCE: 59837 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59838 case OP_CRSTAR: 59839 goto __251 59840 case OP_CRMINSTAR: 59841 goto __252 59842 case OP_CRQUERY: 59843 goto __253 59844 case OP_CRMINQUERY: 59845 goto __254 59846 case OP_CRPOSSTAR: 59847 goto __255 59848 case OP_CRPOSQUERY: 59849 goto __256 59850 59851 case OP_CRPLUS: 59852 goto __257 59853 case OP_CRMINPLUS: 59854 goto __258 59855 case OP_CRPOSPLUS: 59856 goto __259 59857 59858 case OP_CRRANGE: 59859 goto __260 59860 case OP_CRMINRANGE: 59861 goto __261 59862 case OP_CRPOSRANGE: 59863 goto __262 59864 59865 default: 59866 goto __263 59867 } 59868 goto __250 59869 59870 __251: 59871 __252: 59872 __253: 59873 __254: 59874 __255: 59875 __256: 59876 min = 0 59877 cc++ 59878 goto __250 59879 59880 __257: 59881 __258: 59882 __259: 59883 min = 1 59884 cc++ 59885 goto __250 59886 59887 __260: 59888 __261: 59889 __262: 59890 min = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59891 cc += uintptr(1 + 2*DIMM2_SIZE) 59892 goto __250 59893 59894 __263: 59895 min = 1 59896 goto __250 59897 __250: 59898 ; 59899 59900 // Take care not to overflow: (1) min and d are ints, so check that their 59901 // product is not greater than INT_MAX. (2) branchlength is limited to 59902 // UINT16_MAX (checked at the top of the loop). 59903 59904 if !(d > 0 && 0x7fffffff/d < min || 65535-branchlength < min*d) { 59905 goto __264 59906 } 59907 branchlength = 65535 59908 goto __265 59909 __264: 59910 branchlength = branchlength + min*d 59911 __265: 59912 ; 59913 goto __8 59914 59915 // Recursion always refers to the first occurrence of a subpattern with a 59916 // given number. Therefore, we can always make use of caching, even when the 59917 // pattern contains multiple subpatterns with the same number. 59918 59919 __115: 59920 cs = libc.AssignUintptr(&ce, startcode+uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2)))))) 59921 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 4))))) 59922 if !(recno == prev_recurse_recno) { 59923 goto __266 59924 } 59925 59926 branchlength = branchlength + prev_recurse_d 59927 goto __267 59928 __266: 59929 59930 __268: 59931 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59932 goto __269 59933 __269: 59934 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59935 goto __268 59936 } 59937 goto __270 59938 __270: 59939 ; 59940 if !(cc > cs && cc < ce) { 59941 goto __271 59942 } // Simple recursion 59943 had_recurse = DTRUE 59944 goto __272 59945 __271: 59946 59947 r2 = recurses 59948 r2 = recurses 59949 __273: 59950 if !(r2 != uintptr(0)) { 59951 goto __275 59952 } 59953 if !((*Trecurse_check)(unsafe.Pointer(r2)).Fgroup == cs) { 59954 goto __276 59955 } 59956 goto __275 59957 __276: 59958 ; 59959 goto __274 59960 __274: 59961 r2 = (*Trecurse_check)(unsafe.Pointer(r2)).Fprev 59962 goto __273 59963 goto __275 59964 __275: 59965 ; 59966 if !(r2 != uintptr(0)) { 59967 goto __277 59968 } // Mutual recursion 59969 had_recurse = DTRUE 59970 goto __278 59971 __277: 59972 59973 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59974 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59975 prev_recurse_d = find_minlength(tls, re, cs, startcode, utf, bp, 59976 countptr, backref_cache) 59977 if !(prev_recurse_d < 0) { 59978 goto __279 59979 } 59980 return prev_recurse_d 59981 __279: 59982 ; 59983 prev_recurse_recno = recno 59984 branchlength = branchlength + prev_recurse_d 59985 __278: 59986 ; 59987 __272: 59988 ; 59989 __267: 59990 ; 59991 cc += uintptr(Tuint32_t(1+DLINK_SIZE) + once_fudge) 59992 once_fudge = Tuint32_t(0) 59993 goto __8 59994 59995 // Anything else does not or need not match a character. We can get the 59996 // item's length from the table, but for those that can match zero occurrences 59997 // of a character, we must take special action for UTF-8 characters. As it 59998 // happens, the "NOT" versions of these opcodes are used at present only for 59999 // ASCII characters, so they could be omitted from this list. However, in 60000 // future that may change, so we include them here so as not to leave a 60001 // gotcha for a future maintainer. 60002 60003 __116: 60004 __117: 60005 __118: 60006 __119: 60007 __120: 60008 __121: 60009 __122: 60010 __123: 60011 __124: 60012 __125: 60013 __126: 60014 __127: 60015 60016 __128: 60017 __129: 60018 __130: 60019 __131: 60020 __132: 60021 __133: 60022 __134: 60023 __135: 60024 __136: 60025 __137: 60026 __138: 60027 __139: 60028 60029 __140: 60030 __141: 60031 __142: 60032 __143: 60033 __144: 60034 __145: 60035 __146: 60036 __147: 60037 __148: 60038 __149: 60039 __150: 60040 __151: 60041 60042 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60043 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 60044 goto __280 60045 } 60046 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 60047 __280: 60048 ; 60049 goto __8 60050 60051 // Skip these, but we need to add in the name length. 60052 60053 __152: 60054 __153: 60055 __154: 60056 __155: 60057 __156: 60058 cc += uintptr(int32(X_pcre2_OP_lengths_8[op]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 60059 goto __8 60060 60061 // The remaining opcodes are just skipped over. 60062 60063 __157: 60064 __158: 60065 __159: 60066 __160: 60067 __161: 60068 __162: 60069 __163: 60070 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60071 goto __8 60072 60073 // This should not occur: we list all opcodes explicitly so that when 60074 // new ones get added they are properly considered. 60075 60076 __164: 60077 return -3 60078 __8: 60079 ; 60080 goto __5 60081 __5: 60082 goto __4 60083 goto __6 60084 __6: 60085 ; 60086 return int32(0) 60087 // Control never gets here 60088 } 60089 60090 // ************************************************ 60091 // 60092 // Set a bit and maybe its alternate case * 60093 // 60094 60095 // Given a character, set its first code unit's bit in the table, and also the 60096 // corresponding bit for the other version of a letter if we are caseless. 60097 // 60098 // Arguments: 60099 // re points to the regex block 60100 // p points to the first code unit of the character 60101 // caseless TRUE if caseless 60102 // utf TRUE for UTF mode 60103 // ucp TRUE for UCP mode 60104 // 60105 // Returns: pointer after the character 60106 60107 func set_table_bit(tls *libc.TLS, re uintptr, p TPCRE2_SPTR8, caseless TBOOL, utf TBOOL, ucp TBOOL) TPCRE2_SPTR8 { /* pcre2_study.c:781:1: */ 60108 bp := tls.Alloc(6) 60109 defer tls.Free(6) 60110 60111 var c Tuint32_t = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) // First code unit 60112 60113 _ = utf // Stop compiler warnings when UTF not supported 60114 _ = ucp 60115 60116 // In 16-bit and 32-bit modes, code units greater than 0xff set the bit for 60117 // 0xff. 60118 60119 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60120 60121 // In UTF-8 or UTF-16 mode, pick up the remaining code units in order to find 60122 // the end of the character, even when caseless. 60123 60124 if utf != 0 { 60125 if c >= Tuint32_t(0xc0) { 60126 if c&0x20 == Tuint32_t(0) { 60127 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 60128 } else if c&0x10 == Tuint32_t(0) { 60129 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 60130 p += uintptr(2) 60131 } else if c&0x08 == Tuint32_t(0) { 60132 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f 60133 p += uintptr(3) 60134 } else if c&0x04 == Tuint32_t(0) { 60135 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f 60136 p += uintptr(4) 60137 } else { 60138 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 4)))&0x3f 60139 p += uintptr(5) 60140 } 60141 } 60142 60143 } 60144 60145 // If caseless, handle the other case of the character. 60146 60147 if caseless != 0 { 60148 if utf != 0 || ucp != 0 { 60149 c = Tuint32_t(int32(c) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) 60150 if utf != 0 { 60151 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60152 60153 X_pcre2_ord2utf_8(tls, c, bp) 60154 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60155 } else if c < Tuint32_t(256) { 60156 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60157 } 60158 } else 60159 60160 // Not UTF or UCP 60161 60162 if 1 != 0 { 60163 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dfcc_offset)+c))))/8))) |= Tuint8_t(uint32(1) << (int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dfcc_offset)+c)))) & 7)) 60164 } 60165 } 60166 60167 return p 60168 } 60169 60170 // ************************************************ 60171 // 60172 // Set bits for a positive character type * 60173 // 60174 60175 // This function sets starting bits for a character type. In UTF-8 mode, we can 60176 // only do a direct setting for bytes less than 128, as otherwise there can be 60177 // confusion with bytes in the middle of UTF-8 characters. In a "traditional" 60178 // environment, the tables will only recognize ASCII characters anyway, but in at 60179 // least one Windows environment, some higher bytes bits were set in the tables. 60180 // So we deal with that case by considering the UTF-8 encoding. 60181 // 60182 // Arguments: 60183 // re the regex block 60184 // cbit type the type of character wanted 60185 // table_limit 32 for non-UTF-8; 16 for UTF-8 60186 // 60187 // Returns: nothing 60188 60189 func set_type_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:866:1: */ 60190 bp := tls.Alloc(6) 60191 defer tls.Free(6) 60192 60193 var c Tuint32_t 60194 for c = Tuint32_t(0); c < table_limit; c++ { 60195 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(c+Tuint32_t(Dcbits_offset)+Tuint32_t(cbit_type)))))) 60196 } 60197 if table_limit == uint32(32) { 60198 return 60199 } 60200 for c = Tuint32_t(128); c < Tuint32_t(256); c++ { 60201 if uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dcbits_offset)+c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0) { 60202 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60203 60204 X_pcre2_ord2utf_8(tls, c, bp) 60205 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60206 } 60207 } 60208 } 60209 60210 // ************************************************ 60211 // 60212 // Set bits for a negative character type * 60213 // 60214 60215 // This function sets starting bits for a negative character type such as \D. 60216 // In UTF-8 mode, we can only do a direct setting for bytes less than 128, as 60217 // otherwise there can be confusion with bytes in the middle of UTF-8 characters. 60218 // Unlike in the positive case, where we can set appropriate starting bits for 60219 // specific high-valued UTF-8 characters, in this case we have to set the bits for 60220 // all high-valued characters. The lowest is 0xc2, but we overkill by starting at 60221 // 0xc0 (192) for simplicity. 60222 // 60223 // Arguments: 60224 // re the regex block 60225 // cbit type the type of character wanted 60226 // table_limit 32 for non-UTF-8; 16 for UTF-8 60227 // 60228 // Returns: nothing 60229 60230 func set_nottype_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:907:1: */ 60231 var c Tuint32_t 60232 for c = Tuint32_t(0); c < table_limit; c++ { 60233 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(c+Tuint32_t(Dcbits_offset)+Tuint32_t(cbit_type)))))))) 60234 } 60235 if table_limit != uint32(32) { 60236 for c = Tuint32_t(24); c < Tuint32_t(32); c++ { 60237 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c))) = Tuint8_t(0xff) 60238 } 60239 } 60240 } 60241 60242 // ************************************************ 60243 // 60244 // Create bitmap of starting code units * 60245 // 60246 60247 // This function scans a compiled unanchored expression recursively and 60248 // attempts to build a bitmap of the set of possible starting code units whose 60249 // values are less than 256. In 16-bit and 32-bit mode, values above 255 all cause 60250 // the 255 bit to be set. When calling set[_not]_type_bits() in UTF-8 (sic) mode 60251 // we pass a value of 16 rather than 32 as the final argument. (See comments in 60252 // those functions for the reason.) 60253 // 60254 // The SSB_CONTINUE return is useful for parenthesized groups in patterns such as 60255 // (a*)b where the group provides some optional starting code units but scanning 60256 // must continue at the outer level to find at least one mandatory code unit. At 60257 // the outermost level, this function fails unless the result is SSB_DONE. 60258 // 60259 // We restrict recursion (for nested groups) to 1000 to avoid stack overflow 60260 // issues. 60261 // 60262 // Arguments: 60263 // re points to the compiled regex block 60264 // code points to an expression 60265 // utf TRUE if in UTF mode 60266 // ucp TRUE if in UCP mode 60267 // depthptr pointer to recurse depth 60268 // 60269 // Returns: SSB_FAIL => Failed to find any starting code units 60270 // SSB_DONE => Found mandatory starting code units 60271 // SSB_CONTINUE => Found optional starting code units 60272 // SSB_UNKNOWN => Hit an unrecognized opcode 60273 // SSB_TOODEEP => Recursion is too deep 60274 60275 func set_start_bits(tls *libc.TLS, re uintptr, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, depthptr uintptr) int32 { /* pcre2_study.c:953:1: */ 60276 bp := tls.Alloc(6) 60277 defer tls.Free(6) 60278 60279 var c Tuint32_t 60280 var yield int32 60281 var table_limit int32 60282 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60283 60284 var p uintptr 60285 var b TPCRE2_UCHAR8 60286 var e TPCRE2_UCHAR8 60287 var p1 TPCRE2_SPTR8 60288 var d int32 60289 var rc int32 60290 var classmap uintptr 60291 var xclassflags TPCRE2_UCHAR8 60292 var try_next TBOOL 60293 var tcode TPCRE2_SPTR8 60294 yield = SSB_DONE 60295 if utf != 0 { 60296 table_limit = 16 60297 } else { 60298 table_limit = 32 60299 } 60300 60301 *(*int32)(unsafe.Pointer(depthptr)) += 1 60302 if !(*(*int32)(unsafe.Pointer(depthptr)) > 1000) { 60303 goto __1 60304 } 60305 return SSB_TOODEEP 60306 __1: 60307 ; 60308 60309 __2: 60310 try_next = DTRUE 60311 tcode = code + uintptr(1) + uintptr(DLINK_SIZE) 60312 60313 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRAPOS) { 60314 goto __5 60315 } 60316 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 60317 __5: 60318 ; 60319 60320 __6: 60321 if !(try_next != 0) { 60322 goto __7 60323 } /* Loop for items in this branch */ 60324 classmap = uintptr(0) 60325 60326 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 60327 // If we reach something we don't understand, it means a new opcode has 60328 // been created that hasn't been added to this function. Hopefully this 60329 // problem will be discovered during testing. 60330 60331 default: 60332 goto __9 60333 60334 // Fail for a valid opcode that implies no starting bits. 60335 60336 case OP_ACCEPT: 60337 goto __10 60338 case OP_ASSERT_ACCEPT: 60339 goto __11 60340 case OP_ALLANY: 60341 goto __12 60342 case OP_ANY: 60343 goto __13 60344 case OP_ANYBYTE: 60345 goto __14 60346 case OP_CIRCM: 60347 goto __15 60348 case OP_CLOSE: 60349 goto __16 60350 case OP_COMMIT: 60351 goto __17 60352 case OP_COMMIT_ARG: 60353 goto __18 60354 case OP_COND: 60355 goto __19 60356 case OP_CREF: 60357 goto __20 60358 case OP_FALSE: 60359 goto __21 60360 case OP_TRUE: 60361 goto __22 60362 case OP_DNCREF: 60363 goto __23 60364 case OP_DNREF: 60365 goto __24 60366 case OP_DNREFI: 60367 goto __25 60368 case OP_DNRREF: 60369 goto __26 60370 case OP_DOLL: 60371 goto __27 60372 case OP_DOLLM: 60373 goto __28 60374 case OP_END: 60375 goto __29 60376 case OP_EOD: 60377 goto __30 60378 case OP_EODN: 60379 goto __31 60380 case OP_EXTUNI: 60381 goto __32 60382 case OP_FAIL: 60383 goto __33 60384 case OP_MARK: 60385 goto __34 60386 case OP_NOT: 60387 goto __35 60388 case OP_NOTEXACT: 60389 goto __36 60390 case OP_NOTEXACTI: 60391 goto __37 60392 case OP_NOTI: 60393 goto __38 60394 case OP_NOTMINPLUS: 60395 goto __39 60396 case OP_NOTMINPLUSI: 60397 goto __40 60398 case OP_NOTMINQUERY: 60399 goto __41 60400 case OP_NOTMINQUERYI: 60401 goto __42 60402 case OP_NOTMINSTAR: 60403 goto __43 60404 case OP_NOTMINSTARI: 60405 goto __44 60406 case OP_NOTMINUPTO: 60407 goto __45 60408 case OP_NOTMINUPTOI: 60409 goto __46 60410 case OP_NOTPLUS: 60411 goto __47 60412 case OP_NOTPLUSI: 60413 goto __48 60414 case OP_NOTPOSPLUS: 60415 goto __49 60416 case OP_NOTPOSPLUSI: 60417 goto __50 60418 case OP_NOTPOSQUERY: 60419 goto __51 60420 case OP_NOTPOSQUERYI: 60421 goto __52 60422 case OP_NOTPOSSTAR: 60423 goto __53 60424 case OP_NOTPOSSTARI: 60425 goto __54 60426 case OP_NOTPOSUPTO: 60427 goto __55 60428 case OP_NOTPOSUPTOI: 60429 goto __56 60430 case OP_NOTPROP: 60431 goto __57 60432 case OP_NOTQUERY: 60433 goto __58 60434 case OP_NOTQUERYI: 60435 goto __59 60436 case OP_NOTSTAR: 60437 goto __60 60438 case OP_NOTSTARI: 60439 goto __61 60440 case OP_NOTUPTO: 60441 goto __62 60442 case OP_NOTUPTOI: 60443 goto __63 60444 case OP_NOT_HSPACE: 60445 goto __64 60446 case OP_NOT_VSPACE: 60447 goto __65 60448 case OP_PRUNE: 60449 goto __66 60450 case OP_PRUNE_ARG: 60451 goto __67 60452 case OP_RECURSE: 60453 goto __68 60454 case OP_REF: 60455 goto __69 60456 case OP_REFI: 60457 goto __70 60458 case OP_REVERSE: 60459 goto __71 60460 case OP_RREF: 60461 goto __72 60462 case OP_SCOND: 60463 goto __73 60464 case OP_SET_SOM: 60465 goto __74 60466 case OP_SKIP: 60467 goto __75 60468 case OP_SKIP_ARG: 60469 goto __76 60470 case OP_SOD: 60471 goto __77 60472 case OP_SOM: 60473 goto __78 60474 case OP_THEN: 60475 goto __79 60476 case OP_THEN_ARG: 60477 goto __80 60478 60479 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60480 // uses OP_CIRCM). Skip over it. 60481 60482 case OP_CIRC: 60483 goto __81 60484 60485 // A "real" property test implies no starting bits, but the fake property 60486 // PT_CLIST identifies a list of characters. These lists are short, as they 60487 // are used for characters with more than one "other case", so there is no 60488 // point in recognizing them for OP_NOTPROP. 60489 60490 case OP_PROP: 60491 goto __82 60492 60493 // We can ignore word boundary tests. 60494 60495 case OP_WORD_BOUNDARY: 60496 goto __83 60497 case OP_NOT_WORD_BOUNDARY: 60498 goto __84 60499 60500 // If we hit a bracket or a positive lookahead assertion, recurse to set 60501 // bits from within the subpattern. If it can't find anything, we have to 60502 // give up. If it finds some mandatory character(s), we are done for this 60503 // branch. Otherwise, carry on scanning after the subpattern. 60504 60505 case OP_BRA: 60506 goto __85 60507 case OP_SBRA: 60508 goto __86 60509 case OP_CBRA: 60510 goto __87 60511 case OP_SCBRA: 60512 goto __88 60513 case OP_BRAPOS: 60514 goto __89 60515 case OP_SBRAPOS: 60516 goto __90 60517 case OP_CBRAPOS: 60518 goto __91 60519 case OP_SCBRAPOS: 60520 goto __92 60521 case OP_ONCE: 60522 goto __93 60523 case OP_SCRIPT_RUN: 60524 goto __94 60525 case OP_ASSERT: 60526 goto __95 60527 case OP_ASSERT_NA: 60528 goto __96 60529 60530 // If we hit ALT or KET, it means we haven't found anything mandatory in 60531 // this branch, though we might have found something optional. For ALT, we 60532 // continue with the next alternative, but we have to arrange that the final 60533 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60534 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60535 // but after a nested subpattern, it causes scanning to continue. 60536 60537 case OP_ALT: 60538 goto __97 60539 60540 case OP_KET: 60541 goto __98 60542 case OP_KETRMAX: 60543 goto __99 60544 case OP_KETRMIN: 60545 goto __100 60546 case OP_KETRPOS: 60547 goto __101 60548 60549 // Skip over callout 60550 60551 case OP_CALLOUT: 60552 goto __102 60553 60554 case OP_CALLOUT_STR: 60555 goto __103 60556 60557 // Skip over lookbehind and negative lookahead assertions 60558 60559 case OP_ASSERT_NOT: 60560 goto __104 60561 case OP_ASSERTBACK: 60562 goto __105 60563 case OP_ASSERTBACK_NOT: 60564 goto __106 60565 case OP_ASSERTBACK_NA: 60566 goto __107 60567 60568 // BRAZERO does the bracket, but carries on. 60569 60570 case OP_BRAZERO: 60571 goto __108 60572 case OP_BRAMINZERO: 60573 goto __109 60574 case OP_BRAPOSZERO: 60575 goto __110 60576 60577 // SKIPZERO skips the bracket. 60578 60579 case OP_SKIPZERO: 60580 goto __111 60581 60582 // Single-char * or ? sets the bit and tries the next item 60583 60584 case OP_STAR: 60585 goto __112 60586 case OP_MINSTAR: 60587 goto __113 60588 case OP_POSSTAR: 60589 goto __114 60590 case OP_QUERY: 60591 goto __115 60592 case OP_MINQUERY: 60593 goto __116 60594 case OP_POSQUERY: 60595 goto __117 60596 60597 case OP_STARI: 60598 goto __118 60599 case OP_MINSTARI: 60600 goto __119 60601 case OP_POSSTARI: 60602 goto __120 60603 case OP_QUERYI: 60604 goto __121 60605 case OP_MINQUERYI: 60606 goto __122 60607 case OP_POSQUERYI: 60608 goto __123 60609 60610 // Single-char upto sets the bit and tries the next 60611 60612 case OP_UPTO: 60613 goto __124 60614 case OP_MINUPTO: 60615 goto __125 60616 case OP_POSUPTO: 60617 goto __126 60618 60619 case OP_UPTOI: 60620 goto __127 60621 case OP_MINUPTOI: 60622 goto __128 60623 case OP_POSUPTOI: 60624 goto __129 60625 60626 // At least one single char sets the bit and stops 60627 60628 case OP_EXACT: 60629 goto __130 60630 // Fall through 60631 case OP_CHAR: 60632 goto __131 60633 case OP_PLUS: 60634 goto __132 60635 case OP_MINPLUS: 60636 goto __133 60637 case OP_POSPLUS: 60638 goto __134 60639 60640 case OP_EXACTI: 60641 goto __135 60642 // Fall through 60643 case OP_CHARI: 60644 goto __136 60645 case OP_PLUSI: 60646 goto __137 60647 case OP_MINPLUSI: 60648 goto __138 60649 case OP_POSPLUSI: 60650 goto __139 60651 60652 // Special spacing and line-terminating items. These recognize specific 60653 // lists of characters. The difference between VSPACE and ANYNL is that the 60654 // latter can match the two-character CRLF sequence, but that is not 60655 // relevant for finding the first character, so their code here is 60656 // identical. 60657 60658 case OP_HSPACE: 60659 goto __140 60660 60661 case OP_ANYNL: 60662 goto __141 60663 case OP_VSPACE: 60664 goto __142 60665 60666 // Single character types set the bits and stop. Note that if PCRE2_UCP 60667 // is set, we do not see these opcodes because \d etc are converted to 60668 // properties. Therefore, these apply in the case when only characters less 60669 // than 256 are recognized to match the types. 60670 60671 case OP_NOT_DIGIT: 60672 goto __143 60673 60674 case OP_DIGIT: 60675 goto __144 60676 60677 case OP_NOT_WHITESPACE: 60678 goto __145 60679 60680 case OP_WHITESPACE: 60681 goto __146 60682 60683 case OP_NOT_WORDCHAR: 60684 goto __147 60685 60686 case OP_WORDCHAR: 60687 goto __148 60688 60689 // One or more character type fudges the pointer and restarts, knowing 60690 // it will hit a single character type and stop there. 60691 60692 case OP_TYPEPLUS: 60693 goto __149 60694 case OP_TYPEMINPLUS: 60695 goto __150 60696 case OP_TYPEPOSPLUS: 60697 goto __151 60698 60699 case OP_TYPEEXACT: 60700 goto __152 60701 60702 // Zero or more repeats of character types set the bits and then 60703 // try again. 60704 60705 case OP_TYPEUPTO: 60706 goto __153 60707 case OP_TYPEMINUPTO: 60708 goto __154 60709 case OP_TYPEPOSUPTO: 60710 goto __155 // Fall through 60711 60712 case OP_TYPESTAR: 60713 goto __156 60714 case OP_TYPEMINSTAR: 60715 goto __157 60716 case OP_TYPEPOSSTAR: 60717 goto __158 60718 case OP_TYPEQUERY: 60719 goto __159 60720 case OP_TYPEMINQUERY: 60721 goto __160 60722 case OP_TYPEPOSQUERY: 60723 goto __161 60724 60725 // Extended class: if there are any property checks, or if this is a 60726 // negative XCLASS without a map, give up. If there are no property checks, 60727 // there must be wide characters on the XCLASS list, because otherwise an 60728 // XCLASS would not have been created. This means that code points >= 255 60729 // are potential starters. In the UTF-8 case we can scan them and set bits 60730 // for the relevant leading bytes. 60731 60732 case OP_XCLASS: 60733 goto __162 60734 60735 // It seems that the fall through comment must be outside the #ifdef if 60736 // it is to avoid the gcc compiler warning. 60737 60738 // Fall through 60739 60740 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 60741 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 60742 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 60743 // there is no difference between CLASS and NCLASS. In all other wide 60744 // character modes, set the 0xFF bit to indicate code units >= 255. 60745 60746 case OP_NCLASS: 60747 goto __163 60748 // Fall through 60749 60750 // Enter here for a positive non-XCLASS. If we have fallen through from 60751 // an XCLASS, classmap will already be set; just advance the code pointer. 60752 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 60753 60754 case OP_CLASS: 60755 goto __164 60756 } 60757 goto __8 60758 60759 // If we reach something we don't understand, it means a new opcode has 60760 // been created that hasn't been added to this function. Hopefully this 60761 // problem will be discovered during testing. 60762 60763 __9: 60764 return SSB_UNKNOWN 60765 60766 // Fail for a valid opcode that implies no starting bits. 60767 60768 __10: 60769 __11: 60770 __12: 60771 __13: 60772 __14: 60773 __15: 60774 __16: 60775 __17: 60776 __18: 60777 __19: 60778 __20: 60779 __21: 60780 __22: 60781 __23: 60782 __24: 60783 __25: 60784 __26: 60785 __27: 60786 __28: 60787 __29: 60788 __30: 60789 __31: 60790 __32: 60791 __33: 60792 __34: 60793 __35: 60794 __36: 60795 __37: 60796 __38: 60797 __39: 60798 __40: 60799 __41: 60800 __42: 60801 __43: 60802 __44: 60803 __45: 60804 __46: 60805 __47: 60806 __48: 60807 __49: 60808 __50: 60809 __51: 60810 __52: 60811 __53: 60812 __54: 60813 __55: 60814 __56: 60815 __57: 60816 __58: 60817 __59: 60818 __60: 60819 __61: 60820 __62: 60821 __63: 60822 __64: 60823 __65: 60824 __66: 60825 __67: 60826 __68: 60827 __69: 60828 __70: 60829 __71: 60830 __72: 60831 __73: 60832 __74: 60833 __75: 60834 __76: 60835 __77: 60836 __78: 60837 __79: 60838 __80: 60839 return SSB_FAIL 60840 60841 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60842 // uses OP_CIRCM). Skip over it. 60843 60844 __81: 60845 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CIRC]) 60846 goto __8 60847 60848 // A "real" property test implies no starting bits, but the fake property 60849 // PT_CLIST identifies a list of characters. These lists are short, as they 60850 // are used for characters with more than one "other case", so there is no 60851 // point in recognizing them for OP_NOTPROP. 60852 60853 __82: 60854 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) != DPT_CLIST) { 60855 goto __165 60856 } 60857 return SSB_FAIL 60858 __165: 60859 ; 60860 60861 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))*4 60862 __166: 60863 if !(libc.AssignUint32(&c, *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4)))) < DNOTACHAR) { 60864 goto __167 60865 } 60866 60867 if !(utf != 0) { 60868 goto __168 60869 } 60870 60871 X_pcre2_ord2utf_8(tls, c, bp) 60872 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) 60873 __168: 60874 ; 60875 if !(c > Tuint32_t(0xff)) { 60876 goto __169 60877 } 60878 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 31)) |= uint8(uint32(1) << (0xff & 7)) 60879 goto __170 60880 __169: 60881 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60882 __170: 60883 ; 60884 goto __166 60885 __167: 60886 ; 60887 60888 try_next = DFALSE 60889 goto __8 60890 60891 // We can ignore word boundary tests. 60892 60893 __83: 60894 __84: 60895 tcode++ 60896 goto __8 60897 60898 // If we hit a bracket or a positive lookahead assertion, recurse to set 60899 // bits from within the subpattern. If it can't find anything, we have to 60900 // give up. If it finds some mandatory character(s), we are done for this 60901 // branch. Otherwise, carry on scanning after the subpattern. 60902 60903 __85: 60904 __86: 60905 __87: 60906 __88: 60907 __89: 60908 __90: 60909 __91: 60910 __92: 60911 __93: 60912 __94: 60913 __95: 60914 __96: 60915 rc = set_start_bits(tls, re, tcode, utf, ucp, depthptr) 60916 if !(rc == SSB_DONE) { 60917 goto __171 60918 } 60919 60920 try_next = DFALSE 60921 goto __172 60922 __171: 60923 if !(rc == SSB_CONTINUE) { 60924 goto __173 60925 } 60926 60927 __175: 60928 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 60929 goto __176 60930 __176: 60931 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 60932 goto __175 60933 } 60934 goto __177 60935 __177: 60936 ; 60937 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 60938 goto __174 60939 __173: 60940 return rc 60941 __174: 60942 ; 60943 __172: 60944 ; // FAIL, UNKNOWN, or TOODEEP 60945 goto __8 60946 60947 // If we hit ALT or KET, it means we haven't found anything mandatory in 60948 // this branch, though we might have found something optional. For ALT, we 60949 // continue with the next alternative, but we have to arrange that the final 60950 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60951 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60952 // but after a nested subpattern, it causes scanning to continue. 60953 60954 __97: 60955 yield = SSB_CONTINUE 60956 try_next = DFALSE 60957 goto __8 60958 60959 __98: 60960 __99: 60961 __100: 60962 __101: 60963 return SSB_CONTINUE 60964 60965 // Skip over callout 60966 60967 __102: 60968 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 60969 goto __8 60970 60971 __103: 60972 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 6))))) 60973 goto __8 60974 60975 // Skip over lookbehind and negative lookahead assertions 60976 60977 __104: 60978 __105: 60979 __106: 60980 __107: 60981 __178: 60982 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 60983 goto __179 60984 __179: 60985 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 60986 goto __178 60987 } 60988 goto __180 60989 __180: 60990 ; 60991 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 60992 goto __8 60993 60994 // BRAZERO does the bracket, but carries on. 60995 60996 __108: 60997 __109: 60998 __110: 60999 rc = set_start_bits(tls, re, libc.PreIncUintptr(&tcode, 1), utf, ucp, depthptr) 61000 if !(rc == SSB_FAIL || rc == SSB_UNKNOWN || rc == SSB_TOODEEP) { 61001 goto __181 61002 } 61003 return rc 61004 __181: 61005 ; 61006 __182: 61007 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61008 goto __183 61009 __183: 61010 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61011 goto __182 61012 } 61013 goto __184 61014 __184: 61015 ; 61016 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61017 goto __8 61018 61019 // SKIPZERO skips the bracket. 61020 61021 __111: 61022 tcode++ 61023 __185: 61024 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61025 goto __186 61026 __186: 61027 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61028 goto __185 61029 } 61030 goto __187 61031 __187: 61032 ; 61033 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61034 goto __8 61035 61036 // Single-char * or ? sets the bit and tries the next item 61037 61038 __112: 61039 __113: 61040 __114: 61041 __115: 61042 __116: 61043 __117: 61044 tcode = set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61045 goto __8 61046 61047 __118: 61048 __119: 61049 __120: 61050 __121: 61051 __122: 61052 __123: 61053 tcode = set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61054 goto __8 61055 61056 // Single-char upto sets the bit and tries the next 61057 61058 __124: 61059 __125: 61060 __126: 61061 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DFALSE, utf, ucp) 61062 goto __8 61063 61064 __127: 61065 __128: 61066 __129: 61067 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DTRUE, utf, ucp) 61068 goto __8 61069 61070 // At least one single char sets the bit and stops 61071 61072 __130: 61073 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61074 // Fall through 61075 __131: 61076 __132: 61077 __133: 61078 __134: 61079 set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61080 try_next = DFALSE 61081 goto __8 61082 61083 __135: 61084 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61085 // Fall through 61086 __136: 61087 __137: 61088 __138: 61089 __139: 61090 set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61091 try_next = DFALSE 61092 goto __8 61093 61094 // Special spacing and line-terminating items. These recognize specific 61095 // lists of characters. The difference between VSPACE and ANYNL is that the 61096 // latter can match the two-character CRLF sequence, but that is not 61097 // relevant for finding the first character, so their code here is 61098 // identical. 61099 61100 __140: 61101 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61102 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61103 61104 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61105 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61106 61107 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61108 // units of horizontal space characters. 61109 61110 if !(utf != 0) { 61111 goto __188 61112 } 61113 61114 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61115 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61116 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61117 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61118 goto __189 61119 __188: 61120 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61121 the code is EBCDIC. */ 61122 61123 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61124 __189: 61125 ; 61126 61127 try_next = DFALSE 61128 goto __8 61129 61130 __141: 61131 __142: 61132 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61133 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61134 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61135 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61136 61137 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61138 // the bits for NEL and for code units >= 255, independently of UTF. 61139 61140 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61141 // units of vertical space characters. 61142 61143 if !(utf != 0) { 61144 goto __190 61145 } 61146 61147 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61148 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61149 goto __191 61150 __190: 61151 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61152 61153 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 16)) |= uint8(uint32(1) << (int32(libc.Uint8FromInt32(133)) & 7)) 61154 __191: 61155 ; 61156 61157 try_next = DFALSE 61158 goto __8 61159 61160 // Single character types set the bits and stop. Note that if PCRE2_UCP 61161 // is set, we do not see these opcodes because \d etc are converted to 61162 // properties. Therefore, these apply in the case when only characters less 61163 // than 256 are recognized to match the types. 61164 61165 __143: 61166 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61167 try_next = DFALSE 61168 goto __8 61169 61170 __144: 61171 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61172 try_next = DFALSE 61173 goto __8 61174 61175 __145: 61176 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61177 try_next = DFALSE 61178 goto __8 61179 61180 __146: 61181 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61182 try_next = DFALSE 61183 goto __8 61184 61185 __147: 61186 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61187 try_next = DFALSE 61188 goto __8 61189 61190 __148: 61191 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61192 try_next = DFALSE 61193 goto __8 61194 61195 // One or more character type fudges the pointer and restarts, knowing 61196 // it will hit a single character type and stop there. 61197 61198 __149: 61199 __150: 61200 __151: 61201 tcode++ 61202 goto __8 61203 61204 __152: 61205 tcode += TPCRE2_SPTR8(1 + DIMM2_SIZE) 61206 goto __8 61207 61208 // Zero or more repeats of character types set the bits and then 61209 // try again. 61210 61211 __153: 61212 __154: 61213 __155: 61214 tcode += TPCRE2_SPTR8(DIMM2_SIZE) // Fall through 61215 61216 __156: 61217 __157: 61218 __158: 61219 __159: 61220 __160: 61221 __161: 61222 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) { 61223 default: 61224 goto __193 61225 case OP_ANY: 61226 goto __194 61227 case OP_ALLANY: 61228 goto __195 61229 61230 case OP_HSPACE: 61231 goto __196 61232 61233 case OP_ANYNL: 61234 goto __197 61235 case OP_VSPACE: 61236 goto __198 61237 61238 case OP_NOT_DIGIT: 61239 goto __199 61240 61241 case OP_DIGIT: 61242 goto __200 61243 61244 case OP_NOT_WHITESPACE: 61245 goto __201 61246 61247 case OP_WHITESPACE: 61248 goto __202 61249 61250 case OP_NOT_WORDCHAR: 61251 goto __203 61252 61253 case OP_WORDCHAR: 61254 goto __204 61255 } 61256 goto __192 61257 61258 __193: 61259 __194: 61260 __195: 61261 return SSB_FAIL 61262 61263 __196: 61264 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61265 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61266 61267 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61268 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61269 61270 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61271 // units of horizontal space characters. 61272 61273 if !(utf != 0) { 61274 goto __205 61275 } 61276 61277 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61278 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61279 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61280 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61281 goto __206 61282 __205: 61283 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61284 the code is EBCDIC. */ 61285 61286 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61287 __206: 61288 ; 61289 goto __192 61290 61291 __197: 61292 __198: 61293 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61294 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61295 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61296 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61297 61298 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61299 // the bits for NEL and for code units >= 255, independently of UTF. 61300 61301 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61302 // units of vertical space characters. 61303 61304 if !(utf != 0) { 61305 goto __207 61306 } 61307 61308 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61309 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61310 goto __208 61311 __207: 61312 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61313 61314 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 16)) |= uint8(uint32(1) << (int32(libc.Uint8FromInt32(133)) & 7)) 61315 __208: 61316 ; 61317 goto __192 61318 61319 __199: 61320 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61321 goto __192 61322 61323 __200: 61324 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61325 goto __192 61326 61327 __201: 61328 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61329 goto __192 61330 61331 __202: 61332 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61333 goto __192 61334 61335 __203: 61336 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61337 goto __192 61338 61339 __204: 61340 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61341 goto __192 61342 __192: 61343 ; 61344 61345 tcode += uintptr(2) 61346 goto __8 61347 61348 // Extended class: if there are any property checks, or if this is a 61349 // negative XCLASS without a map, give up. If there are no property checks, 61350 // there must be wide characters on the XCLASS list, because otherwise an 61351 // XCLASS would not have been created. This means that code points >= 255 61352 // are potential starters. In the UTF-8 case we can scan them and set bits 61353 // for the relevant leading bytes. 61354 61355 __162: 61356 xclassflags = *(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 3)) 61357 if !(int32(xclassflags)&DXCL_HASPROP != 0 || int32(xclassflags)&(DXCL_MAP|DXCL_NOT) == DXCL_NOT) { 61358 goto __209 61359 } 61360 return SSB_FAIL 61361 __209: 61362 ; 61363 61364 // We have a positive XCLASS or a negative one without a map. Set up the 61365 // map pointer if there is one, and fall through. 61366 61367 if int32(xclassflags)&DXCL_MAP == 0 { 61368 classmap = uintptr(0) 61369 } else { 61370 classmap = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) 61371 } 61372 61373 // In UTF-8 mode, scan the character list and set bits for leading bytes, 61374 // then jump to handle the map. 61375 61376 if !(utf != 0 && int32(xclassflags)&DXCL_NOT == 0) { 61377 goto __210 61378 } 61379 61380 p1 = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) + uintptr(func() int32 { 61381 if classmap == uintptr(0) { 61382 return 0 61383 } 61384 return 32 61385 }()) 61386 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61387 61388 __211: 61389 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1)))) { 61390 case DXCL_SINGLE: 61391 goto __215 61392 61393 case DXCL_RANGE: 61394 goto __216 61395 61396 case DXCL_END: 61397 goto __217 61398 61399 default: 61400 goto __218 61401 } 61402 goto __214 61403 61404 __215: 61405 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61406 __219: 61407 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61408 goto __220 61409 } 61410 p1++ 61411 goto __219 61412 __220: 61413 ; 61414 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61415 goto __214 61416 61417 __216: 61418 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61419 __221: 61420 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61421 goto __222 61422 } 61423 p1++ 61424 goto __221 61425 __222: 61426 ; 61427 e = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61428 __223: 61429 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61430 goto __224 61431 } 61432 p1++ 61433 goto __223 61434 __224: 61435 ; 61436 __225: 61437 if !(int32(b) <= int32(e)) { 61438 goto __227 61439 } 61440 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61441 goto __226 61442 __226: 61443 b++ 61444 goto __225 61445 goto __227 61446 __227: 61447 ; 61448 goto __214 61449 61450 __217: 61451 goto HANDLE_CLASSMAP 61452 61453 __218: 61454 return SSB_UNKNOWN // Internal error, should not occur 61455 __214: 61456 ; 61457 goto __212 61458 __212: 61459 goto __211 61460 goto __213 61461 __213: 61462 ; 61463 __210: 61464 ; 61465 61466 // It seems that the fall through comment must be outside the #ifdef if 61467 // it is to avoid the gcc compiler warning. 61468 61469 // Fall through 61470 61471 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 61472 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 61473 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 61474 // there is no difference between CLASS and NCLASS. In all other wide 61475 // character modes, set the 0xFF bit to indicate code units >= 255. 61476 61477 __163: 61478 if !(utf != 0) { 61479 goto __228 61480 } 61481 61482 *(*Tuint8_t)(unsafe.Pointer(re + 20 + 24)) |= Tuint8_t(0xf0) // Bits for 0xc4 - 0xc8 61483 libc.Xmemset(tls, re+20+uintptr(25), 0xff, uint32(7)) // Bits for 0xc9 - 0xff 61484 __228: 61485 ; 61486 // Fall through 61487 61488 // Enter here for a positive non-XCLASS. If we have fallen through from 61489 // an XCLASS, classmap will already be set; just advance the code pointer. 61490 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 61491 61492 __164: 61493 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_XCLASS) { 61494 goto __229 61495 } 61496 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61497 goto __230 61498 __229: 61499 61500 classmap = libc.PreIncUintptr(&tcode, 1) 61501 tcode += TPCRE2_SPTR8(uint32(32) / uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 61502 __230: 61503 ; 61504 61505 // When wide characters are supported, classmap may be NULL. In UTF-8 61506 // (sic) mode, the bits in a class bit map correspond to character values, 61507 // not to byte values. However, the bit map we are constructing is for byte 61508 // values. So we have to do a conversion for characters whose code point is 61509 // greater than 127. In fact, there are only two possible starting bytes for 61510 // characters in the range 128 - 255. 61511 61512 HANDLE_CLASSMAP: 61513 if !(classmap != uintptr(0)) { 61514 goto __231 61515 } 61516 61517 if !(utf != 0) { 61518 goto __232 61519 } 61520 61521 c = Tuint32_t(0) 61522 __234: 61523 if !(c < Tuint32_t(16)) { 61524 goto __236 61525 } 61526 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61527 goto __235 61528 __235: 61529 c++ 61530 goto __234 61531 goto __236 61532 __236: 61533 ; 61534 c = Tuint32_t(128) 61535 __237: 61536 if !(c < Tuint32_t(256)) { 61537 goto __239 61538 } 61539 61540 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) { 61541 goto __240 61542 } 61543 61544 d = int32(c>>6 | Tuint32_t(0xc0)) // Set bit for this starter 61545 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(d/8))) |= Tuint8_t(uint32(1) << (d & 7)) // and then skip on to the 61546 c = c&Tuint32_t(0xc0) + Tuint32_t(0x40) - Tuint32_t(1) // next relevant character. 61547 __240: 61548 ; 61549 goto __238 61550 __238: 61551 c++ 61552 goto __237 61553 goto __239 61554 __239: 61555 ; 61556 goto __233 61557 __232: 61558 /* In all modes except UTF-8, the two bit maps are compatible. */ 61559 61560 c = Tuint32_t(0) 61561 __241: 61562 if !(c < Tuint32_t(32)) { 61563 goto __243 61564 } 61565 *(*Tuint8_t)(unsafe.Pointer(re + 20 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61566 goto __242 61567 __242: 61568 c++ 61569 goto __241 61570 goto __243 61571 __243: 61572 ; 61573 __233: 61574 ; 61575 __231: 61576 ; 61577 61578 // Act on what follows the class. For a zero minimum repeat, continue; 61579 // otherwise stop processing. 61580 61581 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 61582 case OP_CRSTAR: 61583 goto __245 61584 case OP_CRMINSTAR: 61585 goto __246 61586 case OP_CRQUERY: 61587 goto __247 61588 case OP_CRMINQUERY: 61589 goto __248 61590 case OP_CRPOSSTAR: 61591 goto __249 61592 case OP_CRPOSQUERY: 61593 goto __250 61594 61595 case OP_CRRANGE: 61596 goto __251 61597 case OP_CRMINRANGE: 61598 goto __252 61599 case OP_CRPOSRANGE: 61600 goto __253 61601 61602 default: 61603 goto __254 61604 } 61605 goto __244 61606 61607 __245: 61608 __246: 61609 __247: 61610 __248: 61611 __249: 61612 __250: 61613 tcode++ 61614 goto __244 61615 61616 __251: 61617 __252: 61618 __253: 61619 if !(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))) == uint32(0)) { 61620 goto __255 61621 } 61622 tcode += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 61623 goto __256 61624 __255: 61625 try_next = DFALSE 61626 __256: 61627 ; 61628 goto __244 61629 61630 __254: 61631 try_next = DFALSE 61632 goto __244 61633 __244: 61634 ; 61635 goto __8 // End of class handling case 61636 __8: 61637 ; // End of switch for opcodes 61638 goto __6 61639 __7: 61640 ; // End of try_next loop 61641 61642 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) // Advance to next branch 61643 goto __3 61644 __3: 61645 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 61646 goto __2 61647 } 61648 goto __4 61649 __4: 61650 ; 61651 61652 return yield 61653 } 61654 61655 // ************************************************ 61656 // 61657 // Study a compiled expression * 61658 // 61659 61660 // This function is handed a compiled expression that it must study to produce 61661 // information that will speed up the matching. 61662 // 61663 // Argument: 61664 // re points to the compiled expression 61665 // 61666 // Returns: 0 normally; non-zero should never normally occur 61667 // 1 unknown opcode in set_start_bits 61668 // 2 missing capturing bracket 61669 // 3 unknown opcode in find_minlength 61670 61671 func X_pcre2_study_8(tls *libc.TLS, re uintptr) int32 { /* pcre2_study.c:1672:1: */ 61672 bp := tls.Alloc(524) 61673 defer tls.Free(524) 61674 61675 // var count int32 at bp+520, 4 61676 61677 var code uintptr 61678 var utf TBOOL 61679 var ucp TBOOL 61680 var d int32 61681 var c int32 61682 var y Tuint8_t 61683 var x Tuint8_t 61684 var i int32 61685 var a int32 61686 var b int32 61687 var p uintptr 61688 var flags Tuint32_t 61689 // var depth int32 at bp, 4 61690 61691 var rc int32 61692 var min int32 61693 // var backref_cache [129]int32 at bp+4, 516 61694 *(*int32)(unsafe.Pointer(bp + 520 /* count */)) = 0 61695 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 61696 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 61697 61698 // Find start of compiled code 61699 61700 code = re + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)) 61701 61702 // For a pattern that has a first code unit, or a multiline pattern that 61703 // matches only at "line start", there is no point in seeking a list of starting 61704 // code units. 61705 61706 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET|DPCRE2_STARTLINE) == Tuint32_t(0)) { 61707 goto __1 61708 } 61709 *(*int32)(unsafe.Pointer(bp /* depth */)) = 0 61710 rc = set_start_bits(tls, re, code, utf, ucp, bp) 61711 if !(rc == SSB_UNKNOWN) { 61712 goto __2 61713 } 61714 return 1 61715 __2: 61716 ; 61717 61718 // If a list of starting code units was set up, scan the list to see if only 61719 // one or two were listed. Having only one listed is rare because usually a 61720 // single starting code unit will have been recognized and PCRE2_FIRSTSET set. 61721 // If two are listed, see if they are caseless versions of the same character; 61722 // if so we can replace the list with a caseless first code unit. This gives 61723 // better performance and is plausibly worth doing for patterns such as [Ww]ord 61724 // or (word|WORD). 61725 61726 if !(rc == SSB_DONE) { 61727 goto __3 61728 } 61729 a = -1 61730 b = -1 61731 p = re + 20 /* &.start_bitmap */ 61732 flags = Tuint32_t(DPCRE2_FIRSTMAPSET) 61733 61734 i = 0 61735 __4: 61736 if !(i < 256) { 61737 goto __6 61738 } 61739 61740 x = *(*Tuint8_t)(unsafe.Pointer(p)) 61741 if !(int32(x) != 0) { 61742 goto __7 61743 } 61744 61745 y = Tuint8_t(int32(x) & (^int32(x) + 1)) // Least significant bit 61746 if !(int32(y) != int32(x)) { 61747 goto __8 61748 } 61749 goto DONE 61750 __8: 61751 ; // More than one bit set 61752 61753 // In the 16-bit and 32-bit libraries, the bit for 0xff means "0xff and 61754 // all wide characters", so we cannot use it here. 61755 61756 // Compute the character value 61757 61758 c = i 61759 switch int32(x) { 61760 case 1: 61761 goto __10 61762 case 2: 61763 goto __11 61764 case 4: 61765 goto __12 61766 case 8: 61767 goto __13 61768 case 16: 61769 goto __14 61770 case 32: 61771 goto __15 61772 case 64: 61773 goto __16 61774 case 128: 61775 goto __17 61776 } 61777 goto __9 61778 61779 __10: 61780 goto __9 61781 __11: 61782 c = c + 1 61783 goto __9 61784 __12: 61785 c = c + 2 61786 goto __9 61787 __13: 61788 c = c + 3 61789 goto __9 61790 __14: 61791 c = c + 4 61792 goto __9 61793 __15: 61794 c = c + 5 61795 goto __9 61796 __16: 61797 c = c + 6 61798 goto __9 61799 __17: 61800 c = c + 7 61801 goto __9 61802 __9: 61803 ; 61804 61805 // c contains the code unit value, in the range 0-255. In 8-bit UTF 61806 // mode, only values < 128 can be used. In all the other cases, c is a 61807 // character value. 61808 61809 if !(utf != 0 && c > 127) { 61810 goto __18 61811 } 61812 goto DONE 61813 __18: 61814 ; 61815 if !(a < 0) { 61816 goto __19 61817 } 61818 a = c 61819 goto __20 61820 __19: 61821 if !(b < 0) { 61822 goto __21 61823 } /* Second one found */ 61824 61825 d = int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) + uintptr(uint32(c))))) 61826 61827 if !(utf != 0 || ucp != 0) { 61828 goto __23 61829 } 61830 61831 if !(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[c/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+c%DUCD_BLOCK_SIZE])*12)).Fcaseset) != 0) { 61832 goto __24 61833 } 61834 goto DONE 61835 __24: 61836 ; // Multiple case set 61837 if !(c > 127) { 61838 goto __25 61839 } 61840 d = int32(Tuint32_t(c + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[c/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+c%DUCD_BLOCK_SIZE])*12)).Fother_case)) 61841 __25: 61842 ; 61843 __23: 61844 ; 61845 61846 if !(d != a) { 61847 goto __26 61848 } 61849 goto DONE 61850 __26: 61851 ; // Not the other case of a 61852 b = c // Save second in b 61853 goto __22 61854 __21: 61855 goto DONE 61856 __22: 61857 ; 61858 __20: 61859 ; // More than two characters found 61860 __7: 61861 ; 61862 goto __5 61863 __5: 61864 p++ 61865 i = i + 8 61866 goto __4 61867 goto __6 61868 __6: 61869 ; 61870 61871 // Replace the start code unit bits with a first code unit, but only if it 61872 // is not the same as a required later code unit. This is because a search for 61873 // a required code unit starts after an explicit first code unit, but at a 61874 // code unit found from the bitmap. Patterns such as /a*a/ don't work 61875 // if both the start unit and required unit are the same. 61876 61877 if !(a >= 0 && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) == Tuint32_t(0) || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit != Tuint32_t(a) && (b < 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit != Tuint32_t(b)))) { 61878 goto __27 61879 } 61880 61881 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(a) 61882 flags = Tuint32_t(DPCRE2_FIRSTSET) 61883 if !(b >= 0) { 61884 goto __28 61885 } 61886 flags = flags | Tuint32_t(DPCRE2_FIRSTCASELESS) 61887 __28: 61888 ; 61889 __27: 61890 ; 61891 61892 DONE: 61893 *(*Tuint32_t)(unsafe.Pointer(re + 72)) |= flags 61894 __3: 61895 ; 61896 __1: 61897 ; 61898 61899 // Find the minimum length of subject string. If the pattern can match an empty 61900 // string, the minimum length is already known. If the pattern contains (*ACCEPT) 61901 // all bets are off, and we don't even try to find a minimum length. If there are 61902 // more back references than the size of the vector we are going to cache them in, 61903 // do nothing. A pattern that complicated will probably take a long time to 61904 // analyze and may in any case turn out to be too complicated. Note that back 61905 // reference minima are held as 16-bit numbers. 61906 61907 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY|DPCRE2_HASACCEPT) == Tuint32_t(0) && int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref) <= DMAX_CACHE_BACKREF) { 61908 goto __29 61909 } 61910 61911 *(*int32)(unsafe.Pointer(bp + 4)) = 0 // Highest one that is set 61912 min = find_minlength(tls, re, code, code, utf, uintptr(0), bp+520, bp+4) 61913 switch min { 61914 case -1: 61915 goto __31 // Leave minlength unchanged (will be zero) 61916 61917 case -2: 61918 goto __32 // missing capturing bracket 61919 61920 case -3: 61921 goto __33 // unrecognized opcode 61922 61923 default: 61924 goto __34 61925 } 61926 goto __30 61927 61928 __31: // \C in UTF mode or over-complex regex 61929 goto __30 // Leave minlength unchanged (will be zero) 61930 61931 __32: 61932 return 2 // missing capturing bracket 61933 61934 __33: 61935 return 3 // unrecognized opcode 61936 61937 __34: 61938 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = func() uint16 { 61939 if min > 65535 { 61940 return uint16(65535) 61941 } 61942 return uint16(min) 61943 }() 61944 goto __30 61945 __30: 61946 ; 61947 __29: 61948 ; 61949 61950 return 0 61951 } 61952 61953 // End of pcre2_study.c 61954 61955 // This function is needed only when memmove() is not available. 61956 61957 // End of pcre2_internal.h 61958 61959 // ************************************************ 61960 // 61961 // Find end of substitute text * 61962 // 61963 61964 // In extended mode, we recognize ${name:+set text:unset text} and similar 61965 // constructions. This requires the identification of unescaped : and } 61966 // characters. This function scans for such. It must deal with nested ${ 61967 // constructions. The pointer to the text is updated, either to the required end 61968 // character, or to where an error was detected. 61969 // 61970 // Arguments: 61971 // code points to the compiled expression (for options) 61972 // ptrptr points to the pointer to the start of the text (updated) 61973 // ptrend end of the whole string 61974 // last TRUE if the last expected string (only } recognized) 61975 // 61976 // Returns: 0 on success 61977 // negative error code on failure 61978 61979 func find_text_end(tls *libc.TLS, code uintptr, ptrptr uintptr, ptrend TPCRE2_SPTR8, last TBOOL) int32 { /* pcre2_substitute.c:79:1: */ 61980 bp := tls.Alloc(12) 61981 defer tls.Free(12) 61982 61983 var rc int32 61984 var nestlevel Tuint32_t 61985 var literal TBOOL 61986 // var ptr TPCRE2_SPTR8 at bp, 4 61987 61988 var erc int32 61989 // var errorcode int32 at bp+8, 4 61990 61991 // var ch Tuint32_t at bp+4, 4 61992 rc = 0 61993 nestlevel = Tuint32_t(0) 61994 literal = DFALSE 61995 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 61996 61997 __1: 61998 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend) { 61999 goto __3 62000 } 62001 62002 if !(literal != 0) { 62003 goto __4 62004 } 62005 62006 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\134' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\105') { 62007 goto __6 62008 } 62009 62010 literal = DFALSE 62011 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62012 __6: 62013 ; 62014 goto __5 62015 __4: 62016 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 62017 goto __7 62018 } 62019 62020 if !(nestlevel == Tuint32_t(0)) { 62021 goto __9 62022 } 62023 goto EXIT 62024 __9: 62025 ; 62026 nestlevel-- 62027 goto __8 62028 __7: 62029 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\072' && !(last != 0) && nestlevel == Tuint32_t(0)) { 62030 goto __10 62031 } 62032 goto EXIT 62033 goto __11 62034 __10: 62035 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\044') { 62036 goto __12 62037 } 62038 62039 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\173') { 62040 goto __14 62041 } 62042 62043 nestlevel++ 62044 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62045 __14: 62046 ; 62047 goto __13 62048 __12: 62049 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\134') { 62050 goto __15 62051 } 62052 62053 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1)) { 62054 goto __16 62055 } 62056 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) + 1))) { 62057 case '\114': 62058 goto __18 62059 case '\154': 62060 goto __19 62061 case '\125': 62062 goto __20 62063 case '\165': 62064 goto __21 62065 } 62066 goto __17 62067 62068 __18: 62069 __19: 62070 __20: 62071 __21: 62072 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62073 goto __2 62074 __17: 62075 ; 62076 __16: 62077 ; 62078 62079 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) // Must point after \ 62080 erc = X_pcre2_check_escape_8(tls, bp, ptrend, bp+4, bp+8, 62081 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 62082 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) -= uintptr(1) // Back to last code unit of escape 62083 if !(*(*int32)(unsafe.Pointer(bp + 8)) != 0) { 62084 goto __22 62085 } 62086 62087 rc = *(*int32)(unsafe.Pointer(bp + 8 /* errorcode */)) 62088 goto EXIT 62089 __22: 62090 ; 62091 62092 switch erc { 62093 case 0: 62094 goto __24 // Data character 62095 case ESC_E: 62096 goto __25 62097 62098 case ESC_Q: 62099 goto __26 62100 62101 default: 62102 goto __27 62103 } 62104 goto __23 62105 62106 __24: // Data character 62107 __25: // Isolated \E is ignored 62108 goto __23 62109 62110 __26: 62111 literal = DTRUE 62112 goto __23 62113 62114 __27: 62115 rc = -57 62116 goto EXIT 62117 __23: 62118 ; 62119 __15: 62120 ; 62121 __13: 62122 ; 62123 __11: 62124 ; 62125 __8: 62126 ; 62127 __5: 62128 ; 62129 goto __2 62130 __2: 62131 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */))++ 62132 goto __1 62133 goto __3 62134 __3: 62135 ; 62136 62137 rc = -58 // Terminator not found 62138 62139 EXIT: 62140 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) 62141 return rc 62142 } 62143 62144 // ************************************************ 62145 // 62146 // Match and substitute * 62147 // 62148 62149 // This function applies a compiled re to a subject string and creates a new 62150 // string with substitutions. The first 7 arguments are the same as for 62151 // pcre2_match(). Either string length may be PCRE2_ZERO_TERMINATED. 62152 // 62153 // Arguments: 62154 // code points to the compiled expression 62155 // subject points to the subject string 62156 // length length of subject string (may contain binary zeros) 62157 // start_offset where to start in the subject string 62158 // options option bits 62159 // match_data points to a match_data block, or is NULL 62160 // context points a PCRE2 context 62161 // replacement points to the replacement string 62162 // rlength length of replacement string 62163 // buffer where to put the substituted string 62164 // blength points to length of buffer; updated to length of string 62165 // 62166 // Returns: >= 0 number of substitutions made 62167 // < 0 an error code 62168 // PCRE2_ERROR_BADREPLACEMENT means invalid use of $ 62169 62170 // This macro checks for space in the buffer before copying into it. On 62171 // overflow, either give an error immediately, or keep on, accumulating the 62172 // length. 62173 62174 // Here's the function 62175 62176 func Xpcre2_substitute_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr, replacement TPCRE2_SPTR8, rlength Tsize_t, buffer uintptr, blength uintptr) int32 { /* pcre2_substitute.c:220:1: */ 62177 bp := tls.Alloc(192) 62178 defer tls.Free(192) 62179 62180 var rc int32 62181 var subs int32 62182 var forcecase int32 62183 var forcecasereset int32 62184 var ovector_count Tuint32_t 62185 var goptions Tuint32_t 62186 var suboptions Tuint32_t 62187 var internal_match_data uintptr 62188 var escaped_literal TBOOL 62189 var overflowed TBOOL 62190 var use_existing_match TBOOL 62191 var replacement_only TBOOL 62192 var utf TBOOL 62193 var ucp TBOOL 62194 // var temp [6]TPCRE2_UCHAR8 at bp+176, 6 62195 62196 // var ptr TPCRE2_SPTR8 at bp+160, 4 62197 62198 var repend TPCRE2_SPTR8 62199 var extra_needed Tsize_t 62200 var buff_offset Tsize_t 62201 var buff_length Tsize_t 62202 var lengthleft Tsize_t 62203 var fraglength Tsize_t 62204 var ovector uintptr 62205 // var ovecsave [3]Tsize_t at bp, 12 62206 62207 // var scb Tpcre2_substitute_callout_block_8 at bp+12, 32 62208 62209 var gcontext uintptr 62210 var gcontext1 uintptr 62211 var pairs int32 62212 var save_start Tsize_t 62213 var ctypes uintptr 62214 var mark_start TPCRE2_SPTR8 62215 var mark TPCRE2_SPTR8 62216 var ng Tuint32_t 62217 // var first TPCRE2_SPTR8 at bp+164, 4 62218 62219 // var last TPCRE2_SPTR8 at bp+168, 4 62220 62221 var entry TPCRE2_SPTR8 62222 var type1 Tuint32_t 62223 var subptr TPCRE2_SPTR8 62224 var subptrend TPCRE2_SPTR8 62225 var group int32 62226 var n int32 62227 var special Tuint32_t 62228 var inparens TBOOL 62229 var star TBOOL 62230 // var sublength Tsize_t at bp+172, 4 62231 62232 var text1_start TPCRE2_SPTR8 62233 var text1_end TPCRE2_SPTR8 62234 var text2_start TPCRE2_SPTR8 62235 var text2_end TPCRE2_SPTR8 62236 var next TPCRE2_UCHAR8 62237 // var name [33]TPCRE2_UCHAR8 at bp+124, 33 62238 62239 // var errorcode int32 at bp+188, 4 62240 62241 var type2 Tuint32_t 62242 // var ch Tuint32_t at bp+184, 4 62243 62244 var chlen uint32 62245 var newlength Tsize_t 62246 var oldlength Tsize_t 62247 // var ptrstack [20]TPCRE2_SPTR8 at bp+44, 80 62248 62249 var ptrstackptr Tuint32_t 62250 forcecase = 0 62251 forcecasereset = 0 62252 goptions = Tuint32_t(0) 62253 internal_match_data = uintptr(0) 62254 escaped_literal = DFALSE 62255 overflowed = DFALSE 62256 utf = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 62257 ucp = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 62258 extra_needed = Tsize_t(0) 62259 62260 // General initialization 62261 62262 buff_offset = Tsize_t(0) 62263 lengthleft = libc.AssignUint32(&buff_length, *(*Tsize_t)(unsafe.Pointer(blength))) 62264 *(*Tsize_t)(unsafe.Pointer(blength)) = libc.CplUint32(Tsize_t(0)) 62265 *(*Tsize_t)(unsafe.Pointer(bp)) = libc.AssignPtrUint32(bp+1*4, libc.AssignPtrUint32(bp+2*4, libc.CplUint32(Tsize_t(0)))) 62266 62267 // Partial matching is not valid. This must come after setting *blength to 62268 // PCRE2_UNSET, so as not to imply an offset in the replacement. 62269 62270 if !(options&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0)) { 62271 goto __1 62272 } 62273 return -34 62274 __1: 62275 ; 62276 62277 // Validate length and find the end of the replacement. A NULL replacement of 62278 // zero length is interpreted as an empty string. 62279 62280 if !(replacement == uintptr(0)) { 62281 goto __2 62282 } 62283 62284 if !(rlength != Tsize_t(0)) { 62285 goto __3 62286 } 62287 return -51 62288 __3: 62289 ; 62290 replacement = ts + 797 /* "" */ 62291 __2: 62292 ; 62293 62294 if !(rlength == libc.CplUint32(Tsize_t(0))) { 62295 goto __4 62296 } 62297 rlength = X_pcre2_strlen_8(tls, replacement) 62298 __4: 62299 ; 62300 repend = replacement + uintptr(rlength) 62301 62302 // Check for using a match that has already happened. Note that the subject 62303 // pointer in the match data may be NULL after a no-match. 62304 62305 use_existing_match = libc.Bool32(options&DPCRE2_SUBSTITUTE_MATCHED != Tuint32_t(0)) 62306 replacement_only = libc.Bool32(options&DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY != Tuint32_t(0)) 62307 62308 // If starting from an existing match, there must be an externally provided 62309 // match data block. We create an internal match_data block in two cases: (a) an 62310 // external one is not supplied (and we are not starting from an existing match); 62311 // (b) an existing match is to be used for the first substitution. In the latter 62312 // case, we copy the existing match into the internal block. This ensures that no 62313 // changes are made to the existing match data block. 62314 62315 if !(match_data == uintptr(0)) { 62316 goto __5 62317 } 62318 62319 if !(use_existing_match != 0) { 62320 goto __7 62321 } 62322 return -51 62323 __7: 62324 ; 62325 if mcontext == uintptr(0) { 62326 gcontext = code 62327 } else { 62328 gcontext = mcontext 62329 } 62330 match_data = libc.AssignUintptr(&internal_match_data, Xpcre2_match_data_create_from_pattern_8(tls, code, gcontext)) 62331 if !(internal_match_data == uintptr(0)) { 62332 goto __8 62333 } 62334 return -48 62335 __8: 62336 ; 62337 goto __6 62338 __5: 62339 if !(use_existing_match != 0) { 62340 goto __9 62341 } 62342 62343 if mcontext == uintptr(0) { 62344 gcontext1 = code 62345 } else { 62346 gcontext1 = mcontext 62347 } 62348 if int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1 < int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 62349 pairs = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 62350 } else { 62351 pairs = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 62352 } 62353 internal_match_data = Xpcre2_match_data_create_8(tls, uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount), 62354 gcontext1) 62355 if !(internal_match_data == uintptr(0)) { 62356 goto __10 62357 } 62358 return -48 62359 __10: 62360 ; 62361 libc.Xmemcpy(tls, internal_match_data, match_data, uint32(uintptr(0)+44)+ 62362 uint32(2*pairs)*uint32(unsafe.Sizeof(Tsize_t(0)))) 62363 match_data = internal_match_data 62364 __9: 62365 ; 62366 __6: 62367 ; 62368 62369 // Remember ovector details 62370 62371 ovector = Xpcre2_get_ovector_pointer_8(tls, match_data) 62372 ovector_count = Xpcre2_get_ovector_count_8(tls, match_data) 62373 62374 // Fixed things in the callout block 62375 62376 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Fversion = Tuint32_t(0) 62377 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Finput = subject 62378 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Foutput = buffer 62379 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Fovector = ovector 62380 62381 // A NULL subject of zero length is treated as an empty string. 62382 62383 if !(subject == uintptr(0)) { 62384 goto __11 62385 } 62386 62387 if !(length != Tsize_t(0)) { 62388 goto __12 62389 } 62390 return -51 62391 __12: 62392 ; 62393 subject = ts + 797 /* "" */ 62394 __11: 62395 ; 62396 62397 // Find length of zero-terminated subject 62398 62399 if !(length == libc.CplUint32(Tsize_t(0))) { 62400 goto __13 62401 } 62402 if subject != 0 { 62403 length = X_pcre2_strlen_8(tls, subject) 62404 } else { 62405 length = uint32(0) 62406 } 62407 __13: 62408 ; 62409 62410 // Check UTF replacement string if necessary. 62411 62412 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 62413 goto __14 62414 } 62415 62416 rc = X_pcre2_valid_utf_8(tls, replacement, rlength, match_data+32) 62417 if !(rc != 0) { 62418 goto __15 62419 } 62420 62421 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t(0) 62422 goto EXIT 62423 __15: 62424 ; 62425 __14: 62426 ; 62427 62428 // Save the substitute options and remove them from the match options. 62429 62430 suboptions = options & (DPCRE2_SUBSTITUTE_EXTENDED | DPCRE2_SUBSTITUTE_GLOBAL | DPCRE2_SUBSTITUTE_LITERAL | DPCRE2_SUBSTITUTE_MATCHED | DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH | DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY | DPCRE2_SUBSTITUTE_UNKNOWN_UNSET | DPCRE2_SUBSTITUTE_UNSET_EMPTY) 62431 options = options & libc.CplUint32(DPCRE2_SUBSTITUTE_EXTENDED|DPCRE2_SUBSTITUTE_GLOBAL|DPCRE2_SUBSTITUTE_LITERAL|DPCRE2_SUBSTITUTE_MATCHED|DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH|DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY|DPCRE2_SUBSTITUTE_UNKNOWN_UNSET|DPCRE2_SUBSTITUTE_UNSET_EMPTY) 62432 62433 // Error if the start match offset is greater than the length of the subject. 62434 62435 if !(start_offset > length) { 62436 goto __16 62437 } 62438 62439 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t(0) 62440 rc = -33 62441 goto EXIT 62442 __16: 62443 ; 62444 62445 // Copy up to the start offset, unless only the replacement is required. 62446 62447 if !!(replacement_only != 0) { 62448 goto __17 62449 } 62450 if !(!(overflowed != 0) && lengthleft < start_offset) { 62451 goto __18 62452 } 62453 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62454 goto __20 62455 } 62456 goto NOROOM 62457 __20: 62458 ; 62459 overflowed = DTRUE 62460 extra_needed = start_offset - lengthleft 62461 goto __19 62462 __18: 62463 if !(overflowed != 0) { 62464 goto __21 62465 } 62466 extra_needed = extra_needed + start_offset 62467 goto __22 62468 __21: 62469 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject, start_offset*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 62470 buff_offset = buff_offset + start_offset 62471 lengthleft = lengthleft - start_offset 62472 __22: 62473 ; 62474 __19: 62475 ; 62476 __17: 62477 ; 62478 62479 // Loop for global substituting. If PCRE2_SUBSTITUTE_MATCHED is set, the first 62480 // match is taken from the match_data that was passed in. 62481 62482 subs = 0 62483 __23: 62484 ptrstackptr = Tuint32_t(0) 62485 62486 if !(use_existing_match != 0) { 62487 goto __26 62488 } 62489 62490 rc = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 62491 use_existing_match = DFALSE 62492 goto __27 62493 __26: 62494 rc = Xpcre2_match_8(tls, code, subject, length, start_offset, options|goptions, 62495 match_data, mcontext) 62496 __27: 62497 ; 62498 62499 if !(utf != 0) { 62500 goto __28 62501 } 62502 options = options | DPCRE2_NO_UTF_CHECK 62503 __28: 62504 ; // Only need to check once 62505 62506 // Any error other than no match returns the error code. No match when not 62507 // doing the special after-empty-match global rematch, or when at the end of the 62508 // subject, breaks the global loop. Otherwise, advance the starting point by one 62509 // character, copying it to the output, and try again. 62510 62511 if !(rc < 0) { 62512 goto __29 62513 } 62514 62515 if !(rc != -1) { 62516 goto __30 62517 } 62518 goto EXIT 62519 __30: 62520 ; 62521 if !(goptions == Tuint32_t(0) || start_offset >= length) { 62522 goto __31 62523 } 62524 goto __25 62525 __31: 62526 ; 62527 62528 // Advance by one code point. Then, if CRLF is a valid newline sequence and 62529 // we have advanced into the middle of it, advance one more code point. In 62530 // other words, do not start in the middle of CRLF, even if CR and LF on their 62531 // own are valid newlines. 62532 62533 save_start = libc.PostIncUint32(&start_offset, 1) 62534 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset-Tsize_t(1))))) == '\015' && int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fnewline_convention) != DPCRE2_NEWLINE_CR && int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fnewline_convention) != DPCRE2_NEWLINE_LF && start_offset < length && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset)))) == '\012') { 62535 goto __32 62536 } 62537 start_offset++ 62538 goto __33 62539 __32: 62540 if !((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) { 62541 goto __34 62542 } 62543 62544 __35: 62545 if !(start_offset < length && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset))))&0xc0 == 0x80) { 62546 goto __36 62547 } 62548 start_offset++ 62549 goto __35 62550 __36: 62551 ; 62552 __34: 62553 ; 62554 __33: 62555 ; 62556 62557 // Copy what we have advanced past (unless not required), reset the special 62558 // global options, and continue to the next match. 62559 62560 fraglength = start_offset - save_start 62561 if !!(replacement_only != 0) { 62562 goto __37 62563 } 62564 if !(!(overflowed != 0) && lengthleft < fraglength) { 62565 goto __38 62566 } 62567 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62568 goto __40 62569 } 62570 goto NOROOM 62571 __40: 62572 ; 62573 overflowed = DTRUE 62574 extra_needed = fraglength - lengthleft 62575 goto __39 62576 __38: 62577 if !(overflowed != 0) { 62578 goto __41 62579 } 62580 extra_needed = extra_needed + fraglength 62581 goto __42 62582 __41: 62583 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(save_start), fraglength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 62584 buff_offset = buff_offset + fraglength 62585 lengthleft = lengthleft - fraglength 62586 __42: 62587 ; 62588 __39: 62589 ; 62590 __37: 62591 ; 62592 62593 goptions = Tuint32_t(0) 62594 goto __24 62595 __29: 62596 ; 62597 62598 // Handle a successful match. Matches that use \K to end before they start 62599 // or start before the current point in the subject are not supported. 62600 62601 if !(*(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) < *(*Tsize_t)(unsafe.Pointer(ovector)) || *(*Tsize_t)(unsafe.Pointer(ovector)) < start_offset) { 62602 goto __43 62603 } 62604 62605 rc = -60 62606 goto EXIT 62607 __43: 62608 ; 62609 62610 // Check for the same match as previous. This is legitimate after matching an 62611 // empty string that starts after the initial match offset. We have tried again 62612 // at the match point in case the pattern is one like /(?<=\G.)/ which can never 62613 // match at its starting point, so running the match achieves the bumpalong. If 62614 // we do get the same (null) match at the original match point, it isn't such a 62615 // pattern, so we now do the empty string magic. In all other cases, a repeat 62616 // match should never occur. 62617 62618 if !(*(*Tsize_t)(unsafe.Pointer(bp)) == *(*Tsize_t)(unsafe.Pointer(ovector)) && *(*Tsize_t)(unsafe.Pointer(bp + 1*4)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*4))) { 62619 goto __44 62620 } 62621 62622 if !(*(*Tsize_t)(unsafe.Pointer(ovector)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) && *(*Tsize_t)(unsafe.Pointer(bp + 2*4)) != start_offset) { 62623 goto __45 62624 } 62625 62626 goptions = DPCRE2_NOTEMPTY_ATSTART | DPCRE2_ANCHORED 62627 *(*Tsize_t)(unsafe.Pointer(bp + 2*4)) = start_offset 62628 goto __24 // Back to the top of the loop 62629 __45: 62630 ; 62631 rc = -65 62632 goto EXIT 62633 __44: 62634 ; 62635 62636 // Count substitutions with a paranoid check for integer overflow; surely no 62637 // real call to this function would ever hit this! 62638 62639 if !(subs == 0x7fffffff) { 62640 goto __46 62641 } 62642 62643 rc = -61 62644 goto EXIT 62645 __46: 62646 ; 62647 subs++ 62648 62649 // Copy the text leading up to the match (unless not required), and remember 62650 // where the insert begins and how many ovector pairs are set. 62651 62652 if !(rc == 0) { 62653 goto __47 62654 } 62655 rc = int32(ovector_count) 62656 __47: 62657 ; 62658 fraglength = *(*Tsize_t)(unsafe.Pointer(ovector)) - start_offset 62659 if !!(replacement_only != 0) { 62660 goto __48 62661 } 62662 if !(!(overflowed != 0) && lengthleft < fraglength) { 62663 goto __49 62664 } 62665 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62666 goto __51 62667 } 62668 goto NOROOM 62669 __51: 62670 ; 62671 overflowed = DTRUE 62672 extra_needed = fraglength - lengthleft 62673 goto __50 62674 __49: 62675 if !(overflowed != 0) { 62676 goto __52 62677 } 62678 extra_needed = extra_needed + fraglength 62679 goto __53 62680 __52: 62681 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 62682 buff_offset = buff_offset + fraglength 62683 lengthleft = lengthleft - fraglength 62684 __53: 62685 ; 62686 __50: 62687 ; 62688 __48: 62689 ; 62690 62691 *(*Tsize_t)(unsafe.Pointer(bp + 12 + 12)) = buff_offset 62692 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Foveccount = Tuint32_t(rc) 62693 62694 // Process the replacement string. If the entire replacement is literal, just 62695 // copy it with length check. 62696 62697 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) = replacement 62698 if !(suboptions&DPCRE2_SUBSTITUTE_LITERAL != Tuint32_t(0)) { 62699 goto __54 62700 } 62701 62702 if !(!(overflowed != 0) && lengthleft < rlength) { 62703 goto __56 62704 } 62705 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62706 goto __58 62707 } 62708 goto NOROOM 62709 __58: 62710 ; 62711 overflowed = DTRUE 62712 extra_needed = rlength - lengthleft 62713 goto __57 62714 __56: 62715 if !(overflowed != 0) { 62716 goto __59 62717 } 62718 extra_needed = extra_needed + rlength 62719 goto __60 62720 __59: 62721 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)), rlength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 62722 buff_offset = buff_offset + rlength 62723 lengthleft = lengthleft - rlength 62724 __60: 62725 ; 62726 __57: 62727 ; 62728 62729 goto __55 62730 __54: 62731 __61: 62732 62733 // If at the end of a nested substring, pop the stack. 62734 62735 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) >= repend) { 62736 goto __64 62737 } 62738 62739 if !(ptrstackptr == Tuint32_t(0)) { 62740 goto __65 62741 } 62742 goto __63 62743 __65: 62744 ; // End of replacement string 62745 repend = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 44 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*4)) 62746 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 44 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*4)) 62747 goto __62 62748 __64: 62749 ; 62750 62751 // Handle the next character 62752 62753 if !(escaped_literal != 0) { 62754 goto __66 62755 } 62756 62757 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) == '\134' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) < repend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 1))) == '\105') { 62758 goto __67 62759 } 62760 62761 escaped_literal = DFALSE 62762 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 62763 goto __62 62764 __67: 62765 ; 62766 goto LOADLITERAL 62767 __66: 62768 ; 62769 62770 // Not in literal mode. 62771 62772 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) == '\044') { 62773 goto __68 62774 } 62775 special = Tuint32_t(0) 62776 text1_start = uintptr(0) 62777 text1_end = uintptr(0) 62778 text2_start = uintptr(0) 62779 text2_end = uintptr(0) 62780 62781 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) >= repend) { 62782 goto __70 62783 } 62784 goto BAD 62785 __70: 62786 ; 62787 if !(int32(libc.AssignUint8(&next, *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)))))) == '\044') { 62788 goto __71 62789 } 62790 goto LOADLITERAL 62791 __71: 62792 ; 62793 62794 group = -1 62795 n = 0 62796 inparens = DFALSE 62797 star = DFALSE 62798 62799 if !(int32(next) == '\173') { 62800 goto __72 62801 } 62802 62803 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) >= repend) { 62804 goto __73 62805 } 62806 goto BAD 62807 __73: 62808 ; 62809 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)))) 62810 inparens = DTRUE 62811 __72: 62812 ; 62813 62814 if !(int32(next) == '\052') { 62815 goto __74 62816 } 62817 62818 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) >= repend) { 62819 goto __75 62820 } 62821 goto BAD 62822 __75: 62823 ; 62824 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)))) 62825 star = DTRUE 62826 __74: 62827 ; 62828 62829 if !(!(star != 0) && int32(next) >= '\060' && int32(next) <= '\071') { 62830 goto __76 62831 } 62832 62833 group = int32(next) - '\060' 62834 __78: 62835 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) < repend) { 62836 goto __79 62837 } 62838 62839 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)))) 62840 if !(int32(next) < '\060' || int32(next) > '\071') { 62841 goto __80 62842 } 62843 goto __79 62844 __80: 62845 ; 62846 group = group*10 + int32(next) - '\060' 62847 62848 // A check for a number greater than the hightest captured group 62849 // is sufficient here; no need for a separate overflow check. If unknown 62850 // groups are to be treated as unset, just skip over any remaining 62851 // digits and carry on. 62852 62853 if !(group > int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)) { 62854 goto __81 62855 } 62856 62857 if !(suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 62858 goto __82 62859 } 62860 62861 __84: 62862 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) < repend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) <= '\071') { 62863 goto __85 62864 } 62865 goto __84 62866 __85: 62867 ; 62868 goto __79 62869 goto __83 62870 __82: 62871 62872 rc = -49 62873 goto PTREXIT 62874 __83: 62875 ; 62876 __81: 62877 ; 62878 goto __78 62879 __79: 62880 ; 62881 goto __77 62882 __76: 62883 62884 ctypes = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 62885 __86: 62886 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(next))))&Dctype_word != 0) { 62887 goto __87 62888 } 62889 62890 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 124 + uintptr(libc.PostIncInt32(&n, 1)))) = next 62891 if !(n > 32) { 62892 goto __88 62893 } 62894 goto BAD 62895 __88: 62896 ; 62897 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1) >= repend) { 62898 goto __89 62899 } 62900 goto __87 62901 __89: 62902 ; 62903 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)))) 62904 goto __86 62905 __87: 62906 ; 62907 if !(n == 0) { 62908 goto __90 62909 } 62910 goto BAD 62911 __90: 62912 ; 62913 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 124 + uintptr(n))) = TPCRE2_UCHAR8(0) 62914 __77: 62915 ; 62916 62917 // In extended mode we recognize ${name:+set text:unset text} and 62918 // ${name:-default text}. 62919 62920 if !(inparens != 0) { 62921 goto __91 62922 } 62923 62924 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && !(star != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) < repend-uintptr(2) && int32(next) == '\072') { 62925 goto __92 62926 } 62927 62928 special = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1)))) 62929 if !(special != Tuint32_t('\053') && special != Tuint32_t('\055')) { 62930 goto __94 62931 } 62932 62933 rc = -59 62934 goto PTREXIT 62935 __94: 62936 ; 62937 62938 text1_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)), 1) 62939 rc = find_text_end(tls, code, bp+160, repend, libc.Bool32(special == Tuint32_t('\055'))) 62940 if !(rc != 0) { 62941 goto __95 62942 } 62943 goto PTREXIT 62944 __95: 62945 ; 62946 text1_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) 62947 62948 if !(special == Tuint32_t('\053') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) == '\072') { 62949 goto __96 62950 } 62951 62952 text2_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)), 1) 62953 rc = find_text_end(tls, code, bp+160, repend, DTRUE) 62954 if !(rc != 0) { 62955 goto __97 62956 } 62957 goto PTREXIT 62958 __97: 62959 ; 62960 text2_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) 62961 __96: 62962 ; 62963 goto __93 62964 __92: 62965 62966 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) >= repend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) != '\175') { 62967 goto __98 62968 } 62969 62970 rc = -58 62971 goto PTREXIT 62972 __98: 62973 ; 62974 __93: 62975 ; 62976 62977 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */))++ 62978 __91: 62979 ; 62980 62981 // Have found a syntactically correct group number or name, or *name. 62982 // Only *MARK is currently recognized. 62983 62984 if !(star != 0) { 62985 goto __99 62986 } 62987 62988 if !(X_pcre2_strcmp_c8_8(tls, bp+124, ts+7678) == 0) { 62989 goto __101 62990 } 62991 62992 mark = Xpcre2_get_mark_8(tls, match_data) 62993 if !(mark != uintptr(0)) { 62994 goto __103 62995 } 62996 62997 mark_start = mark 62998 __104: 62999 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mark))) != 0) { 63000 goto __105 63001 } 63002 mark++ 63003 goto __104 63004 __105: 63005 ; 63006 fraglength = Tsize_t((int32(mark) - int32(mark_start)) / 1) 63007 if !(!(overflowed != 0) && lengthleft < fraglength) { 63008 goto __106 63009 } 63010 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63011 goto __108 63012 } 63013 goto NOROOM 63014 __108: 63015 ; 63016 overflowed = DTRUE 63017 extra_needed = fraglength - lengthleft 63018 goto __107 63019 __106: 63020 if !(overflowed != 0) { 63021 goto __109 63022 } 63023 extra_needed = extra_needed + fraglength 63024 goto __110 63025 __109: 63026 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), mark_start, fraglength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 63027 buff_offset = buff_offset + fraglength 63028 lengthleft = lengthleft - fraglength 63029 __110: 63030 ; 63031 __107: 63032 ; 63033 63034 __103: 63035 ; 63036 goto __102 63037 __101: 63038 goto BAD 63039 __102: 63040 ; 63041 goto __100 63042 __99: 63043 63044 // Find a number for a named group. In case there are duplicate names, 63045 // search for the first one that is set. If the name is not found when 63046 // PCRE2_SUBSTITUTE_UNKNOWN_EMPTY is set, set the group number to a 63047 // non-existent group. 63048 63049 if !(group < 0) { 63050 goto __111 63051 } 63052 63053 rc = Xpcre2_substring_nametable_scan_8(tls, code, bp+124, bp+164, bp+168) 63054 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63055 goto __112 63056 } 63057 63058 group = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 63059 goto __113 63060 __112: 63061 63062 if !(rc < 0) { 63063 goto __114 63064 } 63065 goto PTREXIT 63066 __114: 63067 ; 63068 entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 164 /* first */)) 63069 __115: 63070 if !(entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 168))) { 63071 goto __117 63072 } 63073 63074 ng = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63075 if !(ng < ovector_count) { 63076 goto __118 63077 } 63078 63079 if !(group < 0) { 63080 goto __119 63081 } 63082 group = int32(ng) 63083 __119: 63084 ; // First in ovector 63085 if !(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(ng*Tuint32_t(2))*4)) != libc.CplUint32(Tsize_t(0))) { 63086 goto __120 63087 } 63088 63089 group = int32(ng) // First that is set 63090 goto __117 63091 __120: 63092 ; 63093 __118: 63094 ; 63095 goto __116 63096 __116: 63097 entry += TPCRE2_SPTR8(rc) 63098 goto __115 63099 goto __117 63100 __117: 63101 ; 63102 63103 // If group is still negative, it means we did not find a group 63104 // that is in the ovector. Just set the first group. 63105 63106 if !(group < 0) { 63107 goto __121 63108 } 63109 group = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 164)))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 164)) + 1))))) 63110 __121: 63111 ; 63112 __113: 63113 ; 63114 __111: 63115 ; 63116 63117 // We now have a group that is identified by number. Find the length of 63118 // the captured string. If a group in a non-special substitution is unset 63119 // when PCRE2_SUBSTITUTE_UNSET_EMPTY is set, substitute nothing. 63120 63121 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, uint32(group), bp+172) 63122 if !(rc < 0) { 63123 goto __122 63124 } 63125 63126 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63127 goto __123 63128 } 63129 63130 rc = -55 63131 __123: 63132 ; 63133 if !(rc != -55) { 63134 goto __124 63135 } 63136 goto PTREXIT 63137 __124: 63138 ; // Non-unset errors 63139 if !(special == Tuint32_t(0)) { 63140 goto __125 63141 } /* Plain substitution */ 63142 63143 if !(suboptions&DPCRE2_SUBSTITUTE_UNSET_EMPTY != Tuint32_t(0)) { 63144 goto __126 63145 } 63146 goto __62 63147 __126: 63148 ; 63149 goto PTREXIT // Else error 63150 __125: 63151 ; 63152 __122: 63153 ; 63154 63155 // If special is '+' we have a 'set' and possibly an 'unset' text, 63156 // both of which are reprocessed when used. If special is '-' we have a 63157 // default text for when the group is unset; it must be reprocessed. 63158 63159 if !(special != Tuint32_t(0)) { 63160 goto __127 63161 } 63162 63163 if !(special == Tuint32_t('\055')) { 63164 goto __128 63165 } 63166 63167 if !(rc == 0) { 63168 goto __129 63169 } 63170 goto LITERAL_SUBSTITUTE 63171 __129: 63172 ; 63173 text2_start = text1_start 63174 text2_end = text1_end 63175 __128: 63176 ; 63177 63178 if !(ptrstackptr >= Tuint32_t(DPTR_STACK_SIZE)) { 63179 goto __130 63180 } 63181 goto BAD 63182 __130: 63183 ; 63184 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 44 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*4)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) 63185 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 44 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*4)) = repend 63186 63187 if !(rc == 0) { 63188 goto __131 63189 } 63190 63191 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) = text1_start 63192 repend = text1_end 63193 goto __132 63194 __131: 63195 63196 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) = text2_start 63197 repend = text2_end 63198 __132: 63199 ; 63200 goto __62 63201 __127: 63202 ; 63203 63204 // Otherwise we have a literal substitution of a group's contents. 63205 63206 LITERAL_SUBSTITUTE: 63207 subptr = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2)*4))) 63208 subptrend = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2+1)*4))) 63209 63210 // Substitute a literal string, possibly forcing alphabetic case. 63211 63212 __133: 63213 if !(subptr < subptrend) { 63214 goto __134 63215 } 63216 63217 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1)))) 63218 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 184)) >= 0xc0) { 63219 goto __135 63220 } 63221 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x20 == Tuint32_t(0)) { 63222 goto __136 63223 } 63224 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1))))&0x3f 63225 goto __137 63226 __136: 63227 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x10 == Tuint32_t(0)) { 63228 goto __138 63229 } 63230 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f 63231 subptr += uintptr(2) 63232 goto __139 63233 __138: 63234 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x08 == Tuint32_t(0)) { 63235 goto __140 63236 } 63237 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f 63238 subptr += uintptr(3) 63239 goto __141 63240 __140: 63241 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x04 == Tuint32_t(0)) { 63242 goto __142 63243 } 63244 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 3)))&0x3f 63245 subptr += uintptr(4) 63246 goto __143 63247 __142: 63248 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 4)))&0x3f 63249 subptr += uintptr(5) 63250 __143: 63251 ; 63252 __141: 63253 ; 63254 __139: 63255 ; 63256 __137: 63257 ; 63258 __135: 63259 ; 63260 63261 if !(forcecase != 0) { 63262 goto __144 63263 } 63264 63265 if !(utf != 0 || ucp != 0) { 63266 goto __145 63267 } 63268 63269 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63270 if !(X_pcre2_ucp_gentype_8[type1] == ucp_L && type1 != func() uint32 { 63271 if forcecase > 0 { 63272 return ucp_Lu 63273 } 63274 return ucp_Ll 63275 }()) { 63276 goto __147 63277 } 63278 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63279 __147: 63280 ; 63281 goto __146 63282 __145: 63283 63284 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63285 if forcecase > 0 { 63286 return Dcbit_upper 63287 } 63288 return Dcbit_lower 63289 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 184))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 184))%Tuint32_t(8))) == uint32(0)) { 63290 goto __148 63291 } 63292 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)))))) 63293 __148: 63294 ; 63295 __146: 63296 ; 63297 forcecase = forcecasereset 63298 __144: 63299 ; 63300 63301 if !(utf != 0) { 63302 goto __149 63303 } 63304 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)), bp+176) 63305 goto __150 63306 __149: 63307 63308 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 176)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */))) 63309 chlen = uint32(1) 63310 __150: 63311 ; 63312 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63313 goto __151 63314 } 63315 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63316 goto __153 63317 } 63318 goto NOROOM 63319 __153: 63320 ; 63321 overflowed = DTRUE 63322 extra_needed = Tsize_t(chlen) - lengthleft 63323 goto __152 63324 __151: 63325 if !(overflowed != 0) { 63326 goto __154 63327 } 63328 extra_needed = extra_needed + Tsize_t(chlen) 63329 goto __155 63330 __154: 63331 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+176, uint32(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63332 buff_offset = buff_offset + Tsize_t(chlen) 63333 lengthleft = lengthleft - Tsize_t(chlen) 63334 __155: 63335 ; 63336 __152: 63337 ; 63338 63339 goto __133 63340 __134: 63341 ; 63342 __100: 63343 ; 63344 goto __69 63345 __68: 63346 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))))) == '\134') { 63347 goto __156 63348 } 63349 63350 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) < repend-uintptr(1)) { 63351 goto __158 63352 } 63353 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) + 1))) { 63354 case '\114': 63355 goto __160 63356 63357 case '\154': 63358 goto __161 63359 63360 case '\125': 63361 goto __162 63362 63363 case '\165': 63364 goto __163 63365 63366 default: 63367 goto __164 63368 } 63369 goto __159 63370 63371 __160: 63372 forcecase = libc.AssignInt32(&forcecasereset, -1) 63373 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 63374 goto __62 63375 63376 __161: 63377 forcecase = -1 63378 forcecasereset = 0 63379 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 63380 goto __62 63381 63382 __162: 63383 forcecase = libc.AssignInt32(&forcecasereset, 1) 63384 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 63385 goto __62 63386 63387 __163: 63388 forcecase = 1 63389 forcecasereset = 0 63390 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 63391 goto __62 63392 63393 __164: 63394 goto __159 63395 __159: 63396 ; 63397 __158: 63398 ; 63399 63400 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */))++ // Point after \ 63401 rc = X_pcre2_check_escape_8(tls, bp+160, repend, bp+184, bp+188, 63402 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 63403 if !(*(*int32)(unsafe.Pointer(bp + 188)) != 0) { 63404 goto __165 63405 } 63406 goto BADESCAPE 63407 __165: 63408 ; 63409 63410 switch rc { 63411 case ESC_E: 63412 goto __167 63413 63414 case ESC_Q: 63415 goto __168 63416 63417 case 0: 63418 goto __169 63419 63420 default: 63421 goto __170 63422 } 63423 goto __166 63424 63425 __167: 63426 forcecase = libc.AssignInt32(&forcecasereset, 0) 63427 goto __62 63428 63429 __168: 63430 escaped_literal = DTRUE 63431 goto __62 63432 63433 __169: // Data character 63434 goto LITERAL 63435 63436 __170: 63437 goto BADESCAPE 63438 __166: 63439 ; 63440 goto __157 63441 __156: 63442 63443 LOADLITERAL: 63444 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)), 1)))) 63445 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 184)) >= 0xc0) { 63446 goto __171 63447 } 63448 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x20 == Tuint32_t(0)) { 63449 goto __172 63450 } 63451 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)), 1))))&0x3f 63452 goto __173 63453 __172: 63454 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x10 == Tuint32_t(0)) { 63455 goto __174 63456 } 63457 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 1)))&0x3f 63458 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(2) 63459 goto __175 63460 __174: 63461 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x08 == Tuint32_t(0)) { 63462 goto __176 63463 } 63464 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 2)))&0x3f 63465 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(3) 63466 goto __177 63467 __176: 63468 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x04 == Tuint32_t(0)) { 63469 goto __178 63470 } 63471 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 3)))&0x3f 63472 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(4) 63473 goto __179 63474 __178: 63475 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 184))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160)) + 4)))&0x3f 63476 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160 /* ptr */)) += uintptr(5) 63477 __179: 63478 ; 63479 __177: 63480 ; 63481 __175: 63482 ; 63483 __173: 63484 ; 63485 __171: 63486 ; 63487 63488 // Get character value, increment pointer 63489 63490 LITERAL: 63491 if !(forcecase != 0) { 63492 goto __180 63493 } 63494 63495 if !(utf != 0 || ucp != 0) { 63496 goto __181 63497 } 63498 63499 type2 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63500 if !(X_pcre2_ucp_gentype_8[type2] == ucp_L && type2 != func() uint32 { 63501 if forcecase > 0 { 63502 return ucp_Lu 63503 } 63504 return ucp_Ll 63505 }()) { 63506 goto __183 63507 } 63508 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 184)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63509 __183: 63510 ; 63511 goto __182 63512 __181: 63513 63514 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63515 if forcecase > 0 { 63516 return Dcbit_upper 63517 } 63518 return Dcbit_lower 63519 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 184))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 184))%Tuint32_t(8))) == uint32(0)) { 63520 goto __184 63521 } 63522 *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)))))) 63523 __184: 63524 ; 63525 __182: 63526 ; 63527 forcecase = forcecasereset 63528 __180: 63529 ; 63530 63531 if !(utf != 0) { 63532 goto __185 63533 } 63534 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */)), bp+176) 63535 goto __186 63536 __185: 63537 63538 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 176)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 184 /* ch */))) 63539 chlen = uint32(1) 63540 __186: 63541 ; 63542 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63543 goto __187 63544 } 63545 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63546 goto __189 63547 } 63548 goto NOROOM 63549 __189: 63550 ; 63551 overflowed = DTRUE 63552 extra_needed = Tsize_t(chlen) - lengthleft 63553 goto __188 63554 __187: 63555 if !(overflowed != 0) { 63556 goto __190 63557 } 63558 extra_needed = extra_needed + Tsize_t(chlen) 63559 goto __191 63560 __190: 63561 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+176, uint32(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63562 buff_offset = buff_offset + Tsize_t(chlen) 63563 lengthleft = lengthleft - Tsize_t(chlen) 63564 __191: 63565 ; 63566 __188: 63567 ; 63568 63569 __157: 63570 ; 63571 __69: 63572 ; // End handling a literal code unit 63573 goto __62 63574 __62: 63575 goto __61 63576 goto __63 63577 __63: 63578 ; 63579 __55: 63580 ; // End of loop for scanning the replacement. 63581 63582 // The replacement has been copied to the output, or its size has been 63583 // remembered. Do the callout if there is one and we have done an actual 63584 // replacement. 63585 63586 if !(!(overflowed != 0) && mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout != uintptr(0)) { 63587 goto __192 63588 } 63589 63590 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 12 /* &scb */)).Fsubscount = Tuint32_t(subs) 63591 *(*Tsize_t)(unsafe.Pointer(bp + 12 + 12 + 1*4)) = buff_offset 63592 rc = (*struct { 63593 f func(*libc.TLS, uintptr, uintptr) int32 63594 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout})).f(tls, bp+12 /* &scb */, (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data) 63595 63596 // A non-zero return means cancel this substitution. Instead, copy the 63597 // matched string fragment. 63598 63599 if !(rc != 0) { 63600 goto __193 63601 } 63602 63603 newlength = *(*Tsize_t)(unsafe.Pointer(bp + 12 + 12 + 1*4)) - *(*Tsize_t)(unsafe.Pointer(bp + 12 + 12)) 63604 oldlength = *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) - *(*Tsize_t)(unsafe.Pointer(ovector)) 63605 63606 buff_offset = buff_offset - newlength 63607 lengthleft = lengthleft + newlength 63608 if !!(replacement_only != 0) { 63609 goto __194 63610 } 63611 if !(!(overflowed != 0) && lengthleft < oldlength) { 63612 goto __195 63613 } 63614 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63615 goto __197 63616 } 63617 goto NOROOM 63618 __197: 63619 ; 63620 overflowed = DTRUE 63621 extra_needed = oldlength - lengthleft 63622 goto __196 63623 __195: 63624 if !(overflowed != 0) { 63625 goto __198 63626 } 63627 extra_needed = extra_needed + oldlength 63628 goto __199 63629 __198: 63630 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector))), oldlength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 63631 buff_offset = buff_offset + oldlength 63632 lengthleft = lengthleft - oldlength 63633 __199: 63634 ; 63635 __196: 63636 ; 63637 __194: 63638 ; 63639 63640 // A negative return means do not do any more. 63641 63642 if !(rc < 0) { 63643 goto __200 63644 } 63645 suboptions = suboptions & libc.CplUint32(DPCRE2_SUBSTITUTE_GLOBAL) 63646 __200: 63647 ; 63648 __193: 63649 ; 63650 __192: 63651 ; 63652 63653 // Save the details of this match. See above for how this data is used. If we 63654 // matched an empty string, do the magic for global matches. Update the start 63655 // offset to point to the rest of the subject string. If we re-used an existing 63656 // match for the first match, switch to the internal match data block. 63657 63658 *(*Tsize_t)(unsafe.Pointer(bp)) = *(*Tsize_t)(unsafe.Pointer(ovector)) 63659 *(*Tsize_t)(unsafe.Pointer(bp + 1*4)) = *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) 63660 *(*Tsize_t)(unsafe.Pointer(bp + 2*4)) = start_offset 63661 63662 if *(*Tsize_t)(unsafe.Pointer(ovector)) != *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) || *(*Tsize_t)(unsafe.Pointer(ovector)) > start_offset { 63663 goptions = uint32(0) 63664 } else { 63665 goptions = DPCRE2_ANCHORED | DPCRE2_NOTEMPTY_ATSTART 63666 } 63667 start_offset = *(*Tsize_t)(unsafe.Pointer(ovector + 1*4)) 63668 goto __24 63669 __24: 63670 if suboptions&DPCRE2_SUBSTITUTE_GLOBAL != Tuint32_t(0) { 63671 goto __23 63672 } 63673 goto __25 63674 __25: 63675 ; // Repeat "do" loop 63676 63677 // Copy the rest of the subject unless not required, and terminate the output 63678 // with a binary zero. 63679 63680 if !!(replacement_only != 0) { 63681 goto __201 63682 } 63683 63684 fraglength = length - start_offset 63685 if !(!(overflowed != 0) && lengthleft < fraglength) { 63686 goto __202 63687 } 63688 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63689 goto __204 63690 } 63691 goto NOROOM 63692 __204: 63693 ; 63694 overflowed = DTRUE 63695 extra_needed = fraglength - lengthleft 63696 goto __203 63697 __202: 63698 if !(overflowed != 0) { 63699 goto __205 63700 } 63701 extra_needed = extra_needed + fraglength 63702 goto __206 63703 __205: 63704 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 63705 buff_offset = buff_offset + fraglength 63706 lengthleft = lengthleft - fraglength 63707 __206: 63708 ; 63709 __203: 63710 ; 63711 63712 __201: 63713 ; 63714 63715 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 176)) = TPCRE2_UCHAR8(0) 63716 if !(!(overflowed != 0) && lengthleft < Tsize_t(1)) { 63717 goto __207 63718 } 63719 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63720 goto __209 63721 } 63722 goto NOROOM 63723 __209: 63724 ; 63725 overflowed = DTRUE 63726 extra_needed = Tsize_t(1) - lengthleft 63727 goto __208 63728 __207: 63729 if !(overflowed != 0) { 63730 goto __210 63731 } 63732 extra_needed = extra_needed + Tsize_t(1) 63733 goto __211 63734 __210: 63735 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+176, uint32(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 63736 buff_offset = buff_offset + Tsize_t(1) 63737 lengthleft = lengthleft - Tsize_t(1) 63738 __211: 63739 ; 63740 __208: 63741 ; 63742 63743 // If overflowed is set it means the PCRE2_SUBSTITUTE_OVERFLOW_LENGTH is set, 63744 // and matching has carried on after a full buffer, in order to compute the length 63745 // needed. Otherwise, an overflow generates an immediate error return. 63746 63747 if !(overflowed != 0) { 63748 goto __212 63749 } 63750 63751 rc = -48 63752 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_length + extra_needed 63753 goto __213 63754 __212: 63755 63756 rc = subs 63757 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_offset - Tsize_t(1) 63758 __213: 63759 ; 63760 63761 EXIT: 63762 if !(internal_match_data != uintptr(0)) { 63763 goto __214 63764 } 63765 Xpcre2_match_data_free_8(tls, internal_match_data) 63766 goto __215 63767 __214: 63768 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 63769 __215: 63770 ; 63771 return rc 63772 63773 NOROOM: 63774 rc = -48 63775 goto EXIT 63776 63777 BAD: 63778 rc = -35 63779 goto PTREXIT 63780 63781 BADESCAPE: 63782 rc = -57 63783 63784 PTREXIT: 63785 *(*Tsize_t)(unsafe.Pointer(blength)) = Tsize_t((int32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 160))) - int32(replacement)) / 1) 63786 goto EXIT 63787 return int32(0) 63788 } 63789 63790 // End of pcre2_substitute.c 63791 63792 // This function is needed only when memmove() is not available. 63793 63794 // End of pcre2_internal.h 63795 63796 // ************************************************ 63797 // 63798 // Copy named captured string to given buffer * 63799 // 63800 63801 // This function copies a single captured substring into a given buffer, 63802 // identifying it by name. If the regex permits duplicate names, the first 63803 // substring that is set is chosen. 63804 // 63805 // Arguments: 63806 // match_data points to the match data 63807 // stringname the name of the required substring 63808 // buffer where to put the substring 63809 // sizeptr the size of the buffer, updated to the size of the substring 63810 // 63811 // Returns: if successful: zero 63812 // if not successful, a negative error code: 63813 // (1) an error from nametable_scan() 63814 // (2) an error from copy_bynumber() 63815 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63816 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63817 63818 func Xpcre2_substring_copy_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, buffer uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:73:1: */ 63819 bp := tls.Alloc(8) 63820 defer tls.Free(8) 63821 63822 // var first TPCRE2_SPTR8 at bp, 4 63823 63824 // var last TPCRE2_SPTR8 at bp+4, 4 63825 63826 var entry TPCRE2_SPTR8 63827 var failrc int32 63828 var entrysize int32 63829 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63830 return -41 63831 } 63832 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63833 bp, bp+4) 63834 if entrysize < 0 { 63835 return entrysize 63836 } 63837 failrc = -54 63838 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63839 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63840 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63841 if *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(n*Tuint32_t(2))*4)) != libc.CplUint32(Tsize_t(0)) { 63842 return Xpcre2_substring_copy_bynumber_8(tls, match_data, n, buffer, sizeptr) 63843 } 63844 failrc = -55 63845 } 63846 } 63847 return failrc 63848 } 63849 63850 // ************************************************ 63851 // 63852 // Copy numbered captured string to given buffer * 63853 // 63854 63855 // This function copies a single captured substring into a given buffer, 63856 // identifying it by number. 63857 // 63858 // Arguments: 63859 // match_data points to the match data 63860 // stringnumber the number of the required substring 63861 // buffer where to put the substring 63862 // sizeptr the size of the buffer, updated to the size of the substring 63863 // 63864 // Returns: if successful: 0 63865 // if not successful, a negative error code: 63866 // PCRE2_ERROR_NOMEMORY: buffer too small 63867 // PCRE2_ERROR_NOSUBSTRING: no such substring 63868 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63869 // PCRE2_ERROR_UNSET: substring is not set 63870 63871 func Xpcre2_substring_copy_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, buffer uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:121:1: */ 63872 bp := tls.Alloc(4) 63873 defer tls.Free(4) 63874 63875 var rc int32 63876 // var size Tsize_t at bp, 4 63877 63878 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63879 if rc < 0 { 63880 return rc 63881 } 63882 if *(*Tsize_t)(unsafe.Pointer(bp))+Tsize_t(1) > *(*Tsize_t)(unsafe.Pointer(sizeptr)) { 63883 return -48 63884 } 63885 libc.Xmemcpy(tls, buffer, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(stringnumber*Tuint32_t(2))*4))), 63886 *(*Tsize_t)(unsafe.Pointer(bp))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 63887 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 63888 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 63889 return 0 63890 } 63891 63892 // ************************************************ 63893 // 63894 // Extract named captured string * 63895 // 63896 63897 // This function copies a single captured substring, identified by name, into 63898 // new memory. If the regex permits duplicate names, the first substring that is 63899 // set is chosen. 63900 // 63901 // Arguments: 63902 // match_data pointer to match_data 63903 // stringname the name of the required substring 63904 // stringptr where to put the pointer to the new memory 63905 // sizeptr where to put the length of the substring 63906 // 63907 // Returns: if successful: zero 63908 // if not successful, a negative value: 63909 // (1) an error from nametable_scan() 63910 // (2) an error from get_bynumber() 63911 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63912 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63913 63914 func Xpcre2_substring_get_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, stringptr uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:161:1: */ 63915 bp := tls.Alloc(8) 63916 defer tls.Free(8) 63917 63918 // var first TPCRE2_SPTR8 at bp, 4 63919 63920 // var last TPCRE2_SPTR8 at bp+4, 4 63921 63922 var entry TPCRE2_SPTR8 63923 var failrc int32 63924 var entrysize int32 63925 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63926 return -41 63927 } 63928 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63929 bp, bp+4) 63930 if entrysize < 0 { 63931 return entrysize 63932 } 63933 failrc = -54 63934 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63935 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63936 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63937 if *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(n*Tuint32_t(2))*4)) != libc.CplUint32(Tsize_t(0)) { 63938 return Xpcre2_substring_get_bynumber_8(tls, match_data, n, stringptr, sizeptr) 63939 } 63940 failrc = -55 63941 } 63942 } 63943 return failrc 63944 } 63945 63946 // ************************************************ 63947 // 63948 // Extract captured string to new memory * 63949 // 63950 63951 // This function copies a single captured substring into a piece of new 63952 // memory. 63953 // 63954 // Arguments: 63955 // match_data points to match data 63956 // stringnumber the number of the required substring 63957 // stringptr where to put a pointer to the new memory 63958 // sizeptr where to put the size of the substring 63959 // 63960 // Returns: if successful: 0 63961 // if not successful, a negative error code: 63962 // PCRE2_ERROR_NOMEMORY: failed to get memory 63963 // PCRE2_ERROR_NOSUBSTRING: no such substring 63964 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63965 // PCRE2_ERROR_UNSET: substring is not set 63966 63967 func Xpcre2_substring_get_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, stringptr uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:209:1: */ 63968 bp := tls.Alloc(4) 63969 defer tls.Free(4) 63970 63971 var rc int32 63972 // var size Tsize_t at bp, 4 63973 63974 var yield uintptr 63975 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63976 if rc < 0 { 63977 return rc 63978 } 63979 yield = X_pcre2_memctl_malloc_8(tls, uint32(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bp))+Tsize_t(1))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH), match_data) 63980 if yield == uintptr(0) { 63981 return -48 63982 } 63983 yield = yield + uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 63984 libc.Xmemcpy(tls, yield, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(stringnumber*Tuint32_t(2))*4))), 63985 *(*Tsize_t)(unsafe.Pointer(bp))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 63986 *(*TPCRE2_UCHAR8)(unsafe.Pointer(yield + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 63987 *(*uintptr)(unsafe.Pointer(stringptr)) = yield 63988 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 63989 return 0 63990 } 63991 63992 // ************************************************ 63993 // 63994 // Free memory obtained by get_substring * 63995 // 63996 63997 // 63998 // Argument: the result of a previous pcre2_substring_get_byxxx() 63999 // Returns: nothing 64000 64001 func Xpcre2_substring_free_8(tls *libc.TLS, string uintptr) { /* pcre2_substring.c:241:1: */ 64002 if string != uintptr(0) { 64003 var memctl uintptr = string - uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 64004 (*struct { 64005 f func(*libc.TLS, uintptr, uintptr) 64006 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64007 } 64008 } 64009 64010 // ************************************************ 64011 // 64012 // Get length of a named substring * 64013 // 64014 64015 // This function returns the length of a named captured substring. If the regex 64016 // permits duplicate names, the first substring that is set is chosen. 64017 // 64018 // Arguments: 64019 // match_data pointer to match data 64020 // stringname the name of the required substring 64021 // sizeptr where to put the length 64022 // 64023 // Returns: 0 if successful, else a negative error number 64024 64025 func Xpcre2_substring_length_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, sizeptr uintptr) int32 { /* pcre2_substring.c:268:1: */ 64026 bp := tls.Alloc(8) 64027 defer tls.Free(8) 64028 64029 // var first TPCRE2_SPTR8 at bp, 4 64030 64031 // var last TPCRE2_SPTR8 at bp+4, 4 64032 64033 var entry TPCRE2_SPTR8 64034 var failrc int32 64035 var entrysize int32 64036 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 64037 return -41 64038 } 64039 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 64040 bp, bp+4) 64041 if entrysize < 0 { 64042 return entrysize 64043 } 64044 failrc = -54 64045 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 4 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 64046 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 64047 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64048 if *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(n*Tuint32_t(2))*4)) != libc.CplUint32(Tsize_t(0)) { 64049 return Xpcre2_substring_length_bynumber_8(tls, match_data, n, sizeptr) 64050 } 64051 failrc = -55 64052 } 64053 } 64054 return failrc 64055 } 64056 64057 // ************************************************ 64058 // 64059 // Get length of a numbered substring * 64060 // 64061 64062 // This function returns the length of a captured substring. If the start is 64063 // beyond the end (which can happen when \K is used in an assertion), it sets the 64064 // length to zero. 64065 // 64066 // Arguments: 64067 // match_data pointer to match data 64068 // stringnumber the number of the required substring 64069 // sizeptr where to put the length, if not NULL 64070 // 64071 // Returns: if successful: 0 64072 // if not successful, a negative error code: 64073 // PCRE2_ERROR_NOSUBSTRING: no such substring 64074 // PCRE2_ERROR_UNAVAILABLE: ovector is too small 64075 // PCRE2_ERROR_UNSET: substring is not set 64076 64077 func Xpcre2_substring_length_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, sizeptr uintptr) int32 { /* pcre2_substring.c:315:1: */ 64078 var left Tsize_t 64079 var right Tsize_t 64080 var count int32 = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 64081 if count == -2 { 64082 if stringnumber > Tuint32_t(0) { 64083 return -2 64084 } 64085 count = 0 64086 } else if count < 0 { 64087 return count 64088 } // Match failed 64089 64090 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) != PCRE2_MATCHEDBY_DFA_INTERPRETER { 64091 if stringnumber > Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode)).Ftop_bracket) { 64092 return -49 64093 } 64094 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64095 return -54 64096 } 64097 if *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(stringnumber*Tuint32_t(2))*4)) == libc.CplUint32(Tsize_t(0)) { 64098 return -55 64099 } 64100 } else { 64101 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64102 return -54 64103 } 64104 if count != 0 && stringnumber >= Tuint32_t(count) { 64105 return -55 64106 } 64107 } 64108 64109 left = *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(stringnumber*Tuint32_t(2))*4)) 64110 right = *(*Tsize_t)(unsafe.Pointer(match_data + 44 + uintptr(stringnumber*Tuint32_t(2)+Tuint32_t(1))*4)) 64111 if sizeptr != uintptr(0) { 64112 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = func() uint32 { 64113 if left > right { 64114 return uint32(0) 64115 } 64116 return right - left 64117 }() 64118 } 64119 return 0 64120 } 64121 64122 // ************************************************ 64123 // 64124 // Extract all captured strings to new memory * 64125 // 64126 64127 // This function gets one chunk of memory and builds a list of pointers and all 64128 // the captured substrings in it. A NULL pointer is put on the end of the list. 64129 // The substrings are zero-terminated, but also, if the final argument is 64130 // non-NULL, a list of lengths is also returned. This allows binary data to be 64131 // handled. 64132 // 64133 // Arguments: 64134 // match_data points to the match data 64135 // listptr set to point to the list of pointers 64136 // lengthsptr set to point to the list of lengths (may be NULL) 64137 // 64138 // Returns: if successful: 0 64139 // if not successful, a negative error code: 64140 // PCRE2_ERROR_NOMEMORY: failed to get memory, 64141 // or a match failure code 64142 64143 func Xpcre2_substring_list_get_8(tls *libc.TLS, match_data uintptr, listptr uintptr, lengthsptr uintptr) int32 { /* pcre2_substring.c:372:1: */ 64144 var i int32 64145 var count int32 64146 var count2 int32 64147 var size Tsize_t 64148 var lensp uintptr 64149 var memp uintptr 64150 var listp uintptr 64151 var sp uintptr 64152 var ovector uintptr 64153 64154 if libc.AssignInt32(&count, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc) < 0 { 64155 return count 64156 } // Match failed 64157 if count == 0 { 64158 count = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 64159 } // Ovector too small 64160 64161 count2 = 2 * count 64162 ovector = match_data + 44 /* &.ovector */ 64163 size = uint32(unsafe.Sizeof(Tpcre2_memctl{})) + uint32(unsafe.Sizeof(uintptr(0))) // For final NULL 64164 if lengthsptr != uintptr(0) { 64165 size = size + uint32(unsafe.Sizeof(Tsize_t(0)))*uint32(count) 64166 } // For lengths 64167 64168 for i = 0; i < count2; i = i + 2 { 64169 size = size + (uint32(unsafe.Sizeof(uintptr(0))) + uint32(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 64170 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*4)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4)) { 64171 size = size + (*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*4))-*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4)))*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8) 64172 } 64173 } 64174 64175 memp = X_pcre2_memctl_malloc_8(tls, size, match_data) 64176 if memp == uintptr(0) { 64177 return -48 64178 } 64179 64180 *(*uintptr)(unsafe.Pointer(listptr)) = libc.AssignUintptr(&listp, memp+uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{})))) 64181 lensp = listp + uintptr(uint32(unsafe.Sizeof(uintptr(0)))*uint32(count+1)) 64182 64183 if lengthsptr == uintptr(0) { 64184 sp = lensp 64185 lensp = uintptr(0) 64186 } else { 64187 *(*uintptr)(unsafe.Pointer(lengthsptr)) = lensp 64188 sp = lensp + uintptr(uint32(unsafe.Sizeof(Tsize_t(0)))*uint32(count)) 64189 } 64190 64191 for i = 0; i < count2; i = i + 2 { 64192 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*4)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4)) { 64193 size = *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*4)) - *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4)) 64194 } else { 64195 size = uint32(0) 64196 } 64197 64198 // Size == 0 includes the case when the capture is unset. Avoid adding 64199 // PCRE2_UNSET to match_data->subject because it overflows, even though with 64200 // zero size calling memcpy() is harmless. 64201 64202 if size != Tsize_t(0) { 64203 libc.Xmemcpy(tls, sp, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*4))), size*Tsize_t(DPCRE2_CODE_UNIT_WIDTH/8)) 64204 } 64205 *(*uintptr)(unsafe.Pointer(libc.PostIncUintptr(&listp, 4))) = sp 64206 if lensp != uintptr(0) { 64207 *(*Tsize_t)(unsafe.Pointer(libc.PostIncUintptr(&lensp, 4))) = size 64208 } 64209 sp += uintptr(size) 64210 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&sp, 1))) = TPCRE2_UCHAR8(0) 64211 } 64212 64213 *(*uintptr)(unsafe.Pointer(listp)) = uintptr(0) 64214 return 0 64215 } 64216 64217 // ************************************************ 64218 // 64219 // Free memory obtained by substring_list_get * 64220 // 64221 64222 // 64223 // Argument: the result of a previous pcre2_substring_list_get() 64224 // Returns: nothing 64225 64226 func Xpcre2_substring_list_free_8(tls *libc.TLS, list uintptr) { /* pcre2_substring.c:445:1: */ 64227 if list != uintptr(0) { 64228 var memctl uintptr = list - uintptr(uint32(unsafe.Sizeof(Tpcre2_memctl{}))) 64229 (*struct { 64230 f func(*libc.TLS, uintptr, uintptr) 64231 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64232 } 64233 } 64234 64235 // ************************************************ 64236 // 64237 // Find (multiple) entries for named string * 64238 // 64239 64240 // This function scans the nametable for a given name, using binary chop. It 64241 // returns either two pointers to the entries in the table, or, if no pointers are 64242 // given, the number of a unique group with the given name. If duplicate names are 64243 // permitted, and the name is not unique, an error is generated. 64244 // 64245 // Arguments: 64246 // code the compiled regex 64247 // stringname the name whose entries required 64248 // firstptr where to put the pointer to the first entry 64249 // lastptr where to put the pointer to the last entry 64250 // 64251 // Returns: PCRE2_ERROR_NOSUBSTRING if the name is not found 64252 // otherwise, if firstptr and lastptr are NULL: 64253 // a group number for a unique substring 64254 // else PCRE2_ERROR_NOUNIQUESUBSTRING 64255 // otherwise: 64256 // the length of each entry, having set firstptr and lastptr 64257 64258 func Xpcre2_substring_nametable_scan_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8, firstptr uintptr, lastptr uintptr) int32 { /* pcre2_substring.c:480:1: */ 64259 var bot Tuint16_t = Tuint16_t(0) 64260 var top Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count 64261 var entrysize Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_entry_size 64262 var nametable TPCRE2_SPTR8 = code + uintptr(uint32(unsafe.Sizeof(Tpcre2_real_code_8{}))) 64263 64264 for int32(top) > int32(bot) { 64265 var mid Tuint16_t = Tuint16_t((int32(top) + int32(bot)) / 2) 64266 var entry TPCRE2_SPTR8 = nametable + uintptr(int32(entrysize)*int32(mid)) 64267 var c int32 = X_pcre2_strcmp_8(tls, stringname, entry+uintptr(DIMM2_SIZE)) 64268 if c == 0 { 64269 var first TPCRE2_SPTR8 64270 var last TPCRE2_SPTR8 64271 var lastentry TPCRE2_SPTR8 64272 lastentry = nametable + uintptr(int32(entrysize)*(int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count)-1)) 64273 first = libc.AssignUintptr(&last, entry) 64274 for first > nametable { 64275 if X_pcre2_strcmp_8(tls, stringname, first-uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64276 break 64277 } 64278 first -= TPCRE2_SPTR8(entrysize) 64279 } 64280 for last < lastentry { 64281 if X_pcre2_strcmp_8(tls, stringname, last+uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64282 break 64283 } 64284 last += TPCRE2_SPTR8(entrysize) 64285 } 64286 if firstptr == uintptr(0) { 64287 if first == last { 64288 return int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1))))) 64289 } 64290 return -50 64291 } 64292 *(*TPCRE2_SPTR8)(unsafe.Pointer(firstptr)) = first 64293 *(*TPCRE2_SPTR8)(unsafe.Pointer(lastptr)) = last 64294 return int32(entrysize) 64295 } 64296 if c > 0 { 64297 bot = Tuint16_t(int32(mid) + 1) 64298 } else { 64299 top = mid 64300 } 64301 } 64302 64303 return -49 64304 } 64305 64306 // ************************************************ 64307 // 64308 // Find number for named string * 64309 // 64310 64311 // This function is a convenience wrapper for pcre2_substring_nametable_scan() 64312 // when it is known that names are unique. If there are duplicate names, it is not 64313 // defined which number is returned. 64314 // 64315 // Arguments: 64316 // code the compiled regex 64317 // stringname the name whose number is required 64318 // 64319 // Returns: the number of the named parenthesis, or a negative number 64320 // PCRE2_ERROR_NOSUBSTRING if not found 64321 // PCRE2_ERROR_NOUNIQUESUBSTRING if not unique 64322 64323 func Xpcre2_substring_number_from_name_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8) int32 { /* pcre2_substring.c:541:1: */ 64324 return Xpcre2_substring_nametable_scan_8(tls, code, stringname, uintptr(0), uintptr(0)) 64325 } 64326 64327 // End of pcre2_substring.c 64328 64329 // This function is needed only when memmove() is not available. 64330 64331 // End of pcre2_internal.h 64332 64333 // Table of sizes for the fixed-length opcodes. It's defined in a macro so that 64334 // the definition is next to the definition of the opcodes in pcre2_internal.h. 64335 // This is mode-dependent, so it is skipped when this file is included by 64336 // pcre2test. 64337 64338 var X_pcre2_OP_lengths_8 = [168]Tuint8_t{Tuint8_t(1) /* End */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \A, \G, \K, \B, \b */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \D, \d, \S, \s, \W, \w */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* Any, AllAny, Anybyte */, Tuint8_t(3), Tuint8_t(3) /* \P, \p */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \R, \H, \h, \V, \v */, Tuint8_t(1) /* \X */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \Z, \z, $, $M ^, ^M */, Tuint8_t(2) /* Char - the minimum length */, Tuint8_t(2) /* Chari - the minimum length */, Tuint8_t(2) /* not */, Tuint8_t(2) /* noti */ /* Positive single-char repeats ** These are */, Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* *, *?, +, +?, ?, ?? ** minima in */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* *I, *?I, +I, +?I, ?I, ??I ** UTF-8 */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* NOT *, *?, +, +?, ?, ?? */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* NOT *I, *?I, +I, +?I, ?I, ??I */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* Type *, *?, +, +?, ?, ?? */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* *, *?, +, +?, ?, ?? */, Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + 2*DIMM2_SIZE), uint8(uint32(1) + uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), uint8(uint32(1) + uint32(32)/uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), Tuint8_t(0) /* XCLASS - variable length */, Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + 2*DLINK_SIZE + 1), Tuint8_t(0) /* CALLOUT_STR - variable length */, Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1) /* FALSE, TRUE */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* BRAZERO, BRAMINZERO, BRAPOSZERO */, Tuint8_t(3), Tuint8_t(1), Tuint8_t(3) /* MARK, PRUNE, PRUNE_ARG */, Tuint8_t(1), Tuint8_t(3) /* SKIP, SKIP_ARG */, Tuint8_t(1), Tuint8_t(3) /* THEN, THEN_ARG */, Tuint8_t(1), Tuint8_t(3) /* COMMIT, COMMIT_ARG */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* FAIL, ACCEPT, ASSERT_ACCEPT */, Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1) /* CLOSE, SKIPZERO */, Tuint8_t(1)} /* pcre2_tables.c:60:15 */ 64339 64340 // Tables of horizontal and vertical whitespace characters, suitable for 64341 // adding to classes. 64342 64343 var X_pcre2_hspace_list_8 = [20]Tuint32_t{Tuint32_t('\011'), Tuint32_t('\040'), libc.Uint32FromUint8(libc.Uint8FromInt32(160)), Tuint32_t(0x1680), Tuint32_t(0x180e), Tuint32_t(0x2000), Tuint32_t(0x2001), Tuint32_t(0x2002), Tuint32_t(0x2003), Tuint32_t(0x2004), Tuint32_t(0x2005), Tuint32_t(0x2006), Tuint32_t(0x2007), Tuint32_t(0x2008), Tuint32_t(0x2009), Tuint32_t(0x200A), Tuint32_t(0x202f), Tuint32_t(0x205f), Tuint32_t(0x3000), DNOTACHAR} /* pcre2_tables.c:66:16 */ 64344 var X_pcre2_vspace_list_8 = [8]Tuint32_t{Tuint32_t('\012'), Tuint32_t('\013'), Tuint32_t('\014'), Tuint32_t('\015'), libc.Uint32FromUint8(libc.Uint8FromInt32(133)), Tuint32_t(0x2028), Tuint32_t(0x2029), DNOTACHAR} /* pcre2_tables.c:67:16 */ 64345 64346 // These tables are the pairs of delimiters that are valid for callout string 64347 // arguments. For each starting delimiter there must be a matching ending 64348 // delimiter, which in fact is different only for bracket-like delimiters. 64349 64350 var X_pcre2_callout_start_delims_8 = [9]Tuint32_t{ 64351 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64352 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64353 Tuint32_t('\044'), Tuint32_t('\173'), Tuint32_t(0)} /* pcre2_tables.c:73:16 */ 64354 64355 var X_pcre2_callout_end_delims_8 = [9]Tuint32_t{ 64356 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64357 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64358 Tuint32_t('\044'), Tuint32_t('\175'), Tuint32_t(0)} /* pcre2_tables.c:78:16 */ 64359 64360 // ************************************************ 64361 // 64362 // Tables for UTF-8 support * 64363 // 64364 64365 // These tables are required by pcre2test in 16- or 32-bit mode, as well 64366 // as for the library in 8-bit mode, because pcre2test uses UTF-8 internally for 64367 // handling wide characters. 64368 64369 // These are the breakpoints for different numbers of bytes in a UTF-8 64370 // character. 64371 64372 var X_pcre2_utf8_table1 = [6]int32{0x7f, 0x7ff, 0xffff, 0x1fffff, 0x3ffffff, 0x7fffffff} /* pcre2_tables.c:100:11 */ 64373 64374 var X_pcre2_utf8_table1_size int32 = int32(uint32(unsafe.Sizeof(X_pcre2_utf8_table1)) / uint32(unsafe.Sizeof(int32(0)))) /* pcre2_tables.c:103:11 */ 64375 64376 // These are the indicator bits and the mask for the data bits to set in the 64377 // first byte of a character, indexed by the number of additional bytes. 64378 64379 var X_pcre2_utf8_table2 = [6]int32{0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc} /* pcre2_tables.c:108:11 */ 64380 var X_pcre2_utf8_table3 = [6]int32{0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01} /* pcre2_tables.c:109:11 */ 64381 64382 // Table of the number of extra bytes, indexed by the first byte masked with 64383 // 0x3f. The highest number for a valid UTF-8 first byte is in fact 0x3d. 64384 64385 var X_pcre2_utf8_table4 = [64]Tuint8_t{ 64386 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), 64387 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), 64388 Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), 64389 Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(4), Tuint8_t(4), Tuint8_t(4), Tuint8_t(4), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5)} /* pcre2_tables.c:114:15 */ 64390 64391 // Tables concerned with Unicode properties are relevant only when Unicode 64392 // support is enabled. See also the pcre2_ucptables.c file, which is generated by 64393 // a Python script from Unicode data files. 64394 64395 // Table to translate from particular type value to the general value. 64396 64397 var X_pcre2_ucp_gentype_8 = [30]Tuint32_t{ 64398 ucp_C, ucp_C, ucp_C, ucp_C, ucp_C, // Cc, Cf, Cn, Co, Cs 64399 ucp_L, ucp_L, ucp_L, ucp_L, ucp_L, // Ll, Lu, Lm, Lo, Lt 64400 ucp_M, ucp_M, ucp_M, // Mc, Me, Mn 64401 ucp_N, ucp_N, ucp_N, // Nd, Nl, No 64402 ucp_P, ucp_P, ucp_P, ucp_P, ucp_P, // Pc, Pd, Pe, Pf, Pi 64403 ucp_P, ucp_P, // Ps, Po 64404 ucp_S, ucp_S, ucp_S, ucp_S, // Sc, Sk, Sm, So 64405 ucp_Z, ucp_Z, ucp_Z, // Zl, Zp, Zs 64406 } /* pcre2_tables.c:130:16 */ 64407 64408 // This table encodes the rules for finding the end of an extended grapheme 64409 // cluster. Every code point has a grapheme break property which is one of the 64410 // ucp_gbXX values defined in pcre2_ucp.h. These changed between Unicode versions 64411 // 10 and 11. The 2-dimensional table is indexed by the properties of two adjacent 64412 // code points. The left property selects a word from the table, and the right 64413 // property selects a bit from that word like this: 64414 // 64415 // PRIV(ucp_gbtable)[left-property] & (1u << right-property) 64416 // 64417 // The value is non-zero if a grapheme break is NOT permitted between the relevant 64418 // two code points. The breaking rules are as follows: 64419 // 64420 // 1. Break at the start and end of text (pretty obviously). 64421 // 64422 // 2. Do not break between a CR and LF; otherwise, break before and after 64423 // controls. 64424 // 64425 // 3. Do not break Hangul syllable sequences, the rules for which are: 64426 // 64427 // L may be followed by L, V, LV or LVT 64428 // LV or V may be followed by V or T 64429 // LVT or T may be followed by T 64430 // 64431 // 4. Do not break before extending characters or zero-width-joiner (ZWJ). 64432 // 64433 // The following rules are only for extended grapheme clusters (but that's what we 64434 // are implementing). 64435 // 64436 // 5. Do not break before SpacingMarks. 64437 // 64438 // 6. Do not break after Prepend characters. 64439 // 64440 // 7. Do not break within emoji modifier sequences or emoji zwj sequences. That 64441 // is, do not break between characters with the Extended_Pictographic property. 64442 // Extend and ZWJ characters are allowed between the characters; this cannot be 64443 // represented in this table, the code has to deal with it. 64444 // 64445 // 8. Do not break within emoji flag sequences. That is, do not break between 64446 // regional indicator (RI) symbols if there are an odd number of RI characters 64447 // before the break point. This table encodes "join RI characters"; the code 64448 // has to deal with checking for previous adjoining RIs. 64449 // 64450 // 9. Otherwise, break everywhere. 64451 64452 var X_pcre2_ucp_gbtable_8 = [15]Tuint32_t{ 64453 uint32(1) << ucp_gbLF, 64454 Tuint32_t(0), // 1 LF 64455 Tuint32_t(0), // 2 Control 64456 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64457 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbPrepend | uint32(1)<<ucp_gbL | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT | uint32(1)<<ucp_gbLV | uint32(1)<<ucp_gbLVT | uint32(1)<<ucp_gbOther | uint32(1)<<ucp_gbRegional_Indicator, 64458 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64459 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbL | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbLV | uint32(1)<<ucp_gbLVT, 64460 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64461 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64462 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64463 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64464 uint32(1) << ucp_gbRegional_Indicator, 64465 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64466 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64467 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbExtended_Pictographic, 64468 } /* pcre2_tables.c:188:16 */ 64469 64470 // Finally, include the tables that are auto-generated from the Unicode data 64471 // files. 64472 64473 // ************************************************ 64474 // 64475 // Perl-Compatible Regular Expressions * 64476 // 64477 64478 // PCRE is a library of functions to support regular expressions whose syntax 64479 // and semantics are as close as possible to those of the Perl 5 language. 64480 // 64481 // Written by Philip Hazel 64482 // Original API code Copyright (c) 1997-2012 University of Cambridge 64483 // New API code Copyright (c) 2016-2022 University of Cambridge 64484 // 64485 // This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY! 64486 // Instead, modify the maint/GenerateUcpTables.py script and run it to generate 64487 // a new version of this code. 64488 // 64489 // ----------------------------------------------------------------------------- 64490 // Redistribution and use in source and binary forms, with or without 64491 // modification, are permitted provided that the following conditions are met: 64492 // 64493 // * Redistributions of source code must retain the above copyright notice, 64494 // this list of conditions and the following disclaimer. 64495 // 64496 // * Redistributions in binary form must reproduce the above copyright 64497 // notice, this list of conditions and the following disclaimer in the 64498 // documentation and/or other materials provided with the distribution. 64499 // 64500 // * Neither the name of the University of Cambridge nor the names of its 64501 // contributors may be used to endorse or promote products derived from 64502 // this software without specific prior written permission. 64503 // 64504 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 64505 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 64506 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 64507 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 64508 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 64509 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 64510 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 64511 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 64512 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 64513 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 64514 // POSSIBILITY OF SUCH DAMAGE. 64515 // ----------------------------------------------------------------------------- 64516 64517 // The PRIV(utt)[] table below translates Unicode property names into type and 64518 // code values. It is searched by binary chop, so must be in collating sequence of 64519 // name. Originally, the table contained pointers to the name strings in the first 64520 // field of each entry. However, that leads to a large number of relocations when 64521 // a shared library is dynamically loaded. A significant reduction is made by 64522 // putting all the names into a single, large string and using offsets instead. 64523 // All letters are lower cased, and underscores are removed, in accordance with 64524 // the "loose matching" rules that Unicode advises and Perl uses. 64525 64526 var X_pcre2_utt_names_8 = *(*[3569]int8)(unsafe.Pointer(ts + 7683)) /* pcre2_ucptables.c:543:12 */ 64527 64528 var X_pcre2_utt_8 = [486]Tucp_type_table{ 64529 {Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64530 {Fname_offset: Tuint16_t(6), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64531 {Fname_offset: Tuint16_t(11), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64532 {Fname_offset: Tuint16_t(16), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64533 {Fname_offset: Tuint16_t(21), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ahom}, 64534 {Fname_offset: Tuint16_t(26), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64535 {Fname_offset: Tuint16_t(32), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64536 {Fname_offset: Tuint16_t(43), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64537 {Fname_offset: Tuint16_t(64)}, 64538 {Fname_offset: Tuint16_t(68), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64539 {Fname_offset: Tuint16_t(73), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64540 {Fname_offset: Tuint16_t(80), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64541 {Fname_offset: Tuint16_t(89), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64542 {Fname_offset: Tuint16_t(94), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64543 {Fname_offset: Tuint16_t(99), Ftype: Tuint16_t(DPT_BOOL)}, 64544 {Fname_offset: Tuint16_t(105), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64545 {Fname_offset: Tuint16_t(119), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64546 {Fname_offset: Tuint16_t(127), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64547 {Fname_offset: Tuint16_t(132), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64548 {Fname_offset: Tuint16_t(137), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64549 {Fname_offset: Tuint16_t(146), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64550 {Fname_offset: Tuint16_t(151), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64551 {Fname_offset: Tuint16_t(157), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64552 {Fname_offset: Tuint16_t(162), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64553 {Fname_offset: Tuint16_t(171), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64554 {Fname_offset: Tuint16_t(177), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64555 {Fname_offset: Tuint16_t(182), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64556 {Fname_offset: Tuint16_t(187), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64557 {Fname_offset: Tuint16_t(195), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64558 {Fname_offset: Tuint16_t(205), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64559 {Fname_offset: Tuint16_t(210), Ftype: Tuint16_t(DPT_BIDICL)}, 64560 {Fname_offset: Tuint16_t(217), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiAN}, 64561 {Fname_offset: Tuint16_t(224), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiB}, 64562 {Fname_offset: Tuint16_t(230), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiBN}, 64563 {Fname_offset: Tuint16_t(237), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64564 {Fname_offset: Tuint16_t(243), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64565 {Fname_offset: Tuint16_t(255), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiCS}, 64566 {Fname_offset: Tuint16_t(262), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiEN}, 64567 {Fname_offset: Tuint16_t(269), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiES}, 64568 {Fname_offset: Tuint16_t(276), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiET}, 64569 {Fname_offset: Tuint16_t(283), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiFSI}, 64570 {Fname_offset: Tuint16_t(291), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiL}, 64571 {Fname_offset: Tuint16_t(297), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRE}, 64572 {Fname_offset: Tuint16_t(305), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRI}, 64573 {Fname_offset: Tuint16_t(313), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRO}, 64574 {Fname_offset: Tuint16_t(321), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64575 {Fname_offset: Tuint16_t(327), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64576 {Fname_offset: Tuint16_t(340), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiNSM}, 64577 {Fname_offset: Tuint16_t(348), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiON}, 64578 {Fname_offset: Tuint16_t(355), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDF}, 64579 {Fname_offset: Tuint16_t(363), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDI}, 64580 {Fname_offset: Tuint16_t(371), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiR}, 64581 {Fname_offset: Tuint16_t(377), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLE}, 64582 {Fname_offset: Tuint16_t(385), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLI}, 64583 {Fname_offset: Tuint16_t(393), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLO}, 64584 {Fname_offset: Tuint16_t(401), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiS}, 64585 {Fname_offset: Tuint16_t(407), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiWS}, 64586 {Fname_offset: Tuint16_t(414), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64587 {Fname_offset: Tuint16_t(419), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64588 {Fname_offset: Tuint16_t(428), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64589 {Fname_offset: Tuint16_t(433), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64590 {Fname_offset: Tuint16_t(440), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64591 {Fname_offset: Tuint16_t(445), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64592 {Fname_offset: Tuint16_t(453), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64593 {Fname_offset: Tuint16_t(458), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64594 {Fname_offset: Tuint16_t(467), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64595 {Fname_offset: Tuint16_t(472), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64596 {Fname_offset: Tuint16_t(478), Ftype: Tuint16_t(DPT_GC)}, 64597 {Fname_offset: Tuint16_t(480), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64598 {Fname_offset: Tuint16_t(485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64599 {Fname_offset: Tuint16_t(504), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64600 {Fname_offset: Tuint16_t(509), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64601 {Fname_offset: Tuint16_t(514), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64602 {Fname_offset: Tuint16_t(521), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Cased}, 64603 {Fname_offset: Tuint16_t(527), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64604 {Fname_offset: Tuint16_t(541), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64605 {Fname_offset: Tuint16_t(559), Ftype: Tuint16_t(DPT_PC)}, 64606 {Fname_offset: Tuint16_t(562), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cf}, 64607 {Fname_offset: Tuint16_t(565), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64608 {Fname_offset: Tuint16_t(572), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cham}, 64609 {Fname_offset: Tuint16_t(577), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64610 {Fname_offset: Tuint16_t(599), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64611 {Fname_offset: Tuint16_t(621), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64612 {Fname_offset: Tuint16_t(643), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64613 {Fname_offset: Tuint16_t(665), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64614 {Fname_offset: Tuint16_t(687), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64615 {Fname_offset: Tuint16_t(692), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64616 {Fname_offset: Tuint16_t(701), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64617 {Fname_offset: Tuint16_t(712), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64618 {Fname_offset: Tuint16_t(717), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64619 {Fname_offset: Tuint16_t(720), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cn}, 64620 {Fname_offset: Tuint16_t(723), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Co}, 64621 {Fname_offset: Tuint16_t(726), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 64622 {Fname_offset: Tuint16_t(733), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64623 {Fname_offset: Tuint16_t(738), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64624 {Fname_offset: Tuint16_t(745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64625 {Fname_offset: Tuint16_t(750), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64626 {Fname_offset: Tuint16_t(755), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cs}, 64627 {Fname_offset: Tuint16_t(758), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 64628 {Fname_offset: Tuint16_t(768), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64629 {Fname_offset: Tuint16_t(773), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64630 {Fname_offset: Tuint16_t(778), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64631 {Fname_offset: Tuint16_t(782), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64632 {Fname_offset: Tuint16_t(786), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64633 {Fname_offset: Tuint16_t(790), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64634 {Fname_offset: Tuint16_t(798), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64635 {Fname_offset: Tuint16_t(810), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64636 {Fname_offset: Tuint16_t(819), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64637 {Fname_offset: Tuint16_t(824), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Dash}, 64638 {Fname_offset: Tuint16_t(829), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64639 {Fname_offset: Tuint16_t(855), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64640 {Fname_offset: Tuint16_t(859), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64641 {Fname_offset: Tuint16_t(870), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64642 {Fname_offset: Tuint16_t(878), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64643 {Fname_offset: Tuint16_t(883), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64644 {Fname_offset: Tuint16_t(894), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64645 {Fname_offset: Tuint16_t(897), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64646 {Fname_offset: Tuint16_t(901), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64647 {Fname_offset: Tuint16_t(911), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64648 {Fname_offset: Tuint16_t(916), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64649 {Fname_offset: Tuint16_t(927), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64650 {Fname_offset: Tuint16_t(932), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64651 {Fname_offset: Tuint16_t(938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64652 {Fname_offset: Tuint16_t(943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64653 {Fname_offset: Tuint16_t(948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64654 {Fname_offset: Tuint16_t(957), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64655 {Fname_offset: Tuint16_t(963), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64656 {Fname_offset: Tuint16_t(969), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64657 {Fname_offset: Tuint16_t(974), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64658 {Fname_offset: Tuint16_t(994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64659 {Fname_offset: Tuint16_t(999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64660 {Fname_offset: Tuint16_t(1007), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64661 {Fname_offset: Tuint16_t(1012), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64662 {Fname_offset: Tuint16_t(1020), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64663 {Fname_offset: Tuint16_t(1025), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji}, 64664 {Fname_offset: Tuint16_t(1031), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64665 {Fname_offset: Tuint16_t(1046), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64666 {Fname_offset: Tuint16_t(1060), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64667 {Fname_offset: Tuint16_t(1078), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64668 {Fname_offset: Tuint16_t(1096), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64669 {Fname_offset: Tuint16_t(1102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64670 {Fname_offset: Tuint16_t(1107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64671 {Fname_offset: Tuint16_t(1116), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64672 {Fname_offset: Tuint16_t(1120), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64673 {Fname_offset: Tuint16_t(1141), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64674 {Fname_offset: Tuint16_t(1150), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64675 {Fname_offset: Tuint16_t(1158), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64676 {Fname_offset: Tuint16_t(1163), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64677 {Fname_offset: Tuint16_t(1172), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64678 {Fname_offset: Tuint16_t(1177), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64679 {Fname_offset: Tuint16_t(1188), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64680 {Fname_offset: Tuint16_t(1193), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64681 {Fname_offset: Tuint16_t(1198), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64682 {Fname_offset: Tuint16_t(1203), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64683 {Fname_offset: Tuint16_t(1210), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64684 {Fname_offset: Tuint16_t(1215), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64685 {Fname_offset: Tuint16_t(1223), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64686 {Fname_offset: Tuint16_t(1236), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64687 {Fname_offset: Tuint16_t(1251), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64688 {Fname_offset: Tuint16_t(1264), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64689 {Fname_offset: Tuint16_t(1271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64690 {Fname_offset: Tuint16_t(1277), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64691 {Fname_offset: Tuint16_t(1282), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64692 {Fname_offset: Tuint16_t(1288), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64693 {Fname_offset: Tuint16_t(1295), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64694 {Fname_offset: Tuint16_t(1304), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64695 {Fname_offset: Tuint16_t(1309), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64696 {Fname_offset: Tuint16_t(1322), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64697 {Fname_offset: Tuint16_t(1331), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64698 {Fname_offset: Tuint16_t(1336), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64699 {Fname_offset: Tuint16_t(1340), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64700 {Fname_offset: Tuint16_t(1345), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64701 {Fname_offset: Tuint16_t(1352), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64702 {Fname_offset: Tuint16_t(1357), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64703 {Fname_offset: Tuint16_t(1372), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64704 {Fname_offset: Tuint16_t(1377), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64705 {Fname_offset: Tuint16_t(1385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64706 {Fname_offset: Tuint16_t(1390), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64707 {Fname_offset: Tuint16_t(1397), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64708 {Fname_offset: Tuint16_t(1402), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64709 {Fname_offset: Tuint16_t(1409), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64710 {Fname_offset: Tuint16_t(1413), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64711 {Fname_offset: Tuint16_t(1422), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64712 {Fname_offset: Tuint16_t(1427), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64713 {Fname_offset: Tuint16_t(1436), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64714 {Fname_offset: Tuint16_t(1441), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64715 {Fname_offset: Tuint16_t(1446), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64716 {Fname_offset: Tuint16_t(1451), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64717 {Fname_offset: Tuint16_t(1456), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64718 {Fname_offset: Tuint16_t(1460), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64719 {Fname_offset: Tuint16_t(1471), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64720 {Fname_offset: Tuint16_t(1476), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64721 {Fname_offset: Tuint16_t(1488), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64722 {Fname_offset: Tuint16_t(1492), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64723 {Fname_offset: Tuint16_t(1497), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64724 {Fname_offset: Tuint16_t(1515), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64725 {Fname_offset: Tuint16_t(1520), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64726 {Fname_offset: Tuint16_t(1528), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64727 {Fname_offset: Tuint16_t(1547), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64728 {Fname_offset: Tuint16_t(1563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64729 {Fname_offset: Tuint16_t(1573), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64730 {Fname_offset: Tuint16_t(1594), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64731 {Fname_offset: Tuint16_t(1616), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64732 {Fname_offset: Tuint16_t(1621), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64733 {Fname_offset: Tuint16_t(1626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64734 {Fname_offset: Tuint16_t(1635), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64735 {Fname_offset: Tuint16_t(1641), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64736 {Fname_offset: Tuint16_t(1653), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64737 {Fname_offset: Tuint16_t(1660), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64738 {Fname_offset: Tuint16_t(1665), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64739 {Fname_offset: Tuint16_t(1670), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64740 {Fname_offset: Tuint16_t(1678), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64741 {Fname_offset: Tuint16_t(1687), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64742 {Fname_offset: Tuint16_t(1695), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64743 {Fname_offset: Tuint16_t(1700), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64744 {Fname_offset: Tuint16_t(1711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64745 {Fname_offset: Tuint16_t(1729), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64746 {Fname_offset: Tuint16_t(1735), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64747 {Fname_offset: Tuint16_t(1740), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64748 {Fname_offset: Tuint16_t(1745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64749 {Fname_offset: Tuint16_t(1752), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64750 {Fname_offset: Tuint16_t(1762), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64751 {Fname_offset: Tuint16_t(1767), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64752 {Fname_offset: Tuint16_t(1772), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64753 {Fname_offset: Tuint16_t(1777), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_L}, 64754 {Fname_offset: Tuint16_t(1779), Ftype: Tuint16_t(DPT_LAMP)}, 64755 {Fname_offset: Tuint16_t(1782), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64756 {Fname_offset: Tuint16_t(1787), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64757 {Fname_offset: Tuint16_t(1791), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64758 {Fname_offset: Tuint16_t(1796), Ftype: Tuint16_t(DPT_SCX)}, 64759 {Fname_offset: Tuint16_t(1802), Ftype: Tuint16_t(DPT_SCX)}, 64760 {Fname_offset: Tuint16_t(1807), Ftype: Tuint16_t(DPT_LAMP)}, 64761 {Fname_offset: Tuint16_t(1810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64762 {Fname_offset: Tuint16_t(1815), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64763 {Fname_offset: Tuint16_t(1822), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64764 {Fname_offset: Tuint16_t(1827), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64765 {Fname_offset: Tuint16_t(1833), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64766 {Fname_offset: Tuint16_t(1838), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64767 {Fname_offset: Tuint16_t(1843), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64768 {Fname_offset: Tuint16_t(1851), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64769 {Fname_offset: Tuint16_t(1859), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lisu}, 64770 {Fname_offset: Tuint16_t(1864), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ll}, 64771 {Fname_offset: Tuint16_t(1867), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lm}, 64772 {Fname_offset: Tuint16_t(1870), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lo}, 64773 {Fname_offset: Tuint16_t(1873), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64774 {Fname_offset: Tuint16_t(1877), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64775 {Fname_offset: Tuint16_t(1899), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64776 {Fname_offset: Tuint16_t(1905), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64777 {Fname_offset: Tuint16_t(1915), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lt}, 64778 {Fname_offset: Tuint16_t(1918), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lu}, 64779 {Fname_offset: Tuint16_t(1921), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64780 {Fname_offset: Tuint16_t(1926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64781 {Fname_offset: Tuint16_t(1933), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64782 {Fname_offset: Tuint16_t(1938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64783 {Fname_offset: Tuint16_t(1945), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_M}, 64784 {Fname_offset: Tuint16_t(1947), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64785 {Fname_offset: Tuint16_t(1956), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64786 {Fname_offset: Tuint16_t(1961), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64787 {Fname_offset: Tuint16_t(1966), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64788 {Fname_offset: Tuint16_t(1974), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64789 {Fname_offset: Tuint16_t(1984), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64790 {Fname_offset: Tuint16_t(1989), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64791 {Fname_offset: Tuint16_t(1997), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64792 {Fname_offset: Tuint16_t(2002), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64793 {Fname_offset: Tuint16_t(2013), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64794 {Fname_offset: Tuint16_t(2018), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64795 {Fname_offset: Tuint16_t(2026), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64796 {Fname_offset: Tuint16_t(2039), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Math}, 64797 {Fname_offset: Tuint16_t(2044), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mc}, 64798 {Fname_offset: Tuint16_t(2047), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Me}, 64799 {Fname_offset: Tuint16_t(2050), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64800 {Fname_offset: Tuint16_t(2062), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64801 {Fname_offset: Tuint16_t(2067), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64802 {Fname_offset: Tuint16_t(2079), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64803 {Fname_offset: Tuint16_t(2084), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64804 {Fname_offset: Tuint16_t(2097), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64805 {Fname_offset: Tuint16_t(2102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64806 {Fname_offset: Tuint16_t(2107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64807 {Fname_offset: Tuint16_t(2123), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64808 {Fname_offset: Tuint16_t(2143), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64809 {Fname_offset: Tuint16_t(2148), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64810 {Fname_offset: Tuint16_t(2153), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mn}, 64811 {Fname_offset: Tuint16_t(2156), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Modi}, 64812 {Fname_offset: Tuint16_t(2161), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64813 {Fname_offset: Tuint16_t(2166), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64814 {Fname_offset: Tuint16_t(2176), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64815 {Fname_offset: Tuint16_t(2180), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64816 {Fname_offset: Tuint16_t(2185), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64817 {Fname_offset: Tuint16_t(2190), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64818 {Fname_offset: Tuint16_t(2195), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64819 {Fname_offset: Tuint16_t(2203), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64820 {Fname_offset: Tuint16_t(2211), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64821 {Fname_offset: Tuint16_t(2216), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_N}, 64822 {Fname_offset: Tuint16_t(2218), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64823 {Fname_offset: Tuint16_t(2228), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64824 {Fname_offset: Tuint16_t(2233), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64825 {Fname_offset: Tuint16_t(2245), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64826 {Fname_offset: Tuint16_t(2250), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64827 {Fname_offset: Tuint16_t(2255), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64828 {Fname_offset: Tuint16_t(2261), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nd}, 64829 {Fname_offset: Tuint16_t(2264), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Newa}, 64830 {Fname_offset: Tuint16_t(2269), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64831 {Fname_offset: Tuint16_t(2279), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64832 {Fname_offset: Tuint16_t(2283), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64833 {Fname_offset: Tuint16_t(2288), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nl}, 64834 {Fname_offset: Tuint16_t(2291), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_No}, 64835 {Fname_offset: Tuint16_t(2294), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64836 {Fname_offset: Tuint16_t(2316), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64837 {Fname_offset: Tuint16_t(2321), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64838 {Fname_offset: Tuint16_t(2327), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64839 {Fname_offset: Tuint16_t(2348), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64840 {Fname_offset: Tuint16_t(2353), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64841 {Fname_offset: Tuint16_t(2359), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64842 {Fname_offset: Tuint16_t(2367), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64843 {Fname_offset: Tuint16_t(2372), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64844 {Fname_offset: Tuint16_t(2385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64845 {Fname_offset: Tuint16_t(2395), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64846 {Fname_offset: Tuint16_t(2411), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64847 {Fname_offset: Tuint16_t(2421), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 64848 {Fname_offset: Tuint16_t(2432), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64849 {Fname_offset: Tuint16_t(2443), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64850 {Fname_offset: Tuint16_t(2459), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64851 {Fname_offset: Tuint16_t(2469), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64852 {Fname_offset: Tuint16_t(2479), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64853 {Fname_offset: Tuint16_t(2485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64854 {Fname_offset: Tuint16_t(2490), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64855 {Fname_offset: Tuint16_t(2495), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64856 {Fname_offset: Tuint16_t(2501), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64857 {Fname_offset: Tuint16_t(2506), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64858 {Fname_offset: Tuint16_t(2511), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64859 {Fname_offset: Tuint16_t(2519), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64860 {Fname_offset: Tuint16_t(2524), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_P}, 64861 {Fname_offset: Tuint16_t(2526), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64862 {Fname_offset: Tuint16_t(2538), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64863 {Fname_offset: Tuint16_t(2543), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64864 {Fname_offset: Tuint16_t(2553), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64865 {Fname_offset: Tuint16_t(2560), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64866 {Fname_offset: Tuint16_t(2574), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64867 {Fname_offset: Tuint16_t(2592), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64868 {Fname_offset: Tuint16_t(2598), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64869 {Fname_offset: Tuint16_t(2603), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64870 {Fname_offset: Tuint16_t(2613), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pc}, 64871 {Fname_offset: Tuint16_t(2616), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64872 {Fname_offset: Tuint16_t(2620), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pd}, 64873 {Fname_offset: Tuint16_t(2623), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pe}, 64874 {Fname_offset: Tuint16_t(2626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64875 {Fname_offset: Tuint16_t(2631), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pf}, 64876 {Fname_offset: Tuint16_t(2634), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64877 {Fname_offset: Tuint16_t(2639), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64878 {Fname_offset: Tuint16_t(2647), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64879 {Fname_offset: Tuint16_t(2652), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64880 {Fname_offset: Tuint16_t(2657), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64881 {Fname_offset: Tuint16_t(2662), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64882 {Fname_offset: Tuint16_t(2673), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pi}, 64883 {Fname_offset: Tuint16_t(2676), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64884 {Fname_offset: Tuint16_t(2681), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Po}, 64885 {Fname_offset: Tuint16_t(2684), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64886 {Fname_offset: Tuint16_t(2711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64887 {Fname_offset: Tuint16_t(2716), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ps}, 64888 {Fname_offset: Tuint16_t(2719), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64889 {Fname_offset: Tuint16_t(2734), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64890 {Fname_offset: Tuint16_t(2739), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64891 {Fname_offset: Tuint16_t(2744), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64892 {Fname_offset: Tuint16_t(2750), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64893 {Fname_offset: Tuint16_t(2764), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Radical}, 64894 {Fname_offset: Tuint16_t(2772), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64895 {Fname_offset: Tuint16_t(2790), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64896 {Fname_offset: Tuint16_t(2797), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64897 {Fname_offset: Tuint16_t(2800), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64898 {Fname_offset: Tuint16_t(2805), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64899 {Fname_offset: Tuint16_t(2810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64900 {Fname_offset: Tuint16_t(2816), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64901 {Fname_offset: Tuint16_t(2821), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_S}, 64902 {Fname_offset: Tuint16_t(2823), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64903 {Fname_offset: Tuint16_t(2833), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64904 {Fname_offset: Tuint16_t(2838), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64905 {Fname_offset: Tuint16_t(2843), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64906 {Fname_offset: Tuint16_t(2848), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64907 {Fname_offset: Tuint16_t(2859), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sc}, 64908 {Fname_offset: Tuint16_t(2862), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64909 {Fname_offset: Tuint16_t(2865), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64910 {Fname_offset: Tuint16_t(2882), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64911 {Fname_offset: Tuint16_t(2887), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64912 {Fname_offset: Tuint16_t(2895), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64913 {Fname_offset: Tuint16_t(2903), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64914 {Fname_offset: Tuint16_t(2908), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64915 {Fname_offset: Tuint16_t(2913), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64916 {Fname_offset: Tuint16_t(2918), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64917 {Fname_offset: Tuint16_t(2926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64918 {Fname_offset: Tuint16_t(2938), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64919 {Fname_offset: Tuint16_t(2943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64920 {Fname_offset: Tuint16_t(2948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64921 {Fname_offset: Tuint16_t(2956), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sk}, 64922 {Fname_offset: Tuint16_t(2959), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sm}, 64923 {Fname_offset: Tuint16_t(2962), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_So}, 64924 {Fname_offset: Tuint16_t(2965), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64925 {Fname_offset: Tuint16_t(2976), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64926 {Fname_offset: Tuint16_t(2981), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64927 {Fname_offset: Tuint16_t(2989), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64928 {Fname_offset: Tuint16_t(2994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64929 {Fname_offset: Tuint16_t(2999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64930 {Fname_offset: Tuint16_t(3011), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64931 {Fname_offset: Tuint16_t(3016), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64932 {Fname_offset: Tuint16_t(3024), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 64933 {Fname_offset: Tuint16_t(3030), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64934 {Fname_offset: Tuint16_t(3036), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64935 {Fname_offset: Tuint16_t(3041), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64936 {Fname_offset: Tuint16_t(3051), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64937 {Fname_offset: Tuint16_t(3056), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64938 {Fname_offset: Tuint16_t(3068), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64939 {Fname_offset: Tuint16_t(3073), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64940 {Fname_offset: Tuint16_t(3080), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64941 {Fname_offset: Tuint16_t(3088), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64942 {Fname_offset: Tuint16_t(3093), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64943 {Fname_offset: Tuint16_t(3102), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64944 {Fname_offset: Tuint16_t(3108), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64945 {Fname_offset: Tuint16_t(3116), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64946 {Fname_offset: Tuint16_t(3124), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64947 {Fname_offset: Tuint16_t(3129), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64948 {Fname_offset: Tuint16_t(3135), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64949 {Fname_offset: Tuint16_t(3140), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64950 {Fname_offset: Tuint16_t(3145), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64951 {Fname_offset: Tuint16_t(3151), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64952 {Fname_offset: Tuint16_t(3156), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64953 {Fname_offset: Tuint16_t(3161), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64954 {Fname_offset: Tuint16_t(3168), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64955 {Fname_offset: Tuint16_t(3175), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64956 {Fname_offset: Tuint16_t(3180), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64957 {Fname_offset: Tuint16_t(3185), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64958 {Fname_offset: Tuint16_t(3192), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64959 {Fname_offset: Tuint16_t(3197), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64960 {Fname_offset: Tuint16_t(3217), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64961 {Fname_offset: Tuint16_t(3222), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64962 {Fname_offset: Tuint16_t(3227), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64963 {Fname_offset: Tuint16_t(3232), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64964 {Fname_offset: Tuint16_t(3239), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Thai}, 64965 {Fname_offset: Tuint16_t(3244), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64966 {Fname_offset: Tuint16_t(3252), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64967 {Fname_offset: Tuint16_t(3257), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64968 {Fname_offset: Tuint16_t(3266), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64969 {Fname_offset: Tuint16_t(3271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64970 {Fname_offset: Tuint16_t(3279), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64971 {Fname_offset: Tuint16_t(3284), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Toto}, 64972 {Fname_offset: Tuint16_t(3289), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64973 {Fname_offset: Tuint16_t(3294), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64974 {Fname_offset: Tuint16_t(3303), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64975 {Fname_offset: Tuint16_t(3309), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64976 {Fname_offset: Tuint16_t(3326), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 64977 {Fname_offset: Tuint16_t(3334), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64978 {Fname_offset: Tuint16_t(3340), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64979 {Fname_offset: Tuint16_t(3350), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64980 {Fname_offset: Tuint16_t(3354), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64981 {Fname_offset: Tuint16_t(3359), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 64982 {Fname_offset: Tuint16_t(3377), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 64983 {Fname_offset: Tuint16_t(3382), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 64984 {Fname_offset: Tuint16_t(3391), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 64985 {Fname_offset: Tuint16_t(3394), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 64986 {Fname_offset: Tuint16_t(3401), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 64987 {Fname_offset: Tuint16_t(3406), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 64988 {Fname_offset: Tuint16_t(3417), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 64989 {Fname_offset: Tuint16_t(3422), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 64990 {Fname_offset: Tuint16_t(3433), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 64991 {Fname_offset: Tuint16_t(3440), Ftype: Tuint16_t(DPT_ALNUM)}, 64992 {Fname_offset: Tuint16_t(3444), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 64993 {Fname_offset: Tuint16_t(3449), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 64994 {Fname_offset: Tuint16_t(3461), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 64995 {Fname_offset: Tuint16_t(3466), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 64996 {Fname_offset: Tuint16_t(3475), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 64997 {Fname_offset: Tuint16_t(3480), Ftype: Tuint16_t(DPT_PXSPACE)}, 64998 {Fname_offset: Tuint16_t(3484), Ftype: Tuint16_t(DPT_SPACE)}, 64999 {Fname_offset: Tuint16_t(3488), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 65000 {Fname_offset: Tuint16_t(3493), Ftype: Tuint16_t(DPT_UCNC)}, 65001 {Fname_offset: Tuint16_t(3497), Ftype: Tuint16_t(DPT_WORD)}, 65002 {Fname_offset: Tuint16_t(3501), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65003 {Fname_offset: Tuint16_t(3506), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65004 {Fname_offset: Tuint16_t(3513), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65005 {Fname_offset: Tuint16_t(3516), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65006 {Fname_offset: Tuint16_t(3521), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_Z}, 65007 {Fname_offset: Tuint16_t(3523), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65008 {Fname_offset: Tuint16_t(3539), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65009 {Fname_offset: Tuint16_t(3544), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 65010 {Fname_offset: Tuint16_t(3549), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zl}, 65011 {Fname_offset: Tuint16_t(3552), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zp}, 65012 {Fname_offset: Tuint16_t(3555), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zs}, 65013 {Fname_offset: Tuint16_t(3558), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 65014 {Fname_offset: Tuint16_t(3563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 65015 } /* pcre2_ucptables.c:1031:22 */ 65016 65017 var X_pcre2_utt_size_8 Tsize_t = uint32(unsafe.Sizeof(X_pcre2_utt_8)) / uint32(unsafe.Sizeof(Tucp_type_table{})) /* pcre2_ucptables.c:1520:14 */ 65018 65019 // End of pcre2_ucptables.c 65020 65021 // End of pcre2_tables.c 65022 65023 // This function is needed only when memmove() is not available. 65024 65025 // End of pcre2_internal.h 65026 65027 // The tables herein are needed only when UCP support is built, and in PCRE2 65028 // that happens automatically with UTF support. This module should not be 65029 // referenced otherwise, so it should not matter whether it is compiled or not. 65030 // However a comment was received about space saving - maybe the guy linked all 65031 // the modules rather than using a library - so we include a condition to cut out 65032 // the tables when not needed. But don't leave a totally empty module because some 65033 // compilers barf at that. Instead, just supply some small dummy tables. 65034 65035 // Total size: 111116 bytes, block size: 128. 65036 65037 var X_pcre2_unicode_version_8 uintptr = ts + 11252 /* "14.0.0" */ /* pcre2_ucd.c:79:12 */ 65038 65039 // When recompiling tables with a new Unicode version, please check the types 65040 // in this structure definition with those in pcre2_internal.h (the actual field 65041 // names will be different). 65042 // 65043 // typedef struct { 65044 // uint8_t property_0; 65045 // uint8_t property_1; 65046 // uint8_t property_2; 65047 // uint8_t property_3; 65048 // int32_t property_4; 65049 // uint16_t property_5; 65050 // uint16_t property_6; 65051 // } ucd_record; 65052 65053 // If the 32-bit library is run in non-32-bit mode, character values greater 65054 // than 0x10ffff may be encountered. For these we set up a special record. 65055 65056 // This table contains lists of characters that are caseless sets of 65057 // more than one character. Each list is terminated by NOTACHAR. 65058 65059 var X_pcre2_ucd_caseless_sets_8 = [112]Tuint32_t{ 65060 DNOTACHAR, 65061 Tuint32_t(0x0053), Tuint32_t(0x0073), Tuint32_t(0x017f), DNOTACHAR, 65062 Tuint32_t(0x01c4), Tuint32_t(0x01c5), Tuint32_t(0x01c6), DNOTACHAR, 65063 Tuint32_t(0x01c7), Tuint32_t(0x01c8), Tuint32_t(0x01c9), DNOTACHAR, 65064 Tuint32_t(0x01ca), Tuint32_t(0x01cb), Tuint32_t(0x01cc), DNOTACHAR, 65065 Tuint32_t(0x01f1), Tuint32_t(0x01f2), Tuint32_t(0x01f3), DNOTACHAR, 65066 Tuint32_t(0x0345), Tuint32_t(0x0399), Tuint32_t(0x03b9), Tuint32_t(0x1fbe), DNOTACHAR, 65067 Tuint32_t(0x00b5), Tuint32_t(0x039c), Tuint32_t(0x03bc), DNOTACHAR, 65068 Tuint32_t(0x03a3), Tuint32_t(0x03c2), Tuint32_t(0x03c3), DNOTACHAR, 65069 Tuint32_t(0x0392), Tuint32_t(0x03b2), Tuint32_t(0x03d0), DNOTACHAR, 65070 Tuint32_t(0x0398), Tuint32_t(0x03b8), Tuint32_t(0x03d1), Tuint32_t(0x03f4), DNOTACHAR, 65071 Tuint32_t(0x03a6), Tuint32_t(0x03c6), Tuint32_t(0x03d5), DNOTACHAR, 65072 Tuint32_t(0x03a0), Tuint32_t(0x03c0), Tuint32_t(0x03d6), DNOTACHAR, 65073 Tuint32_t(0x039a), Tuint32_t(0x03ba), Tuint32_t(0x03f0), DNOTACHAR, 65074 Tuint32_t(0x03a1), Tuint32_t(0x03c1), Tuint32_t(0x03f1), DNOTACHAR, 65075 Tuint32_t(0x0395), Tuint32_t(0x03b5), Tuint32_t(0x03f5), DNOTACHAR, 65076 Tuint32_t(0x0412), Tuint32_t(0x0432), Tuint32_t(0x1c80), DNOTACHAR, 65077 Tuint32_t(0x0414), Tuint32_t(0x0434), Tuint32_t(0x1c81), DNOTACHAR, 65078 Tuint32_t(0x041e), Tuint32_t(0x043e), Tuint32_t(0x1c82), DNOTACHAR, 65079 Tuint32_t(0x0421), Tuint32_t(0x0441), Tuint32_t(0x1c83), DNOTACHAR, 65080 Tuint32_t(0x0422), Tuint32_t(0x0442), Tuint32_t(0x1c84), Tuint32_t(0x1c85), DNOTACHAR, 65081 Tuint32_t(0x042a), Tuint32_t(0x044a), Tuint32_t(0x1c86), DNOTACHAR, 65082 Tuint32_t(0x0462), Tuint32_t(0x0463), Tuint32_t(0x1c87), DNOTACHAR, 65083 Tuint32_t(0x1e60), Tuint32_t(0x1e61), Tuint32_t(0x1e9b), DNOTACHAR, 65084 Tuint32_t(0x03a9), Tuint32_t(0x03c9), Tuint32_t(0x2126), DNOTACHAR, 65085 Tuint32_t(0x004b), Tuint32_t(0x006b), Tuint32_t(0x212a), DNOTACHAR, 65086 Tuint32_t(0x00c5), Tuint32_t(0x00e5), Tuint32_t(0x212b), DNOTACHAR, 65087 Tuint32_t(0x1c88), Tuint32_t(0xa64a), Tuint32_t(0xa64b), DNOTACHAR, 65088 } /* pcre2_ucd.c:114:16 */ 65089 65090 // When #included in pcre2test, we don't need the table of digit sets, nor the 65091 // the large main UCD tables. 65092 65093 // This table lists the code points for the '9' characters in each set of 65094 // decimal digits. It is used to ensure that all the digits in a script run come 65095 // from the same set. 65096 65097 var X_pcre2_ucd_digit_sets_8 = [67]Tuint32_t{ 65098 Tuint32_t(66), // Number of subsequent values 65099 Tuint32_t(0x00039), Tuint32_t(0x00669), Tuint32_t(0x006f9), Tuint32_t(0x007c9), Tuint32_t(0x0096f), Tuint32_t(0x009ef), Tuint32_t(0x00a6f), Tuint32_t(0x00aef), 65100 Tuint32_t(0x00b6f), Tuint32_t(0x00bef), Tuint32_t(0x00c6f), Tuint32_t(0x00cef), Tuint32_t(0x00d6f), Tuint32_t(0x00def), Tuint32_t(0x00e59), Tuint32_t(0x00ed9), 65101 Tuint32_t(0x00f29), Tuint32_t(0x01049), Tuint32_t(0x01099), Tuint32_t(0x017e9), Tuint32_t(0x01819), Tuint32_t(0x0194f), Tuint32_t(0x019d9), Tuint32_t(0x01a89), 65102 Tuint32_t(0x01a99), Tuint32_t(0x01b59), Tuint32_t(0x01bb9), Tuint32_t(0x01c49), Tuint32_t(0x01c59), Tuint32_t(0x0a629), Tuint32_t(0x0a8d9), Tuint32_t(0x0a909), 65103 Tuint32_t(0x0a9d9), Tuint32_t(0x0a9f9), Tuint32_t(0x0aa59), Tuint32_t(0x0abf9), Tuint32_t(0x0ff19), Tuint32_t(0x104a9), Tuint32_t(0x10d39), Tuint32_t(0x1106f), 65104 Tuint32_t(0x110f9), Tuint32_t(0x1113f), Tuint32_t(0x111d9), Tuint32_t(0x112f9), Tuint32_t(0x11459), Tuint32_t(0x114d9), Tuint32_t(0x11659), Tuint32_t(0x116c9), 65105 Tuint32_t(0x11739), Tuint32_t(0x118e9), Tuint32_t(0x11959), Tuint32_t(0x11c59), Tuint32_t(0x11d59), Tuint32_t(0x11da9), Tuint32_t(0x16a69), Tuint32_t(0x16ac9), 65106 Tuint32_t(0x16b59), Tuint32_t(0x1d7d7), Tuint32_t(0x1d7e1), Tuint32_t(0x1d7eb), Tuint32_t(0x1d7f5), Tuint32_t(0x1d7ff), Tuint32_t(0x1e149), Tuint32_t(0x1e2f9), 65107 Tuint32_t(0x1e959), Tuint32_t(0x1fbf9), 65108 } /* pcre2_ucd.c:154:16 */ 65109 65110 // This vector is a list of script bitsets for the Script Extension property. 65111 // The number of 32-bit words in each bitset is #defined in pcre2_ucp.h as 65112 // ucd_script_sets_item_size. 65113 65114 var X_pcre2_ucd_script_sets_8 = [189]Tuint32_t{ 65115 0x00000000, 0x00000000, 0x00000000, 65116 0x00000080, 0x00000000, 0x00000000, 65117 0x00000040, 0x00000000, 0x00000000, 65118 0x00000000, 0x00004000, 0x00000000, 65119 0x00000002, 0x00000000, 0x00000000, 65120 0x00800000, 0x00000000, 0x00000000, 65121 0x00000001, 0x00000000, 0x00000000, 65122 0x00000000, 0x00000000, 0x00000001, 65123 0x00000010, 0x00000000, 0x00000000, 65124 0x00000008, 0x00000004, 0x00000000, 65125 0x00000008, 0x40000000, 0x00000000, 65126 0x00000008, 0x00000040, 0x00000000, 65127 0x00000018, 0x00000000, 0x00000000, 65128 0x00000028, 0x00000000, 0x00000000, 65129 0x000000c0, 0x00000000, 0x00000000, 65130 0x00c00000, 0x00000000, 0x00000000, 65131 0x00000000, 0x00000102, 0x00000000, 65132 0x80000000, 0x00000001, 0x00000000, 65133 0x00000004, 0x00000008, 0x00000000, 65134 0x00000005, 0x00000000, 0x00000000, 65135 0x00000004, 0x00200000, 0x00000000, 65136 0x00000014, 0x00000000, 0x00000000, 65137 0x00000040, 0x00008000, 0x00000000, 65138 0x00000040, 0x00000000, 0x00000001, 65139 0x00000040, 0x00001000, 0x00000000, 65140 0x00000840, 0x00000000, 0x00000000, 65141 0x00020001, 0x00000000, 0x00000000, 65142 0x00000800, 0x00008000, 0x00000000, 65143 0x00000200, 0x00010000, 0x00000000, 65144 0x00000100, 0x02000000, 0x00000000, 65145 0x00800001, 0x00000000, 0x00000000, 65146 0x00300000, 0x00000000, 0x00000000, 65147 0x00002000, 0x00000000, 0x00000001, 65148 0x00080001, 0x00000000, 0x00000000, 65149 0x00000000, 0x00080000, 0x00000008, 65150 0x00080000, 0x00000020, 0x00000000, 65151 0x00000038, 0x00000000, 0x00000000, 65152 0x00000028, 0x00000000, 0x00000002, 65153 0x00000080, 0x00000810, 0x00000000, 65154 0x40010000, 0x00000800, 0x00000000, 65155 0x80000000, 0x00000001, 0x00000004, 65156 0x80000000, 0x00020001, 0x00000000, 65157 0x00002040, 0x00008000, 0x00000000, 65158 0x00000041, 0x00008000, 0x00000000, 65159 0x00b00000, 0x00000000, 0x00000000, 65160 0x00010001, 0x00000080, 0x00000000, 65161 0x000020c0, 0x00008000, 0x00000000, 65162 0x1e000000, 0x00000000, 0x00000000, 65163 0x00000040, 0x10040200, 0x00000000, 65164 0x00f40000, 0x00000000, 0x00000000, 65165 0x00000038, 0x40000040, 0x00000002, 65166 0x01f40000, 0x00000000, 0x00000000, 65167 0x00007c40, 0x00000000, 0x00000000, 65168 0x00000038, 0x44000040, 0x00000002, 65169 0x000034c0, 0x01008000, 0x00000001, 65170 0x00000018, 0xc4480400, 0x00000008, 65171 0x00000340, 0x11952200, 0x00000000, 65172 0x00007fc1, 0x01008000, 0x00000000, 65173 0x00007fc1, 0x01009000, 0x00000000, 65174 0x00002340, 0x11952200, 0x00000001, 65175 0x00006340, 0x11952200, 0x00000001, 65176 0x0000ffc0, 0x3984a010, 0x00000001, 65177 0x2000ffc0, 0x3984a010, 0x00000001, 65178 } /* pcre2_ucd.c:171:16 */ 65179 65180 // This vector is a list of bitsets for Boolean properties. The number of 65181 // 32_bit words in each bitset is #defined as ucd_boolprop_sets_item_size in 65182 // pcre2_ucp.h. 65183 65184 var X_pcre2_ucd_boolprop_sets_8 = [354]Tuint32_t{ 65185 0x00000000, 0x00000000, 65186 0x00000001, 0x00000000, 65187 0x00000001, 0x00020040, 65188 0x00800001, 0x00020040, 65189 0x00800001, 0x00002820, 65190 0x00800001, 0x00000120, 65191 0x00830001, 0x00000020, 65192 0x00800001, 0x00000020, 65193 0x00800021, 0x00000120, 65194 0x00800011, 0x00000020, 65195 0x00800001, 0x00000028, 65196 0x00800001, 0x00002020, 65197 0x00801001, 0x00000020, 65198 0x00800021, 0x00002820, 65199 0x24830003, 0x00040000, 65200 0x00800021, 0x00002020, 65201 0x00800011, 0x00000028, 65202 0x648003c7, 0x000c8000, 65203 0x608003c5, 0x000c8000, 65204 0x00808021, 0x00000028, 65205 0x20800001, 0x00040000, 65206 0x00808021, 0x00000020, 65207 0x64800d47, 0x000c0004, 65208 0x60800d45, 0x000c0004, 65209 0x60800d45, 0x000c1004, 65210 0x00000000, 0x00020040, 65211 0x00800000, 0x00020000, 65212 0x00800000, 0x00000020, 65213 0x00808020, 0x00000000, 65214 0x00a10000, 0x00000020, 65215 0x60800044, 0x000c0004, 65216 0x00800010, 0x00000120, 65217 0x00800000, 0x00000028, 65218 0x00002020, 0x00000000, 65219 0x00800000, 0x00000000, 65220 0x60800dc4, 0x000c0004, 65221 0x20c08020, 0x00040000, 65222 0x608003c4, 0x000c8000, 65223 0x60800d44, 0x000c0004, 65224 0x60800d44, 0x000c1004, 65225 0x60804dc4, 0x000c0004, 65226 0x60800004, 0x000c0000, 65227 0x608007c4, 0x000c8000, 65228 0x60800bc4, 0x000c0000, 65229 0x60808064, 0x000c0004, 65230 0x60808064, 0x000c1004, 65231 0x60808024, 0x000c0000, 65232 0x60c08024, 0x000c0000, 65233 0x21008020, 0x00040000, 65234 0x21008de4, 0x00040004, 65235 0x21002020, 0x00040000, 65236 0x21000020, 0x00040000, 65237 0x60808064, 0x00000004, 65238 0x00800000, 0x00002000, 65239 0x20800020, 0x00042000, 65240 0x60800dc4, 0x000c000c, 65241 0x60800044, 0x000c8008, 65242 0x60800044, 0x000c8000, 65243 0x608003c4, 0x000c8008, 65244 0x00800000, 0x00000008, 65245 0x01000020, 0x00000000, 65246 0x00800020, 0x00000000, 65247 0x00800000, 0x00002800, 65248 0x00801000, 0x00000000, 65249 0x21008024, 0x00040000, 65250 0x21000024, 0x00040000, 65251 0x00000020, 0x00000080, 65252 0x00002028, 0x00000000, 65253 0x60c00024, 0x000c0000, 65254 0x20800000, 0x00040000, 65255 0x60804004, 0x000c0000, 65256 0x60800024, 0x000c0000, 65257 0x20800004, 0x00040000, 65258 0x23008020, 0x00040000, 65259 0x21000004, 0x00040000, 65260 0x21408020, 0x00040000, 65261 0x60800004, 0x00040000, 65262 0x23000024, 0x00040000, 65263 0x60800004, 0x000c0002, 65264 0x00800010, 0x00000000, 65265 0x20808000, 0x00040000, 65266 0x21004024, 0x00040000, 65267 0x20808004, 0x00040000, 65268 0x60800944, 0x000c0004, 65269 0x60802004, 0x000c0000, 65270 0x60800344, 0x000c8000, 65271 0x22808000, 0x00040000, 65272 0x22800000, 0x00040000, 65273 0x00c00000, 0x00000000, 65274 0x21002020, 0x00050000, 65275 0x61000024, 0x000c0000, 65276 0x23000020, 0x00040000, 65277 0x01008020, 0x00000000, 65278 0x21408024, 0x00040000, 65279 0x00808000, 0x00000000, 65280 0x60800064, 0x000c0004, 65281 0x60800044, 0x000c1004, 65282 0x60800064, 0x000c1004, 65283 0x01002020, 0x00000001, 65284 0x00022020, 0x00000001, 65285 0x00002028, 0x00000040, 65286 0x00801000, 0x00000020, 65287 0x00800020, 0x00000120, 65288 0x00800000, 0x00000120, 65289 0x00800020, 0x00000020, 65290 0x00a10000, 0x00002820, 65291 0x00800000, 0x00002820, 65292 0x20800000, 0x00040008, 65293 0x00800010, 0x00000020, 65294 0x00002020, 0x00000008, 65295 0x00002000, 0x00000000, 65296 0x00006020, 0x00000000, 65297 0x00801000, 0x00000008, 65298 0x00800010, 0x00000008, 65299 0x21000020, 0x00040008, 65300 0x01020020, 0x00000000, 65301 0x60800044, 0x000c000c, 65302 0x60800000, 0x000c0008, 65303 0x00a10000, 0x00000000, 65304 0x60800000, 0x000c0000, 65305 0x60800004, 0x000c0008, 65306 0x60a10044, 0x000c0004, 65307 0x60800044, 0x000c100c, 65308 0x00a10000, 0x00000028, 65309 0x00800010, 0x00000028, 65310 0x00801000, 0x00000028, 65311 0x00b10000, 0x00000020, 65312 0x00804010, 0x00000020, 65313 0x00a00000, 0x00000020, 65314 0x00000000, 0x00000020, 65315 0x008003c4, 0x00008000, 65316 0x00a103c4, 0x00008000, 65317 0x00800d44, 0x00000004, 65318 0x00b10000, 0x00000028, 65319 0x00a00000, 0x00000028, 65320 0x00a90000, 0x00000020, 65321 0x00b90000, 0x00000020, 65322 0x00808024, 0x00000020, 65323 0x00800000, 0x00002020, 65324 0x00800000, 0x00000200, 65325 0x08800000, 0x00000000, 65326 0x10800000, 0x00000000, 65327 0xe0800004, 0x000c0000, 65328 0x21008000, 0x00040000, 65329 0x00a11000, 0x00000020, 65330 0x60808020, 0x00000000, 65331 0xe0800004, 0x000c4000, 65332 0x60808004, 0x000c0000, 65333 0x60800004, 0x00000000, 65334 0x00000000, 0x00000010, 65335 0x21022020, 0x00050000, 65336 0x00800000, 0x00000100, 65337 0x00800020, 0x00002800, 65338 0x00800020, 0x00002000, 65339 0x00800020, 0x00000100, 65340 0x24800000, 0x00040000, 65341 0x648003c4, 0x000c8000, 65342 0x00808020, 0x00000008, 65343 0x64800d44, 0x000c0004, 65344 0x00800010, 0x00000100, 65345 0x61008024, 0x00040000, 65346 0x00000020, 0x00000000, 65347 0x60c00004, 0x000c0000, 65348 0x21400020, 0x00040000, 65349 0xa1000020, 0x00040000, 65350 0x21000000, 0x00040000, 65351 0x00a00000, 0x00000000, 65352 0x00b10000, 0x00000000, 65353 0x00200000, 0x00000000, 65354 0x00800044, 0x00008000, 65355 0x00a10044, 0x00008000, 65356 0x00930000, 0x00000400, 65357 0x00b90000, 0x00000000, 65358 0x00a90000, 0x00000000, 65359 0x00970020, 0x00000000, 65360 0x00b30000, 0x00000000, 65361 0x01022020, 0x00000000, 65362 } /* pcre2_ucd.c:241:16 */ 65363 65364 // These are the main two-stage UCD tables. The fields in each record are: 65365 // script (8 bits), character type (8 bits), grapheme break property (8 bits), 65366 // offset to multichar other cases or zero (8 bits), offset to other case or zero 65367 // (32 bits, signed), bidi class (5 bits) and script extension (11 bits) packed 65368 // into a 16-bit field, and offset in binary properties table (16 bits). 65369 65370 var X_pcre2_ucd_records_8 = [1409]Tucd_record{ // 16908 bytes, record size 12 65371 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(2)}, // 0 65372 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(4)}, // 1 65373 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(1), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 2 65374 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(4)}, // 3 65375 {Fscript: Tuint8_t(69), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 4 65376 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(2)}, // 5 65377 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(2)}, // 6 65378 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(6)}, // 7 65379 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(8)}, // 8 65380 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(10)}, // 9 65381 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(12)}, // 10 65382 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 11 65383 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 12 65384 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(14)}, // 13 65385 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(16)}, // 14 65386 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 15 65387 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 16 65388 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(12)}, // 17 65389 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(20)}, // 18 65390 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(22)}, // 19 65391 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(24)}, // 20 65392 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(26)}, // 21 65393 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(14)}, // 22 65394 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(28)}, // 23 65395 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(30)}, // 24 65396 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(22)}, // 25 65397 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(32)}, // 26 65398 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(20)}, // 27 65399 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(34)}, // 28 65400 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 29 65401 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 30 65402 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 31 65403 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(38)}, // 32 65404 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(40)}, // 33 65405 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(42)}, // 34 65406 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(44)}, // 35 65407 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 36 65408 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(48)}, // 37 65409 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 38 65410 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 39 65411 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144)}, // 40 65412 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 41 65413 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(52)}, // 42 65414 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 43 65415 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 44 65416 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 45 65417 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 46 65418 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(58)}, // 47 65419 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 48 65420 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 49 65421 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 50 65422 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 51 65423 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 52 65424 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 53 65425 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(68)}, // 54 65426 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: 775, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 55 65427 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(72)}, // 56 65428 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 57 65429 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 58 65430 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 59 65431 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 60 65432 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 61 65433 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 62 65434 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 63 65435 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 64 65436 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 65 65437 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 66 65438 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 67 65439 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 68 65440 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 69 65441 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 70 65442 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(80)}, // 71 65443 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 72 65444 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: -268, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 73 65445 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 74 65446 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 75 65447 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 76 65448 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 77 65449 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 78 65450 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 79 65451 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 80 65452 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 81 65453 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 82 65454 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 83 65455 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 84 65456 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 85 65457 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 86 65458 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 87 65459 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 88 65460 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 89 65461 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 90 65462 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 91 65463 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 92 65464 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 93 65465 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 94 65466 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 95 65467 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 96 65468 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 97 65469 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 98 65470 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 99 65471 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 100 65472 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 101 65473 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 102 65474 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 103 65475 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 104 65476 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 105 65477 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 106 65478 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 107 65479 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 108 65480 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 109 65481 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 110 65482 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 111 65483 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 112 65484 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 113 65485 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 114 65486 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 115 65487 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 116 65488 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 117 65489 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 118 65490 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 119 65491 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 120 65492 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 121 65493 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 122 65494 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 123 65495 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 124 65496 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 125 65497 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 126 65498 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 127 65499 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 128 65500 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 129 65501 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 130 65502 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 131 65503 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 132 65504 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 133 65505 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 134 65506 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 135 65507 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 136 65508 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 137 65509 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 138 65510 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 139 65511 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 140 65512 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 141 65513 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 142 65514 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 143 65515 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 144 65516 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 145 65517 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 146 65518 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 147 65519 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(90)}, // 148 65520 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 149 65521 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 150 65522 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 151 65523 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 152 65524 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 153 65525 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 154 65526 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(96)}, // 155 65527 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fcaseset: Tuint8_t(21), Fother_case: 116, Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(98)}, // 156 65528 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 157 65529 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 158 65530 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26642), Fbprops: Tuint16_t(102)}, // 159 65531 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 160 65532 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 161 65533 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 162 65534 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 163 65535 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(104)}, // 164 65536 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 165 65537 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 166 65538 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 167 65539 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 38, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 168 65540 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(108)}, // 169 65541 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 37, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 170 65542 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 171 65543 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 63, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 172 65544 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 173 65545 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 174 65546 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 175 65547 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 176 65548 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 177 65549 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 178 65550 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 179 65551 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 180 65552 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 181 65553 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 182 65554 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 183 65555 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 184 65556 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 185 65557 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -38, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 186 65558 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -37, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 187 65559 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 188 65560 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 189 65561 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 190 65562 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 191 65563 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: -116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 192 65564 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 193 65565 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: -775, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 194 65566 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 195 65567 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 196 65568 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 197 65569 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 198 65570 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 199 65571 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 200 65572 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 201 65573 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -63, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 202 65574 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 203 65575 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: -30, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 204 65576 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -25, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 205 65577 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 206 65578 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(114)}, // 207 65579 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: -15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 208 65580 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: -22, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 209 65581 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 210 65582 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 211 65583 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 212 65584 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: -54, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 213 65585 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 214 65586 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 7, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 215 65587 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 216 65588 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -60, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(116)}, // 217 65589 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 218 65590 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 219 65591 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -7, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 220 65592 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 221 65593 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 222 65594 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 223 65595 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 224 65596 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 225 65597 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 226 65598 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 227 65599 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 228 65600 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 229 65601 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 230 65602 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 231 65603 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 232 65604 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 233 65605 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 234 65606 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 235 65607 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 236 65608 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 237 65609 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 238 65610 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 239 65611 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 240 65612 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 241 65613 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 242 65614 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 243 65615 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 244 65616 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26684), Fbprops: Tuint16_t(96)}, // 245 65617 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26678), Fbprops: Tuint16_t(96)}, // 246 65618 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26681), Fbprops: Tuint16_t(96)}, // 247 65619 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 248 65620 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 249 65621 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 250 65622 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 251 65623 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 252 65624 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 253 65625 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(122)}, // 254 65626 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 255 65627 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 256 65628 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 257 65629 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 258 65630 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 259 65631 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 260 65632 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 261 65633 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816)}, // 262 65634 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 263 65635 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 264 65636 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 265 65637 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 266 65638 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 267 65639 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 268 65640 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 269 65641 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 270 65642 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(122)}, // 271 65643 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 272 65644 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 273 65645 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 274 65646 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(118)}, // 275 65647 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 276 65648 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 277 65649 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8342), Fbprops: Tuint16_t(106)}, // 278 65650 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 279 65651 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 280 65652 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 281 65653 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(150), Fbprops: Tuint16_t(106)}, // 282 65654 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(108), Fbprops: Tuint16_t(134)}, // 283 65655 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 284 65656 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(159), Fbprops: Tuint16_t(124)}, // 285 65657 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 286 65658 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(165), Fbprops: Tuint16_t(136)}, // 287 65659 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(128)}, // 288 65660 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(130)}, // 289 65661 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 290 65662 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 291 65663 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2159), Fbprops: Tuint16_t(138)}, // 292 65664 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 293 65665 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(140)}, // 294 65666 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(30), Fbprops: Tuint16_t(124)}, // 295 65667 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(92)}, // 296 65668 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 297 65669 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 298 65670 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 299 65671 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(106)}, // 300 65672 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 301 65673 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12)}, // 302 65674 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fbprops: Tuint16_t(132)}, // 303 65675 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 304 65676 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 305 65677 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 306 65678 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 307 65679 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 308 65680 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 309 65681 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 310 65682 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 311 65683 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 312 65684 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(92)}, // 313 65685 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 314 65686 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 315 65687 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 316 65688 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 317 65689 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(136)}, // 318 65690 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 319 65691 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 320 65692 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 321 65693 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 322 65694 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 323 65695 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 324 65696 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 325 65697 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 326 65698 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 327 65699 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 328 65700 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 329 65701 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 330 65702 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(122)}, // 331 65703 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 332 65704 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 333 65705 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 334 65706 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 335 65707 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 336 65708 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 337 65709 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26798), Fbprops: Tuint16_t(96)}, // 338 65710 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26795), Fbprops: Tuint16_t(96)}, // 339 65711 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18615), Fbprops: Tuint16_t(124)}, // 340 65712 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18618), Fbprops: Tuint16_t(124)}, // 341 65713 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18576), Fbprops: Tuint16_t(138)}, // 342 65714 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 343 65715 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 344 65716 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 345 65717 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 346 65718 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 347 65719 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 348 65720 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 349 65721 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 350 65722 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18546), Fbprops: Tuint16_t(138)}, // 351 65723 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 352 65724 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 353 65725 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 354 65726 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 355 65727 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 356 65728 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 357 65729 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 358 65730 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 359 65731 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 360 65732 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 361 65733 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18519), Fbprops: Tuint16_t(138)}, // 362 65734 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 363 65735 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 364 65736 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 365 65737 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 366 65738 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 367 65739 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 368 65740 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18516), Fbprops: Tuint16_t(138)}, // 369 65741 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 370 65742 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 371 65743 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 372 65744 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 373 65745 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 374 65746 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 375 65747 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 376 65748 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 377 65749 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 378 65750 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 379 65751 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 380 65752 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 381 65753 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 382 65754 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 383 65755 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 384 65756 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 385 65757 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 386 65758 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(138)}, // 387 65759 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(68)}, // 388 65760 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28753), Fbprops: Tuint16_t(68)}, // 389 65761 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 390 65762 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 391 65763 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 392 65764 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 393 65765 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 394 65766 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 395 65767 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 396 65768 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 397 65769 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 398 65770 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 399 65771 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 400 65772 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 401 65773 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 402 65774 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 403 65775 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 404 65776 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 405 65777 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 406 65778 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 407 65779 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 408 65780 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 409 65781 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18528), Fbprops: Tuint16_t(138)}, // 410 65782 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 411 65783 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 412 65784 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 413 65785 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 414 65786 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 415 65787 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 416 65788 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 417 65789 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 418 65790 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 419 65791 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 420 65792 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 421 65793 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 422 65794 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 423 65795 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 424 65796 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 425 65797 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 426 65798 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 427 65799 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 428 65800 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 429 65801 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(154)}, // 430 65802 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 431 65803 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 432 65804 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 433 65805 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 434 65806 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 435 65807 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 436 65808 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 437 65809 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 438 65810 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 439 65811 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 440 65812 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 441 65813 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 442 65814 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 443 65815 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 444 65816 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 445 65817 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 446 65818 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 447 65819 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 448 65820 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 449 65821 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 450 65822 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 451 65823 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 452 65824 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 453 65825 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 454 65826 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 455 65827 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 456 65828 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(162)}, // 457 65829 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 458 65830 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 459 65831 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 460 65832 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 461 65833 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 462 65834 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 463 65835 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 464 65836 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 465 65837 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 466 65838 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18549), Fbprops: Tuint16_t(138)}, // 467 65839 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 468 65840 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 469 65841 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 470 65842 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 471 65843 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 472 65844 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 473 65845 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 7264, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 474 65846 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 3008, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(166)}, // 475 65847 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18510), Fbprops: Tuint16_t(68)}, // 476 65848 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 477 65849 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 478 65850 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 479 65851 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 480 65852 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 481 65853 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(8), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 482 65854 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 483 65855 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 484 65856 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 485 65857 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 486 65858 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 487 65859 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 488 65860 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 489 65861 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 490 65862 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 38864, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(170)}, // 491 65863 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(170)}, // 492 65864 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 493 65865 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 494 65866 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 495 65867 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 496 65868 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 497 65869 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 498 65870 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 499 65871 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 500 65872 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 501 65873 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 502 65874 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 503 65875 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 504 65876 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 505 65877 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 506 65878 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 507 65879 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 508 65880 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 509 65881 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 510 65882 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 511 65883 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18573), Fbprops: Tuint16_t(124)}, // 512 65884 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 513 65885 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 514 65886 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 515 65887 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 516 65888 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 517 65889 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(140)}, // 518 65890 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 519 65891 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 520 65892 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 521 65893 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 522 65894 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 523 65895 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 524 65896 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 525 65897 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 526 65898 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 527 65899 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 528 65900 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 529 65901 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 530 65902 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(106)}, // 531 65903 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(124)}, // 532 65904 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 533 65905 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 534 65906 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 535 65907 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(176)}, // 536 65908 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 537 65909 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 538 65910 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 539 65911 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 540 65912 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 541 65913 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(180)}, // 542 65914 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 543 65915 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 544 65916 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 545 65917 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 546 65918 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 547 65919 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 548 65920 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 549 65921 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 550 65922 {Fscript: Tuint8_t(30), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 551 65923 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 552 65924 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 553 65925 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 554 65926 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 555 65927 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 556 65928 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 557 65929 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 558 65930 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 559 65931 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 560 65932 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 561 65933 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 562 65934 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 563 65935 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 564 65936 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 565 65937 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 566 65938 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 567 65939 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 568 65940 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 569 65941 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 570 65942 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 571 65943 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(184)}, // 572 65944 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 573 65945 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 574 65946 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 575 65947 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 576 65948 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 577 65949 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 578 65950 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 579 65951 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 580 65952 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 581 65953 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 582 65954 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 583 65955 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 584 65956 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 585 65957 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 586 65958 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 587 65959 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 588 65960 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 589 65961 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 590 65962 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 591 65963 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 592 65964 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 593 65965 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 594 65966 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 595 65967 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 596 65968 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 597 65969 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 598 65970 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 599 65971 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(186)}, // 600 65972 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 601 65973 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 602 65974 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 603 65975 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 604 65976 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 605 65977 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 606 65978 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 607 65979 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 608 65980 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 609 65981 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: -6222, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 610 65982 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: -6221, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 611 65983 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: -6212, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 612 65984 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: -6210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 613 65985 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -6210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 614 65986 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -6211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 615 65987 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: -6204, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 616 65988 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: -6180, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 617 65989 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: 35267, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 618 65990 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -3008, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 619 65991 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 620 65992 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26762), Fbprops: Tuint16_t(96)}, // 621 65993 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26630), Fbprops: Tuint16_t(96)}, // 622 65994 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(188)}, // 623 65995 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 624 65996 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26696), Fbprops: Tuint16_t(96)}, // 625 65997 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26780), Fbprops: Tuint16_t(96)}, // 626 65998 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(160)}, // 627 65999 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18501), Fbprops: Tuint16_t(82)}, // 628 66000 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(82)}, // 629 66001 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18438), Fbprops: Tuint16_t(82)}, // 630 66002 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18594), Fbprops: Tuint16_t(82)}, // 631 66003 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(82)}, // 632 66004 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26750), Fbprops: Tuint16_t(96)}, // 633 66005 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18435), Fbprops: Tuint16_t(160)}, // 634 66006 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26690), Fbprops: Tuint16_t(96)}, // 635 66007 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18453), Fbprops: Tuint16_t(82)}, // 636 66008 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 637 66009 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 638 66010 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 639 66011 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 640 66012 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 641 66013 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 642 66014 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(192)}, // 643 66015 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 644 66016 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(194)}, // 645 66017 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 646 66018 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(102)}, // 647 66019 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26687), Fbprops: Tuint16_t(96)}, // 648 66020 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26648), Fbprops: Tuint16_t(96)}, // 649 66021 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 650 66022 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 651 66023 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 652 66024 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: -58, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 653 66025 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 654 66026 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 655 66027 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 656 66028 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 74, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 657 66029 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 86, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 658 66030 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 100, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 659 66031 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 128, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 660 66032 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 112, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 661 66033 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 126, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 662 66034 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 663 66035 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 664 66036 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 665 66037 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 9, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 666 66038 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -74, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 667 66039 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fother_case: -9, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 668 66040 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: -7173, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 669 66041 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -86, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 670 66042 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -100, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 671 66043 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -112, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 672 66044 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -128, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 673 66045 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -126, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 674 66046 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 675 66047 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(196)}, // 676 66048 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(13), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(198)}, // 677 66049 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(200)}, // 678 66050 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(200)}, // 679 66051 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 680 66052 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 681 66053 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 682 66054 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 683 66055 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 684 66056 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 685 66057 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 686 66058 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(208)}, // 687 66059 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(27), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(50)}, // 688 66060 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(28), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 689 66061 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(20480), Fbprops: Tuint16_t(134)}, // 690 66062 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(36864), Fbprops: Tuint16_t(134)}, // 691 66063 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(30720), Fbprops: Tuint16_t(134)}, // 692 66064 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(24576), Fbprops: Tuint16_t(134)}, // 693 66065 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(40960), Fbprops: Tuint16_t(134)}, // 694 66066 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8291), Fbprops: Tuint16_t(52)}, // 695 66067 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 696 66068 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 697 66069 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(210)}, // 698 66070 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(212)}, // 699 66071 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(138)}, // 700 66072 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(214)}, // 701 66073 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(64)}, // 702 66074 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 703 66075 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 704 66076 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 705 66077 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(218)}, // 706 66078 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(220)}, // 707 66079 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(22528), Fbprops: Tuint16_t(134)}, // 708 66080 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(38912), Fbprops: Tuint16_t(134)}, // 709 66081 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(16384), Fbprops: Tuint16_t(134)}, // 710 66082 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(32768), Fbprops: Tuint16_t(134)}, // 711 66083 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(222)}, // 712 66084 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 713 66085 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 714 66086 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 715 66087 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 716 66088 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 717 66089 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336)}, // 718 66090 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(228)}, // 719 66091 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 720 66092 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(230)}, // 721 66093 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26753), Fbprops: Tuint16_t(102)}, // 722 66094 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 723 66095 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 724 66096 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(232)}, // 725 66097 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(234)}, // 726 66098 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(236)}, // 727 66099 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: -7517, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 728 66100 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 729 66101 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: -8383, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 730 66102 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: -8262, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 731 66103 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(238)}, // 732 66104 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 733 66105 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(240)}, // 734 66106 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(242)}, // 735 66107 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(244)}, // 736 66108 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 737 66109 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: 16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 738 66110 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: -16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 739 66111 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 740 66112 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 741 66113 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 742 66114 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 743 66115 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 744 66116 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(250)}, // 745 66117 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 746 66118 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 747 66119 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(252)}, // 748 66120 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 749 66121 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 750 66122 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 751 66123 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(256)}, // 752 66124 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(258)}, // 753 66125 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fother_case: 26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(260)}, // 754 66126 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fother_case: 26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(262)}, // 755 66127 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fother_case: -26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(264)}, // 756 66128 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(266)}, // 757 66129 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 758 66130 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(270)}, // 759 66131 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 760 66132 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(256)}, // 761 66133 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(272)}, // 762 66134 {Fscript: Tuint8_t(88), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 763 66135 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 764 66136 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 765 66137 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 766 66138 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 767 66139 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 768 66140 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 769 66141 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 770 66142 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 771 66143 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 772 66144 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 773 66145 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 774 66146 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 775 66147 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 776 66148 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 777 66149 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 778 66150 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 779 66151 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 780 66152 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 781 66153 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -7264, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 782 66154 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 783 66155 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 784 66156 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 785 66157 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 786 66158 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 787 66159 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 788 66160 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 789 66161 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(274)}, // 790 66162 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(276)}, // 791 66163 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28726), Fbprops: Tuint16_t(54)}, // 792 66164 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(278)}, // 793 66165 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(280)}, // 794 66166 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(282)}, // 795 66167 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(276)}, // 796 66168 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(212)}, // 797 66169 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 798 66170 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 799 66171 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(284)}, // 800 66172 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 801 66173 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 802 66174 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 803 66175 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 804 66176 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 805 66177 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 806 66178 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(202)}, // 807 66179 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 808 66180 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 809 66181 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26669), Fbprops: Tuint16_t(96)}, // 810 66182 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 811 66183 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(288)}, // 812 66184 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(136)}, // 813 66185 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(68)}, // 814 66186 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 815 66187 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18564), Fbprops: Tuint16_t(82)}, // 816 66188 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28804), Fbprops: Tuint16_t(236)}, // 817 66189 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28687), Fbprops: Tuint16_t(68)}, // 818 66190 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 819 66191 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26717), Fbprops: Tuint16_t(96)}, // 820 66192 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(290)}, // 821 66193 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 822 66194 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(126)}, // 823 66195 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 824 66196 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(68)}, // 825 66197 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(94)}, // 826 66198 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 827 66199 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 828 66200 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 829 66201 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 830 66202 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 831 66203 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 832 66204 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 833 66205 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 834 66206 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 835 66207 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(236)}, // 836 66208 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 837 66209 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(292)}, // 838 66210 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 839 66211 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 840 66212 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 841 66213 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 842 66214 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 843 66215 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 844 66216 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 845 66217 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 846 66218 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 847 66219 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 848 66220 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 849 66221 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 850 66222 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 851 66223 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: -35267, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 852 66224 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 853 66225 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 854 66226 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 855 66227 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 856 66228 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 857 66229 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 858 66230 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 859 66231 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 860 66232 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 861 66233 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 862 66234 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 863 66235 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28762), Fbprops: Tuint16_t(56)}, // 864 66236 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 865 66237 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(56)}, // 866 66238 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 867 66239 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 868 66240 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 869 66241 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 870 66242 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 871 66243 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 872 66244 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 873 66245 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 874 66246 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 875 66247 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 876 66248 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 877 66249 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 878 66250 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 879 66251 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 880 66252 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 881 66253 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 882 66254 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 883 66255 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 884 66256 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 885 66257 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18612), Fbprops: Tuint16_t(68)}, // 886 66258 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18609), Fbprops: Tuint16_t(68)}, // 887 66259 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18600), Fbprops: Tuint16_t(68)}, // 888 66260 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 889 66261 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 890 66262 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 891 66263 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 892 66264 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 893 66265 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 894 66266 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 895 66267 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 896 66268 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 897 66269 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 898 66270 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 899 66271 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 900 66272 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18507), Fbprops: Tuint16_t(82)}, // 901 66273 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 902 66274 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 903 66275 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 904 66276 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 905 66277 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18567), Fbprops: Tuint16_t(188)}, // 906 66278 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 907 66279 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 908 66280 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 909 66281 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 910 66282 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 911 66283 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 912 66284 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 913 66285 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 914 66286 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 915 66287 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 916 66288 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 917 66289 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 918 66290 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 919 66291 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 920 66292 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18480), Fbprops: Tuint16_t(136)}, // 921 66293 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 922 66294 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 923 66295 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 924 66296 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 925 66297 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 926 66298 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 927 66299 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 928 66300 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 929 66301 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 930 66302 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 931 66303 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 932 66304 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 933 66305 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(294)}, // 934 66306 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 935 66307 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 936 66308 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 937 66309 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 938 66310 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 939 66311 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 940 66312 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 941 66313 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 942 66314 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 943 66315 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 944 66316 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 945 66317 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -38864, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 946 66318 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 947 66319 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 948 66320 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(9), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 949 66321 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(10), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 950 66322 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(4), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 951 66323 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(3), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 952 66324 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 953 66325 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 954 66326 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(296)}, // 955 66327 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 956 66328 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 957 66329 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(298)}, // 958 66330 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(39), Fbprops: Tuint16_t(82)}, // 959 66331 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28711), Fbprops: Tuint16_t(68)}, // 960 66332 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 961 66333 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(300)}, // 962 66334 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 963 66335 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(122)}, // 964 66336 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 965 66337 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 966 66338 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 967 66339 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 968 66340 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 969 66341 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(106)}, // 970 66342 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(304)}, // 971 66343 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(306)}, // 972 66344 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 973 66345 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 974 66346 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 975 66347 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 976 66348 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 977 66349 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 978 66350 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 979 66351 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 980 66352 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(308)}, // 981 66353 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(126)}, // 982 66354 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(68)}, // 983 66355 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(310)}, // 984 66356 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(312)}, // 985 66357 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(314)}, // 986 66358 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(316)}, // 987 66359 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(124)}, // 988 66360 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 989 66361 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 990 66362 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(106)}, // 991 66363 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(320)}, // 992 66364 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(322)}, // 993 66365 {Fscript: Tuint8_t(31), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 994 66366 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18552), Fbprops: Tuint16_t(68)}, // 995 66367 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28792), Fbprops: Tuint16_t(68)}, // 996 66368 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 997 66369 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18555), Fbprops: Tuint16_t(68)}, // 998 66370 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 999 66371 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(82)}, // 1000 66372 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1001 66373 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1002 66374 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1003 66375 {Fscript: Tuint8_t(102), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1004 66376 {Fscript: Tuint8_t(103), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1005 66377 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26651), Fbprops: Tuint16_t(96)}, // 1006 66378 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10267), Fbprops: Tuint16_t(68)}, // 1007 66379 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1008 66380 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1009 66381 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1010 66382 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1011 66383 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1012 66384 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1013 66385 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1014 66386 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1015 66387 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1016 66388 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1017 66389 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1018 66390 {Fscript: Tuint8_t(83), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1019 66391 {Fscript: Tuint8_t(83), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1020 66392 {Fscript: Tuint8_t(86), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1021 66393 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1022 66394 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1023 66395 {Fscript: Tuint8_t(145), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1024 66396 {Fscript: Tuint8_t(145), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1025 66397 {Fscript: Tuint8_t(127), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1026 66398 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1027 66399 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1028 66400 {Fscript: Tuint8_t(161), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 39, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1029 66401 {Fscript: Tuint8_t(161), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -39, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1030 66402 {Fscript: Tuint8_t(49), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1031 66403 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 1032 66404 {Fscript: Tuint8_t(32), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1033 66405 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1034 66406 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1035 66407 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1036 66408 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1037 66409 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1038 66410 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1039 66411 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1040 66412 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1041 66413 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1042 66414 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1043 66415 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1044 66416 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1045 66417 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1046 66418 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1047 66419 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1048 66420 {Fscript: Tuint8_t(122), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1049 66421 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1050 66422 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1051 66423 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1052 66424 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1053 66425 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1054 66426 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1055 66427 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1056 66428 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1057 66429 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1058 66430 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1059 66431 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1060 66432 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1061 66433 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1062 66434 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1063 66435 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1064 66436 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1065 66437 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1066 66438 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1067 66439 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1068 66440 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34918), Fbprops: Tuint16_t(106)}, // 1069 66441 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1070 66442 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1071 66443 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1072 66444 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1073 66445 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1074 66446 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1075 66447 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1076 66448 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1077 66449 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1078 66450 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1079 66451 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1080 66452 {Fscript: Tuint8_t(118), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1081 66453 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 64, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(74)}, // 1082 66454 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(76)}, // 1083 66455 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1084 66456 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1085 66457 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(294)}, // 1086 66458 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1087 66459 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(138)}, // 1088 66460 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 1089 66461 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1090 66462 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1091 66463 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 1092 66464 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1093 66465 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1094 66466 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1095 66467 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1096 66468 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1097 66469 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 1098 66470 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1099 66471 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1100 66472 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1101 66473 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1102 66474 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1103 66475 {Fscript: Tuint8_t(153), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1104 66476 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1105 66477 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1106 66478 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1107 66479 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1108 66480 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1109 66481 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1110 66482 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1111 66483 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1112 66484 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1113 66485 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1114 66486 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1115 66487 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1116 66488 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1117 66489 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1118 66490 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1119 66491 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1120 66492 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(132)}, // 1121 66493 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1122 66494 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1123 66495 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1124 66496 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1125 66497 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1126 66498 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1127 66499 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1128 66500 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1129 66501 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1130 66502 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1131 66503 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1132 66504 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1133 66505 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1134 66506 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1135 66507 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1136 66508 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1137 66509 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1138 66510 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1139 66511 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1140 66512 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1141 66513 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1142 66514 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1143 66515 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1144 66516 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1145 66517 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1146 66518 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1147 66519 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1148 66520 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1149 66521 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1150 66522 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1151 66523 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1152 66524 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1153 66525 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1154 66526 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1155 66527 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1156 66528 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1157 66529 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1158 66530 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1159 66531 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1160 66532 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1161 66533 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1162 66534 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(130)}, // 1163 66535 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1164 66536 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(144)}, // 1165 66537 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1166 66538 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(102)}, // 1167 66539 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(96)}, // 1168 66540 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1169 66541 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1170 66542 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(324)}, // 1171 66543 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1172 66544 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1173 66545 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1174 66546 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1175 66547 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1176 66548 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1177 66549 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1178 66550 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1179 66551 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1180 66552 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1181 66553 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1182 66554 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1183 66555 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1184 66556 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1185 66557 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1186 66558 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1187 66559 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1188 66560 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1189 66561 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1190 66562 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1191 66563 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1192 66564 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1193 66565 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1194 66566 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1195 66567 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1196 66568 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1197 66569 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1198 66570 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1199 66571 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(176)}, // 1200 66572 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1201 66573 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1202 66574 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1203 66575 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1204 66576 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1205 66577 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1206 66578 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1207 66579 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1208 66580 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1209 66581 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1210 66582 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1211 66583 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1212 66584 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1213 66585 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1214 66586 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1215 66587 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1216 66588 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1217 66589 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1218 66590 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1219 66591 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1220 66592 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1221 66593 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1222 66594 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1223 66595 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1224 66596 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1225 66597 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1226 66598 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1227 66599 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1228 66600 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1229 66601 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1230 66602 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1231 66603 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1232 66604 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1233 66605 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1234 66606 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1235 66607 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1236 66608 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1237 66609 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1238 66610 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1239 66611 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1240 66612 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1241 66613 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1242 66614 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1243 66615 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1244 66616 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1245 66617 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1246 66618 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1247 66619 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1248 66620 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1249 66621 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1250 66622 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1251 66623 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1252 66624 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 1253 66625 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1254 66626 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1255 66627 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1256 66628 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1257 66629 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1258 66630 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1259 66631 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1260 66632 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1261 66633 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1262 66634 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1263 66635 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(326)}, // 1264 66636 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1265 66637 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1266 66638 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1267 66639 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1268 66640 {Fscript: Tuint8_t(134), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1269 66641 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1270 66642 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1271 66643 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1272 66644 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(146)}, // 1273 66645 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1274 66646 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1275 66647 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1276 66648 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1277 66649 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1278 66650 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1279 66651 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1280 66652 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1281 66653 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1282 66654 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1283 66655 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1284 66656 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1285 66657 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1286 66658 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1287 66659 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1288 66660 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1289 66661 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1290 66662 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1291 66663 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1292 66664 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1293 66665 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1294 66666 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1295 66667 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1296 66668 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1297 66669 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1298 66670 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1299 66671 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1300 66672 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1301 66673 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1302 66674 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1303 66675 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1304 66676 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1305 66677 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1306 66678 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(322)}, // 1307 66679 {Fscript: Tuint8_t(138), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1308 66680 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1309 66681 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1310 66682 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1311 66683 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1312 66684 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1313 66685 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1314 66686 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1315 66687 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1316 66688 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1317 66689 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1318 66690 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1319 66691 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1320 66692 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1321 66693 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1322 66694 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1323 66695 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1324 66696 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1325 66697 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1326 66698 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1327 66699 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1328 66700 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1329 66701 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1330 66702 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1331 66703 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1332 66704 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1333 66705 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1334 66706 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1335 66707 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1336 66708 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1337 66709 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1338 66710 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1339 66711 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1340 66712 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(328)}, // 1341 66713 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 1342 66714 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1343 66715 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1344 66716 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1345 66717 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1346 66718 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1347 66719 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1348 66720 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1349 66721 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1350 66722 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1351 66723 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6153), Fbprops: Tuint16_t(66)}, // 1352 66724 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(330)}, // 1353 66725 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1354 66726 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 1355 66727 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 1356 66728 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1357 66729 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(118)}, // 1358 66730 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(214)}, // 1359 66731 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1360 66732 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1361 66733 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1362 66734 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1363 66735 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1364 66736 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1365 66737 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1366 66738 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1367 66739 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1368 66740 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1369 66741 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1370 66742 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1371 66743 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1372 66744 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1373 66745 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1374 66746 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1375 66747 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1376 66748 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 1377 66749 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1378 66750 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1379 66751 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1380 66752 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 34, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(74)}, // 1381 66753 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -34, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(76)}, // 1382 66754 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 1383 66755 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1384 66756 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1385 66757 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 1386 66758 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 1387 66759 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1388 66760 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1389 66761 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1390 66762 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1391 66763 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(240)}, // 1392 66764 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(332)}, // 1393 66765 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(334)}, // 1394 66766 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(336)}, // 1395 66767 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(338)}, // 1396 66768 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(340)}, // 1397 66769 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(334)}, // 1398 66770 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(11), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(342)}, // 1399 66771 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1400 66772 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(236)}, // 1401 66773 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(334)}, // 1402 66774 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(344)}, // 1403 66775 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(346)}, // 1404 66776 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(348)}, // 1405 66777 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(350)}, // 1406 66778 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 1407 66779 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(352)}, // 1408 66780 } /* pcre2_ucd.c:427:18 */ 66781 66782 var X_pcre2_ucd_stage1_8 = [8704]Tuint16_t{ // 17408 bytes 66783 Tuint16_t(0), Tuint16_t(1), Tuint16_t(2), Tuint16_t(3), Tuint16_t(4), Tuint16_t(5), Tuint16_t(6), Tuint16_t(7), Tuint16_t(8), Tuint16_t(9), Tuint16_t(10), Tuint16_t(11), Tuint16_t(12), Tuint16_t(13), Tuint16_t(14), Tuint16_t(15), // U+0000 66784 Tuint16_t(16), Tuint16_t(17), Tuint16_t(18), Tuint16_t(19), Tuint16_t(20), Tuint16_t(21), Tuint16_t(22), Tuint16_t(23), Tuint16_t(24), Tuint16_t(25), Tuint16_t(26), Tuint16_t(27), Tuint16_t(28), Tuint16_t(29), Tuint16_t(30), Tuint16_t(31), // U+0800 66785 Tuint16_t(32), Tuint16_t(33), Tuint16_t(34), Tuint16_t(35), Tuint16_t(36), Tuint16_t(37), Tuint16_t(38), Tuint16_t(39), Tuint16_t(40), Tuint16_t(41), Tuint16_t(41), Tuint16_t(41), Tuint16_t(42), Tuint16_t(43), Tuint16_t(44), Tuint16_t(45), // U+1000 66786 Tuint16_t(46), Tuint16_t(47), Tuint16_t(48), Tuint16_t(49), Tuint16_t(50), Tuint16_t(51), Tuint16_t(52), Tuint16_t(53), Tuint16_t(54), Tuint16_t(55), Tuint16_t(56), Tuint16_t(57), Tuint16_t(58), Tuint16_t(59), Tuint16_t(60), Tuint16_t(61), // U+1800 66787 Tuint16_t(62), Tuint16_t(63), Tuint16_t(64), Tuint16_t(65), Tuint16_t(66), Tuint16_t(67), Tuint16_t(68), Tuint16_t(69), Tuint16_t(70), Tuint16_t(71), Tuint16_t(72), Tuint16_t(73), Tuint16_t(74), Tuint16_t(75), Tuint16_t(76), Tuint16_t(77), // U+2000 66788 Tuint16_t(78), Tuint16_t(78), Tuint16_t(79), Tuint16_t(80), Tuint16_t(81), Tuint16_t(82), Tuint16_t(83), Tuint16_t(84), Tuint16_t(85), Tuint16_t(86), Tuint16_t(87), Tuint16_t(88), Tuint16_t(89), Tuint16_t(90), Tuint16_t(91), Tuint16_t(92), // U+2800 66789 Tuint16_t(93), Tuint16_t(94), Tuint16_t(95), Tuint16_t(96), Tuint16_t(97), Tuint16_t(98), Tuint16_t(99), Tuint16_t(100), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+3000 66790 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+3800 66791 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+4000 66792 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(102), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+4800 66793 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+5000 66794 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+5800 66795 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+6000 66796 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+6800 66797 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+7000 66798 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+7800 66799 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+8000 66800 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+8800 66801 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+9000 66802 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+9800 66803 Tuint16_t(103), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(105), Tuint16_t(106), Tuint16_t(106), Tuint16_t(107), Tuint16_t(108), Tuint16_t(109), Tuint16_t(110), // U+A000 66804 Tuint16_t(111), Tuint16_t(112), Tuint16_t(113), Tuint16_t(114), Tuint16_t(115), Tuint16_t(116), Tuint16_t(117), Tuint16_t(118), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), // U+A800 66805 Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), // U+B000 66806 Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), // U+B800 66807 Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), // U+C000 66808 Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), // U+C800 66809 Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(126), // U+D000 66810 Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), // U+D800 66811 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+E000 66812 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+E800 66813 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F000 66814 Tuint16_t(128), Tuint16_t(128), Tuint16_t(129), Tuint16_t(129), Tuint16_t(130), Tuint16_t(131), Tuint16_t(132), Tuint16_t(133), Tuint16_t(134), Tuint16_t(135), Tuint16_t(136), Tuint16_t(137), Tuint16_t(138), Tuint16_t(139), Tuint16_t(140), Tuint16_t(141), // U+F800 66815 Tuint16_t(142), Tuint16_t(143), Tuint16_t(144), Tuint16_t(145), Tuint16_t(146), Tuint16_t(147), Tuint16_t(148), Tuint16_t(149), Tuint16_t(150), Tuint16_t(151), Tuint16_t(152), Tuint16_t(153), Tuint16_t(154), Tuint16_t(154), Tuint16_t(155), Tuint16_t(156), // U+10000 66816 Tuint16_t(157), Tuint16_t(158), Tuint16_t(159), Tuint16_t(160), Tuint16_t(161), Tuint16_t(162), Tuint16_t(163), Tuint16_t(164), Tuint16_t(165), Tuint16_t(166), Tuint16_t(167), Tuint16_t(168), Tuint16_t(169), Tuint16_t(170), Tuint16_t(171), Tuint16_t(172), // U+10800 66817 Tuint16_t(173), Tuint16_t(174), Tuint16_t(175), Tuint16_t(176), Tuint16_t(177), Tuint16_t(178), Tuint16_t(179), Tuint16_t(146), Tuint16_t(180), Tuint16_t(181), Tuint16_t(146), Tuint16_t(182), Tuint16_t(183), Tuint16_t(184), Tuint16_t(185), Tuint16_t(146), // U+11000 66818 Tuint16_t(186), Tuint16_t(187), Tuint16_t(188), Tuint16_t(189), Tuint16_t(190), Tuint16_t(191), Tuint16_t(146), Tuint16_t(146), Tuint16_t(192), Tuint16_t(193), Tuint16_t(194), Tuint16_t(195), Tuint16_t(146), Tuint16_t(196), Tuint16_t(146), Tuint16_t(197), // U+11800 66819 Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(199), Tuint16_t(200), Tuint16_t(198), Tuint16_t(201), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+12000 66820 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(202), // U+12800 66821 Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(204), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+13000 66822 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+13800 66823 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(206), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+14000 66824 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+14800 66825 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+15000 66826 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+15800 66827 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+16000 66828 Tuint16_t(207), Tuint16_t(207), Tuint16_t(207), Tuint16_t(207), Tuint16_t(208), Tuint16_t(209), Tuint16_t(210), Tuint16_t(211), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(212), Tuint16_t(213), Tuint16_t(214), Tuint16_t(215), // U+16800 66829 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), // U+17000 66830 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), // U+17800 66831 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(217), // U+18000 66832 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(218), Tuint16_t(218), Tuint16_t(218), Tuint16_t(219), Tuint16_t(220), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+18800 66833 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+19000 66834 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+19800 66835 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1A000 66836 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(221), // U+1A800 66837 Tuint16_t(222), Tuint16_t(223), Tuint16_t(224), Tuint16_t(225), Tuint16_t(225), Tuint16_t(226), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1B000 66838 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(227), Tuint16_t(228), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1B800 66839 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1C000 66840 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(229), Tuint16_t(230), // U+1C800 66841 Tuint16_t(231), Tuint16_t(232), Tuint16_t(233), Tuint16_t(234), Tuint16_t(235), Tuint16_t(236), Tuint16_t(237), Tuint16_t(146), Tuint16_t(238), Tuint16_t(239), Tuint16_t(240), Tuint16_t(241), Tuint16_t(242), Tuint16_t(243), Tuint16_t(244), Tuint16_t(245), // U+1D000 66842 Tuint16_t(246), Tuint16_t(246), Tuint16_t(246), Tuint16_t(246), Tuint16_t(247), Tuint16_t(248), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(249), Tuint16_t(146), // U+1D800 66843 Tuint16_t(250), Tuint16_t(146), Tuint16_t(251), Tuint16_t(146), Tuint16_t(146), Tuint16_t(252), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(253), // U+1E000 66844 Tuint16_t(254), Tuint16_t(255), Tuint16_t(256), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(257), Tuint16_t(258), Tuint16_t(259), Tuint16_t(168), Tuint16_t(260), Tuint16_t(261), Tuint16_t(168), Tuint16_t(168), // U+1E800 66845 Tuint16_t(262), Tuint16_t(263), Tuint16_t(264), Tuint16_t(265), Tuint16_t(266), Tuint16_t(267), Tuint16_t(268), Tuint16_t(269), Tuint16_t(270), Tuint16_t(271), Tuint16_t(272), Tuint16_t(273), Tuint16_t(274), Tuint16_t(275), Tuint16_t(276), Tuint16_t(277), // U+1F000 66846 Tuint16_t(278), Tuint16_t(279), Tuint16_t(280), Tuint16_t(281), Tuint16_t(282), Tuint16_t(283), Tuint16_t(284), Tuint16_t(285), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(286), // U+1F800 66847 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+20000 66848 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+20800 66849 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+21000 66850 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+21800 66851 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+22000 66852 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+22800 66853 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+23000 66854 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+23800 66855 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+24000 66856 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+24800 66857 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+25000 66858 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+25800 66859 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+26000 66860 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+26800 66861 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+27000 66862 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+27800 66863 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+28000 66864 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+28800 66865 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+29000 66866 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+29800 66867 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(287), Tuint16_t(101), Tuint16_t(101), // U+2A000 66868 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2A800 66869 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(288), Tuint16_t(101), // U+2B000 66870 Tuint16_t(289), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2B800 66871 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2C000 66872 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(290), Tuint16_t(101), Tuint16_t(101), // U+2C800 66873 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2D000 66874 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2D800 66875 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2E000 66876 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(291), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+2E800 66877 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+2F000 66878 Tuint16_t(129), Tuint16_t(129), Tuint16_t(129), Tuint16_t(129), Tuint16_t(292), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+2F800 66879 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+30000 66880 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+30800 66881 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(294), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+31000 66882 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+31800 66883 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+32000 66884 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+32800 66885 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+33000 66886 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+33800 66887 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+34000 66888 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+34800 66889 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+35000 66890 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+35800 66891 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+36000 66892 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+36800 66893 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+37000 66894 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+37800 66895 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+38000 66896 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+38800 66897 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+39000 66898 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+39800 66899 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3A000 66900 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3A800 66901 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3B000 66902 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3B800 66903 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3C000 66904 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3C800 66905 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3D000 66906 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3D800 66907 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3E000 66908 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3E800 66909 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3F000 66910 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+3F800 66911 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+40000 66912 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+40800 66913 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+41000 66914 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+41800 66915 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+42000 66916 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+42800 66917 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+43000 66918 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+43800 66919 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+44000 66920 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+44800 66921 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+45000 66922 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+45800 66923 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+46000 66924 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+46800 66925 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+47000 66926 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+47800 66927 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+48000 66928 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+48800 66929 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+49000 66930 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+49800 66931 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4A000 66932 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4A800 66933 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4B000 66934 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4B800 66935 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4C000 66936 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4C800 66937 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4D000 66938 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4D800 66939 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4E000 66940 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4E800 66941 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4F000 66942 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+4F800 66943 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+50000 66944 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+50800 66945 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+51000 66946 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+51800 66947 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+52000 66948 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+52800 66949 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+53000 66950 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+53800 66951 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+54000 66952 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+54800 66953 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+55000 66954 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+55800 66955 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+56000 66956 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+56800 66957 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+57000 66958 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+57800 66959 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+58000 66960 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+58800 66961 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+59000 66962 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+59800 66963 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5A000 66964 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5A800 66965 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5B000 66966 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5B800 66967 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5C000 66968 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5C800 66969 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5D000 66970 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5D800 66971 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5E000 66972 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5E800 66973 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5F000 66974 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+5F800 66975 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+60000 66976 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+60800 66977 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+61000 66978 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+61800 66979 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+62000 66980 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+62800 66981 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+63000 66982 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+63800 66983 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+64000 66984 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+64800 66985 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+65000 66986 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+65800 66987 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+66000 66988 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+66800 66989 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+67000 66990 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+67800 66991 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+68000 66992 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+68800 66993 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+69000 66994 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+69800 66995 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6A000 66996 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6A800 66997 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6B000 66998 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6B800 66999 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6C000 67000 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6C800 67001 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6D000 67002 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6D800 67003 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6E000 67004 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6E800 67005 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6F000 67006 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+6F800 67007 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+70000 67008 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+70800 67009 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+71000 67010 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+71800 67011 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+72000 67012 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+72800 67013 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+73000 67014 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+73800 67015 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+74000 67016 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+74800 67017 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+75000 67018 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+75800 67019 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+76000 67020 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+76800 67021 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+77000 67022 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+77800 67023 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+78000 67024 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+78800 67025 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+79000 67026 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+79800 67027 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7A000 67028 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7A800 67029 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7B000 67030 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7B800 67031 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7C000 67032 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7C800 67033 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7D000 67034 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7D800 67035 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7E000 67036 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7E800 67037 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7F000 67038 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+7F800 67039 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+80000 67040 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+80800 67041 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+81000 67042 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+81800 67043 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+82000 67044 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+82800 67045 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+83000 67046 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+83800 67047 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+84000 67048 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+84800 67049 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+85000 67050 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+85800 67051 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+86000 67052 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+86800 67053 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+87000 67054 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+87800 67055 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+88000 67056 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+88800 67057 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+89000 67058 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+89800 67059 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8A000 67060 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8A800 67061 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8B000 67062 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8B800 67063 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8C000 67064 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8C800 67065 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8D000 67066 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8D800 67067 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8E000 67068 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8E800 67069 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8F000 67070 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+8F800 67071 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+90000 67072 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+90800 67073 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+91000 67074 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+91800 67075 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+92000 67076 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+92800 67077 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+93000 67078 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+93800 67079 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+94000 67080 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+94800 67081 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+95000 67082 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+95800 67083 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+96000 67084 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+96800 67085 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+97000 67086 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+97800 67087 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+98000 67088 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+98800 67089 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+99000 67090 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+99800 67091 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9A000 67092 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9A800 67093 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9B000 67094 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9B800 67095 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9C000 67096 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9C800 67097 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9D000 67098 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9D800 67099 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9E000 67100 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9E800 67101 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9F000 67102 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+9F800 67103 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A0000 67104 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A0800 67105 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A1000 67106 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A1800 67107 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A2000 67108 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A2800 67109 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A3000 67110 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A3800 67111 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A4000 67112 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A4800 67113 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A5000 67114 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A5800 67115 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A6000 67116 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A6800 67117 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A7000 67118 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A7800 67119 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A8000 67120 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A8800 67121 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A9000 67122 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A9800 67123 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AA000 67124 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AA800 67125 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AB000 67126 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AB800 67127 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AC000 67128 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AC800 67129 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AD000 67130 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AD800 67131 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AE000 67132 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AE800 67133 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AF000 67134 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+AF800 67135 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B0000 67136 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B0800 67137 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B1000 67138 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B1800 67139 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B2000 67140 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B2800 67141 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B3000 67142 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B3800 67143 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B4000 67144 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B4800 67145 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B5000 67146 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B5800 67147 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B6000 67148 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B6800 67149 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B7000 67150 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B7800 67151 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B8000 67152 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B8800 67153 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B9000 67154 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B9800 67155 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BA000 67156 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BA800 67157 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BB000 67158 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BB800 67159 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BC000 67160 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BC800 67161 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BD000 67162 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BD800 67163 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BE000 67164 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BE800 67165 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BF000 67166 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+BF800 67167 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C0000 67168 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C0800 67169 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C1000 67170 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C1800 67171 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C2000 67172 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C2800 67173 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C3000 67174 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C3800 67175 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C4000 67176 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C4800 67177 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C5000 67178 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C5800 67179 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C6000 67180 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C6800 67181 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C7000 67182 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C7800 67183 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C8000 67184 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C8800 67185 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C9000 67186 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C9800 67187 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CA000 67188 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CA800 67189 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CB000 67190 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CB800 67191 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CC000 67192 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CC800 67193 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CD000 67194 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CD800 67195 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CE000 67196 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CE800 67197 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CF000 67198 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+CF800 67199 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D0000 67200 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D0800 67201 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D1000 67202 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D1800 67203 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D2000 67204 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D2800 67205 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D3000 67206 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D3800 67207 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D4000 67208 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D4800 67209 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D5000 67210 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D5800 67211 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D6000 67212 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D6800 67213 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D7000 67214 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D7800 67215 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D8000 67216 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D8800 67217 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D9000 67218 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D9800 67219 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DA000 67220 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DA800 67221 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DB000 67222 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DB800 67223 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DC000 67224 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DC800 67225 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DD000 67226 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DD800 67227 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DE000 67228 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DE800 67229 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DF000 67230 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+DF800 67231 Tuint16_t(295), Tuint16_t(296), Tuint16_t(297), Tuint16_t(298), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), // U+E0000 67232 Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), // U+E0800 67233 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E1000 67234 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E1800 67235 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E2000 67236 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E2800 67237 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E3000 67238 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E3800 67239 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E4000 67240 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E4800 67241 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E5000 67242 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E5800 67243 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E6000 67244 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E6800 67245 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E7000 67246 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E7800 67247 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E8000 67248 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E8800 67249 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E9000 67250 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E9800 67251 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EA000 67252 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EA800 67253 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EB000 67254 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EB800 67255 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EC000 67256 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EC800 67257 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+ED000 67258 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+ED800 67259 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EE000 67260 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EE800 67261 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EF000 67262 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+EF800 67263 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F0000 67264 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F0800 67265 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F1000 67266 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F1800 67267 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F2000 67268 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F2800 67269 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F3000 67270 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F3800 67271 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F4000 67272 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F4800 67273 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F5000 67274 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F5800 67275 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F6000 67276 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F6800 67277 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F7000 67278 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F7800 67279 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F8000 67280 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F8800 67281 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F9000 67282 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F9800 67283 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FA000 67284 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FA800 67285 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FB000 67286 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FB800 67287 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FC000 67288 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FC800 67289 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FD000 67290 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FD800 67291 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FE000 67292 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FE800 67293 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FF000 67294 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(299), // U+FF800 67295 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+100000 67296 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+100800 67297 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+101000 67298 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+101800 67299 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+102000 67300 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+102800 67301 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+103000 67302 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+103800 67303 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+104000 67304 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+104800 67305 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+105000 67306 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+105800 67307 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+106000 67308 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+106800 67309 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+107000 67310 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+107800 67311 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+108000 67312 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+108800 67313 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+109000 67314 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+109800 67315 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10A000 67316 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10A800 67317 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10B000 67318 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10B800 67319 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10C000 67320 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10C800 67321 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10D000 67322 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10D800 67323 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10E000 67324 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10E800 67325 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10F000 67326 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(299), // U+10F800 67327 } /* pcre2_ucd.c:1839:16 */ 67328 67329 var X_pcre2_ucd_stage2_8 = [38400]Tuint16_t{ // 76800 bytes, block = 128 67330 67331 // block 0 67332 Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(1), Tuint16_t(2), Tuint16_t(1), Tuint16_t(3), Tuint16_t(4), Tuint16_t(0), Tuint16_t(0), 67333 Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(5), Tuint16_t(5), Tuint16_t(5), Tuint16_t(6), 67334 Tuint16_t(7), Tuint16_t(8), Tuint16_t(9), Tuint16_t(10), Tuint16_t(11), Tuint16_t(12), Tuint16_t(13), Tuint16_t(14), Tuint16_t(15), Tuint16_t(16), Tuint16_t(17), Tuint16_t(18), Tuint16_t(19), Tuint16_t(20), Tuint16_t(21), Tuint16_t(22), 67335 Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(24), Tuint16_t(25), Tuint16_t(26), Tuint16_t(27), Tuint16_t(26), Tuint16_t(8), 67336 Tuint16_t(13), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(30), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), 67337 Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(31), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(15), Tuint16_t(13), Tuint16_t(16), Tuint16_t(32), Tuint16_t(33), 67338 Tuint16_t(34), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(36), Tuint16_t(36), Tuint16_t(37), Tuint16_t(37), Tuint16_t(38), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), 67339 Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(39), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(15), Tuint16_t(27), Tuint16_t(16), Tuint16_t(27), Tuint16_t(0), 67340 67341 // block 1 67342 Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(41), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), 67343 Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), 67344 Tuint16_t(42), Tuint16_t(43), Tuint16_t(44), Tuint16_t(44), Tuint16_t(44), Tuint16_t(44), Tuint16_t(45), Tuint16_t(43), Tuint16_t(46), Tuint16_t(47), Tuint16_t(48), Tuint16_t(49), Tuint16_t(50), Tuint16_t(51), Tuint16_t(47), Tuint16_t(46), 67345 Tuint16_t(52), Tuint16_t(53), Tuint16_t(54), Tuint16_t(54), Tuint16_t(46), Tuint16_t(55), Tuint16_t(43), Tuint16_t(56), Tuint16_t(46), Tuint16_t(54), Tuint16_t(48), Tuint16_t(57), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(43), 67346 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(60), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), 67347 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(50), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(61), 67348 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(63), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), 67349 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(50), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(64), 67350 67351 // block 2 67352 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67353 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67354 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), 67355 Tuint16_t(68), Tuint16_t(69), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), 67356 Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(71), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67357 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67358 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67359 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(72), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(73), 67360 67361 // block 3 67362 Tuint16_t(74), Tuint16_t(75), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(76), Tuint16_t(65), Tuint16_t(66), Tuint16_t(77), Tuint16_t(77), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(78), Tuint16_t(79), 67363 Tuint16_t(80), Tuint16_t(65), Tuint16_t(66), Tuint16_t(77), Tuint16_t(81), Tuint16_t(82), Tuint16_t(83), Tuint16_t(84), Tuint16_t(65), Tuint16_t(66), Tuint16_t(85), Tuint16_t(70), Tuint16_t(83), Tuint16_t(86), Tuint16_t(87), Tuint16_t(88), 67364 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(65), 67365 Tuint16_t(66), Tuint16_t(90), Tuint16_t(90), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(91), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(92), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(93), 67366 Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(94), Tuint16_t(95), Tuint16_t(96), Tuint16_t(97), Tuint16_t(98), Tuint16_t(99), Tuint16_t(100), Tuint16_t(101), Tuint16_t(102), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), 67367 Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(103), Tuint16_t(65), Tuint16_t(66), 67368 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67369 Tuint16_t(69), Tuint16_t(104), Tuint16_t(105), Tuint16_t(106), Tuint16_t(65), Tuint16_t(66), Tuint16_t(107), Tuint16_t(108), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67370 67371 // block 4 67372 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67373 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67374 Tuint16_t(109), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67375 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(110), Tuint16_t(65), Tuint16_t(66), Tuint16_t(111), Tuint16_t(112), Tuint16_t(113), 67376 Tuint16_t(113), Tuint16_t(65), Tuint16_t(66), Tuint16_t(114), Tuint16_t(115), Tuint16_t(116), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67377 Tuint16_t(117), Tuint16_t(118), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(70), Tuint16_t(122), Tuint16_t(122), Tuint16_t(70), Tuint16_t(123), Tuint16_t(70), Tuint16_t(124), Tuint16_t(125), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67378 Tuint16_t(122), Tuint16_t(126), Tuint16_t(70), Tuint16_t(127), Tuint16_t(70), Tuint16_t(128), Tuint16_t(129), Tuint16_t(70), Tuint16_t(130), Tuint16_t(131), Tuint16_t(129), Tuint16_t(132), Tuint16_t(133), Tuint16_t(70), Tuint16_t(70), Tuint16_t(131), 67379 Tuint16_t(70), Tuint16_t(134), Tuint16_t(135), Tuint16_t(70), Tuint16_t(70), Tuint16_t(136), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(137), Tuint16_t(70), Tuint16_t(70), 67380 67381 // block 5 67382 Tuint16_t(138), Tuint16_t(70), Tuint16_t(139), Tuint16_t(138), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(140), Tuint16_t(138), Tuint16_t(141), Tuint16_t(142), Tuint16_t(142), Tuint16_t(143), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67383 Tuint16_t(70), Tuint16_t(70), Tuint16_t(144), Tuint16_t(70), Tuint16_t(92), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(145), Tuint16_t(146), Tuint16_t(70), 67384 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67385 Tuint16_t(147), Tuint16_t(147), Tuint16_t(148), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(149), Tuint16_t(149), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), 67386 Tuint16_t(151), Tuint16_t(151), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), 67387 Tuint16_t(152), Tuint16_t(152), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 67388 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(153), Tuint16_t(153), Tuint16_t(149), Tuint16_t(46), Tuint16_t(150), Tuint16_t(46), 67389 Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 67390 67391 // block 6 67392 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67393 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67394 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67395 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67396 Tuint16_t(154), Tuint16_t(154), Tuint16_t(155), Tuint16_t(154), Tuint16_t(154), Tuint16_t(156), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(157), 67397 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67398 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), 67399 Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(149), Tuint16_t(162), Tuint16_t(160), Tuint16_t(161), Tuint16_t(163), Tuint16_t(163), Tuint16_t(164), Tuint16_t(165), Tuint16_t(165), Tuint16_t(165), Tuint16_t(166), Tuint16_t(167), 67400 67401 // block 7 67402 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(162), Tuint16_t(46), Tuint16_t(168), Tuint16_t(169), Tuint16_t(170), Tuint16_t(170), Tuint16_t(170), Tuint16_t(163), Tuint16_t(171), Tuint16_t(163), Tuint16_t(172), Tuint16_t(172), 67403 Tuint16_t(173), Tuint16_t(174), Tuint16_t(175), Tuint16_t(174), Tuint16_t(174), Tuint16_t(176), Tuint16_t(174), Tuint16_t(174), Tuint16_t(177), Tuint16_t(178), Tuint16_t(179), Tuint16_t(174), Tuint16_t(180), Tuint16_t(174), Tuint16_t(174), Tuint16_t(174), 67404 Tuint16_t(181), Tuint16_t(182), Tuint16_t(163), Tuint16_t(183), Tuint16_t(174), Tuint16_t(174), Tuint16_t(184), Tuint16_t(174), Tuint16_t(174), Tuint16_t(185), Tuint16_t(174), Tuint16_t(174), Tuint16_t(186), Tuint16_t(187), Tuint16_t(187), Tuint16_t(187), 67405 Tuint16_t(173), Tuint16_t(188), Tuint16_t(189), Tuint16_t(188), Tuint16_t(188), Tuint16_t(190), Tuint16_t(188), Tuint16_t(188), Tuint16_t(191), Tuint16_t(192), Tuint16_t(193), Tuint16_t(188), Tuint16_t(194), Tuint16_t(188), Tuint16_t(188), Tuint16_t(188), 67406 Tuint16_t(195), Tuint16_t(196), Tuint16_t(197), Tuint16_t(198), Tuint16_t(188), Tuint16_t(188), Tuint16_t(199), Tuint16_t(188), Tuint16_t(188), Tuint16_t(200), Tuint16_t(188), Tuint16_t(188), Tuint16_t(201), Tuint16_t(202), Tuint16_t(202), Tuint16_t(203), 67407 Tuint16_t(204), Tuint16_t(205), Tuint16_t(206), Tuint16_t(207), Tuint16_t(207), Tuint16_t(208), Tuint16_t(209), Tuint16_t(210), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), 67408 Tuint16_t(160), Tuint16_t(161), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 67409 Tuint16_t(213), Tuint16_t(214), Tuint16_t(215), Tuint16_t(216), Tuint16_t(217), Tuint16_t(218), Tuint16_t(219), Tuint16_t(160), Tuint16_t(161), Tuint16_t(220), Tuint16_t(160), Tuint16_t(161), Tuint16_t(221), Tuint16_t(222), Tuint16_t(222), Tuint16_t(222), 67410 67411 // block 8 67412 Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), 67413 Tuint16_t(224), Tuint16_t(224), Tuint16_t(225), Tuint16_t(224), Tuint16_t(226), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(227), Tuint16_t(224), 67414 Tuint16_t(224), Tuint16_t(228), Tuint16_t(229), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(230), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), 67415 Tuint16_t(231), Tuint16_t(231), Tuint16_t(232), Tuint16_t(231), Tuint16_t(233), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(234), Tuint16_t(231), 67416 Tuint16_t(231), Tuint16_t(235), Tuint16_t(236), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(237), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), 67417 Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(239), Tuint16_t(238), Tuint16_t(239), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), 67418 Tuint16_t(240), Tuint16_t(241), Tuint16_t(242), Tuint16_t(243), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67419 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67420 67421 // block 9 67422 Tuint16_t(240), Tuint16_t(241), Tuint16_t(244), Tuint16_t(245), Tuint16_t(246), Tuint16_t(247), Tuint16_t(247), Tuint16_t(246), Tuint16_t(248), Tuint16_t(248), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67423 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67424 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67425 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67426 Tuint16_t(249), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(250), 67427 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67428 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67429 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67430 67431 // block 10 67432 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67433 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67434 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67435 Tuint16_t(163), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), 67436 Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), 67437 Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(163), Tuint16_t(163), Tuint16_t(252), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(254), 67438 Tuint16_t(255), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), 67439 Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), 67440 67441 // block 11 67442 Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(257), Tuint16_t(255), Tuint16_t(258), Tuint16_t(259), Tuint16_t(163), Tuint16_t(163), Tuint16_t(260), Tuint16_t(260), Tuint16_t(261), 67443 Tuint16_t(262), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), 67444 Tuint16_t(263), Tuint16_t(263), Tuint16_t(264), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), 67445 Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(266), Tuint16_t(265), 67446 Tuint16_t(267), Tuint16_t(265), Tuint16_t(265), Tuint16_t(268), Tuint16_t(265), Tuint16_t(269), Tuint16_t(267), Tuint16_t(269), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 67447 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 67448 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(270), 67449 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(267), Tuint16_t(271), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 67450 67451 // block 12 67452 Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(273), Tuint16_t(274), Tuint16_t(274), Tuint16_t(275), Tuint16_t(276), Tuint16_t(276), Tuint16_t(277), Tuint16_t(278), Tuint16_t(279), Tuint16_t(280), Tuint16_t(280), 67453 Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(282), Tuint16_t(283), Tuint16_t(284), Tuint16_t(284), Tuint16_t(285), 67454 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67455 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67456 Tuint16_t(287), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), 67457 Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(289), Tuint16_t(289), Tuint16_t(289), Tuint16_t(281), Tuint16_t(290), Tuint16_t(291), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), 67458 Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(276), Tuint16_t(293), Tuint16_t(293), Tuint16_t(279), Tuint16_t(286), Tuint16_t(286), 67459 Tuint16_t(289), Tuint16_t(286), Tuint16_t(286), Tuint16_t(294), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67460 67461 // block 13 67462 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67463 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67464 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67465 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67466 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67467 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(295), Tuint16_t(286), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(273), Tuint16_t(280), Tuint16_t(291), 67468 Tuint16_t(291), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(296), Tuint16_t(296), Tuint16_t(281), Tuint16_t(281), Tuint16_t(280), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(281), Tuint16_t(286), Tuint16_t(286), 67469 Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(298), Tuint16_t(298), Tuint16_t(286), 67470 67471 // block 14 67472 Tuint16_t(299), Tuint16_t(299), Tuint16_t(299), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(301), Tuint16_t(300), Tuint16_t(301), Tuint16_t(302), Tuint16_t(303), 67473 Tuint16_t(304), Tuint16_t(305), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67474 Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67475 Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), 67476 Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(302), Tuint16_t(302), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67477 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67478 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67479 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67480 67481 // block 15 67482 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), 67483 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), 67484 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), 67485 Tuint16_t(309), Tuint16_t(308), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 67486 Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), 67487 Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), 67488 Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), 67489 Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(313), Tuint16_t(313), Tuint16_t(314), Tuint16_t(315), Tuint16_t(316), Tuint16_t(317), Tuint16_t(318), Tuint16_t(262), Tuint16_t(262), Tuint16_t(319), Tuint16_t(320), Tuint16_t(320), 67490 67491 // block 16 67492 Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), 67493 Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(322), Tuint16_t(322), Tuint16_t(323), Tuint16_t(323), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), 67494 Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(325), Tuint16_t(262), Tuint16_t(262), 67495 Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(327), Tuint16_t(326), Tuint16_t(327), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(327), Tuint16_t(327), Tuint16_t(262), 67496 Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), 67497 Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(329), Tuint16_t(329), Tuint16_t(329), Tuint16_t(262), Tuint16_t(262), Tuint16_t(330), Tuint16_t(262), 67498 Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 67499 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67500 67501 // block 17 67502 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(331), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), 67503 Tuint16_t(272), Tuint16_t(272), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67504 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67505 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67506 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(296), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67507 Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(332), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), 67508 Tuint16_t(332), Tuint16_t(332), Tuint16_t(273), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67509 Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(281), 67510 67511 // block 18 67512 Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(334), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67513 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67514 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67515 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), Tuint16_t(334), Tuint16_t(336), Tuint16_t(335), Tuint16_t(334), Tuint16_t(334), 67516 Tuint16_t(334), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(334), Tuint16_t(334), Tuint16_t(334), Tuint16_t(334), Tuint16_t(337), Tuint16_t(334), Tuint16_t(334), 67517 Tuint16_t(335), Tuint16_t(338), Tuint16_t(339), Tuint16_t(154), Tuint16_t(154), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67518 Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), Tuint16_t(333), Tuint16_t(340), Tuint16_t(341), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), 67519 Tuint16_t(343), Tuint16_t(344), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67520 67521 // block 19 67522 Tuint16_t(345), Tuint16_t(346), Tuint16_t(347), Tuint16_t(347), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), 67523 Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), 67524 Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), 67525 Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(348), Tuint16_t(345), Tuint16_t(349), Tuint16_t(347), 67526 Tuint16_t(347), Tuint16_t(346), Tuint16_t(346), Tuint16_t(346), Tuint16_t(346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(347), Tuint16_t(347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(347), Tuint16_t(347), Tuint16_t(350), Tuint16_t(345), Tuint16_t(163), 67527 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(349), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), 67528 Tuint16_t(345), Tuint16_t(345), Tuint16_t(346), Tuint16_t(346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), 67529 Tuint16_t(345), Tuint16_t(345), Tuint16_t(352), Tuint16_t(352), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(354), Tuint16_t(352), Tuint16_t(345), Tuint16_t(355), Tuint16_t(356), Tuint16_t(163), 67530 67531 // block 20 67532 Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(358), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), 67533 Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), 67534 Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), 67535 Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(360), Tuint16_t(163), Tuint16_t(358), Tuint16_t(358), 67536 Tuint16_t(358), Tuint16_t(357), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(361), Tuint16_t(163), Tuint16_t(163), 67537 Tuint16_t(163), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(163), 67538 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), 67539 Tuint16_t(357), Tuint16_t(357), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(357), Tuint16_t(363), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67540 67541 // block 21 67542 Tuint16_t(163), Tuint16_t(364), Tuint16_t(364), Tuint16_t(365), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), 67543 Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), 67544 Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), 67545 Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(367), Tuint16_t(366), Tuint16_t(365), Tuint16_t(365), 67546 Tuint16_t(365), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(163), Tuint16_t(364), Tuint16_t(364), Tuint16_t(365), Tuint16_t(163), Tuint16_t(365), Tuint16_t(365), Tuint16_t(368), Tuint16_t(163), Tuint16_t(163), 67547 Tuint16_t(366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67548 Tuint16_t(366), Tuint16_t(366), Tuint16_t(364), Tuint16_t(364), Tuint16_t(163), Tuint16_t(163), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), 67549 Tuint16_t(370), Tuint16_t(371), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(366), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(367), Tuint16_t(367), Tuint16_t(367), 67550 67551 // block 22 67552 Tuint16_t(163), Tuint16_t(372), Tuint16_t(373), Tuint16_t(373), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), 67553 Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), 67554 Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), 67555 Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(375), Tuint16_t(374), Tuint16_t(376), Tuint16_t(372), 67556 Tuint16_t(373), Tuint16_t(372), Tuint16_t(372), Tuint16_t(372), Tuint16_t(372), Tuint16_t(163), Tuint16_t(163), Tuint16_t(373), Tuint16_t(373), Tuint16_t(163), Tuint16_t(163), Tuint16_t(373), Tuint16_t(373), Tuint16_t(377), Tuint16_t(163), Tuint16_t(163), 67557 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(378), Tuint16_t(372), Tuint16_t(376), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), 67558 Tuint16_t(374), Tuint16_t(374), Tuint16_t(372), Tuint16_t(372), Tuint16_t(163), Tuint16_t(163), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), 67559 Tuint16_t(380), Tuint16_t(374), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67560 67561 // block 23 67562 Tuint16_t(163), Tuint16_t(163), Tuint16_t(382), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67563 Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67564 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67565 Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(384), Tuint16_t(385), 67566 Tuint16_t(382), Tuint16_t(385), Tuint16_t(385), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(385), Tuint16_t(385), Tuint16_t(385), Tuint16_t(163), Tuint16_t(385), Tuint16_t(385), Tuint16_t(385), Tuint16_t(386), Tuint16_t(163), Tuint16_t(163), 67567 Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(384), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67568 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), 67569 Tuint16_t(388), Tuint16_t(388), Tuint16_t(388), Tuint16_t(389), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(391), Tuint16_t(390), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67570 67571 // block 24 67572 Tuint16_t(392), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(394), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), 67573 Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), 67574 Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), 67575 Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), Tuint16_t(396), Tuint16_t(395), Tuint16_t(392), Tuint16_t(392), 67576 Tuint16_t(392), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(392), Tuint16_t(397), Tuint16_t(163), Tuint16_t(163), 67577 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), 67578 Tuint16_t(395), Tuint16_t(395), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(163), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), 67579 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(399), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(401), 67580 67581 // block 25 67582 Tuint16_t(402), Tuint16_t(403), Tuint16_t(404), Tuint16_t(404), Tuint16_t(405), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), 67583 Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), 67584 Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), 67585 Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(163), Tuint16_t(406), Tuint16_t(402), Tuint16_t(404), Tuint16_t(407), 67586 Tuint16_t(404), Tuint16_t(404), Tuint16_t(408), Tuint16_t(404), Tuint16_t(404), Tuint16_t(163), Tuint16_t(407), Tuint16_t(404), Tuint16_t(404), Tuint16_t(163), Tuint16_t(404), Tuint16_t(404), Tuint16_t(403), Tuint16_t(409), Tuint16_t(163), Tuint16_t(163), 67587 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(408), Tuint16_t(408), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), 67588 Tuint16_t(402), Tuint16_t(402), Tuint16_t(403), Tuint16_t(403), Tuint16_t(163), Tuint16_t(163), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), 67589 Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67590 67591 // block 26 67592 Tuint16_t(411), Tuint16_t(411), Tuint16_t(412), Tuint16_t(412), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), 67593 Tuint16_t(413), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67594 Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67595 Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(414), Tuint16_t(414), Tuint16_t(413), Tuint16_t(415), Tuint16_t(412), 67596 Tuint16_t(412), Tuint16_t(411), Tuint16_t(411), Tuint16_t(411), Tuint16_t(411), Tuint16_t(163), Tuint16_t(412), Tuint16_t(412), Tuint16_t(412), Tuint16_t(163), Tuint16_t(412), Tuint16_t(412), Tuint16_t(412), Tuint16_t(414), Tuint16_t(416), Tuint16_t(417), 67597 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(415), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(413), 67598 Tuint16_t(413), Tuint16_t(413), Tuint16_t(411), Tuint16_t(411), Tuint16_t(163), Tuint16_t(163), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), 67599 Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(417), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67600 67601 // block 27 67602 Tuint16_t(163), Tuint16_t(420), Tuint16_t(421), Tuint16_t(421), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67603 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67604 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67605 Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), 67606 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(423), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(424), 67607 Tuint16_t(421), Tuint16_t(421), Tuint16_t(420), Tuint16_t(420), Tuint16_t(420), Tuint16_t(163), Tuint16_t(420), Tuint16_t(163), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(424), 67608 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), 67609 Tuint16_t(163), Tuint16_t(163), Tuint16_t(421), Tuint16_t(421), Tuint16_t(426), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67610 67611 // block 28 67612 Tuint16_t(163), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67613 Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67614 Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67615 Tuint16_t(427), Tuint16_t(428), Tuint16_t(427), Tuint16_t(429), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(430), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(431), 67616 Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(427), Tuint16_t(433), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(428), Tuint16_t(434), Tuint16_t(435), 67617 Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(437), Tuint16_t(437), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67618 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67619 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67620 67621 // block 29 67622 Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67623 Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67624 Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67625 Tuint16_t(438), Tuint16_t(439), Tuint16_t(438), Tuint16_t(440), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(441), Tuint16_t(439), Tuint16_t(439), Tuint16_t(438), Tuint16_t(163), Tuint16_t(163), 67626 Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(163), Tuint16_t(443), Tuint16_t(163), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(439), Tuint16_t(163), Tuint16_t(163), 67627 Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(163), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67628 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67629 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67630 67631 // block 30 67632 Tuint16_t(446), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(449), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(449), Tuint16_t(449), Tuint16_t(449), 67633 Tuint16_t(449), Tuint16_t(449), Tuint16_t(449), Tuint16_t(447), Tuint16_t(448), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(450), Tuint16_t(450), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), 67634 Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), 67635 Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(450), Tuint16_t(453), Tuint16_t(454), Tuint16_t(453), Tuint16_t(454), Tuint16_t(455), Tuint16_t(455), 67636 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(163), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), 67637 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), 67638 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67639 Tuint16_t(163), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(457), Tuint16_t(456), Tuint16_t(457), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(458), 67640 67641 // block 31 67642 Tuint16_t(456), Tuint16_t(456), Tuint16_t(450), Tuint16_t(450), Tuint16_t(459), Tuint16_t(448), Tuint16_t(450), Tuint16_t(450), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67643 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(163), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67644 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67645 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(163), Tuint16_t(447), Tuint16_t(447), 67646 Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(163), Tuint16_t(447), Tuint16_t(447), 67647 Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(448), Tuint16_t(448), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67648 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67649 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67650 67651 // block 32 67652 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67653 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67654 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(462), Tuint16_t(462), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), 67655 Tuint16_t(463), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(465), Tuint16_t(462), Tuint16_t(466), Tuint16_t(466), Tuint16_t(464), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), 67656 Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(468), Tuint16_t(468), Tuint16_t(469), Tuint16_t(469), Tuint16_t(469), Tuint16_t(469), 67657 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(464), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(463), Tuint16_t(463), 67658 Tuint16_t(463), Tuint16_t(461), Tuint16_t(462), Tuint16_t(470), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), Tuint16_t(462), Tuint16_t(462), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), 67659 Tuint16_t(461), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67660 67661 // block 33 67662 Tuint16_t(461), Tuint16_t(461), Tuint16_t(463), Tuint16_t(462), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(471), Tuint16_t(461), Tuint16_t(470), 67663 Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(470), Tuint16_t(470), Tuint16_t(462), Tuint16_t(463), Tuint16_t(473), Tuint16_t(473), 67664 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), 67665 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), 67666 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(163), Tuint16_t(474), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(474), Tuint16_t(163), Tuint16_t(163), 67667 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67668 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67669 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(476), Tuint16_t(477), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67670 67671 // block 34 67672 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67673 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67674 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67675 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67676 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67677 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(479), 67678 Tuint16_t(480), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67679 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67680 67681 // block 35 67682 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67683 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67684 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67685 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67686 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67687 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67688 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67689 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67690 67691 // block 36 67692 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67693 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67694 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67695 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67696 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67697 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67698 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67699 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67700 67701 // block 37 67702 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67703 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67704 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67705 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 67706 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67707 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67708 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67709 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67710 67711 // block 38 67712 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67713 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67714 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67715 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67716 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67717 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(484), Tuint16_t(484), Tuint16_t(484), 67718 Tuint16_t(485), Tuint16_t(486), Tuint16_t(487), Tuint16_t(486), Tuint16_t(486), Tuint16_t(486), Tuint16_t(486), Tuint16_t(487), Tuint16_t(487), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), 67719 Tuint16_t(488), Tuint16_t(488), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67720 67721 // block 39 67722 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67723 Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67724 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67725 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67726 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67727 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67728 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67729 Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(163), Tuint16_t(163), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(163), Tuint16_t(163), 67730 67731 // block 40 67732 Tuint16_t(494), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67733 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67734 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67735 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67736 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67737 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67738 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67739 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67740 67741 // block 41 67742 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67743 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67744 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67745 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67746 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67747 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67748 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67749 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67750 67751 // block 42 67752 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67753 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67754 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67755 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67756 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67757 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67758 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(496), Tuint16_t(497), Tuint16_t(495), 67759 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67760 67761 // block 43 67762 Tuint16_t(498), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), 67763 Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(500), Tuint16_t(501), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67764 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67765 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67766 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67767 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67768 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(503), Tuint16_t(503), Tuint16_t(503), Tuint16_t(504), Tuint16_t(504), 67769 Tuint16_t(504), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67770 67771 // block 44 67772 Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), 67773 Tuint16_t(505), Tuint16_t(505), Tuint16_t(506), Tuint16_t(506), Tuint16_t(507), Tuint16_t(508), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(505), 67774 Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), 67775 Tuint16_t(509), Tuint16_t(509), Tuint16_t(510), Tuint16_t(510), Tuint16_t(511), Tuint16_t(512), Tuint16_t(512), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67776 Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), 67777 Tuint16_t(513), Tuint16_t(513), Tuint16_t(514), Tuint16_t(514), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67778 Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(163), Tuint16_t(515), Tuint16_t(515), 67779 Tuint16_t(515), Tuint16_t(163), Tuint16_t(516), Tuint16_t(516), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67780 67781 // block 45 67782 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67783 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67784 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(518), Tuint16_t(518), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67785 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(519), Tuint16_t(519), Tuint16_t(520), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(520), Tuint16_t(520), 67786 Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(521), Tuint16_t(520), Tuint16_t(520), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), 67787 Tuint16_t(522), Tuint16_t(522), Tuint16_t(523), Tuint16_t(522), Tuint16_t(524), Tuint16_t(524), Tuint16_t(524), Tuint16_t(525), Tuint16_t(526), Tuint16_t(526), Tuint16_t(524), Tuint16_t(527), Tuint16_t(517), Tuint16_t(522), Tuint16_t(163), Tuint16_t(163), 67788 Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67789 Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67790 67791 // block 46 67792 Tuint16_t(530), Tuint16_t(530), Tuint16_t(531), Tuint16_t(532), Tuint16_t(533), Tuint16_t(531), Tuint16_t(534), Tuint16_t(530), Tuint16_t(533), Tuint16_t(535), Tuint16_t(536), Tuint16_t(537), Tuint16_t(537), Tuint16_t(537), Tuint16_t(538), Tuint16_t(537), 67793 Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67794 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67795 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67796 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(541), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67797 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67798 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67799 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67800 67801 // block 47 67802 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(542), Tuint16_t(542), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67803 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67804 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(543), Tuint16_t(540), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67805 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67806 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67807 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67808 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67809 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67810 67811 // block 48 67812 Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), 67813 Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(163), 67814 Tuint16_t(545), Tuint16_t(545), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(545), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67815 Tuint16_t(546), Tuint16_t(546), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(547), Tuint16_t(547), Tuint16_t(547), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67816 Tuint16_t(548), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(549), Tuint16_t(549), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), 67817 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), 67818 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(163), Tuint16_t(163), 67819 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67820 67821 // block 49 67822 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67823 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67824 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67825 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(553), Tuint16_t(553), Tuint16_t(553), Tuint16_t(552), Tuint16_t(552), Tuint16_t(553), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67826 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67827 Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(555), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(556), Tuint16_t(556), 67828 Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), 67829 Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), 67830 67831 // block 50 67832 Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), 67833 Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(559), Tuint16_t(559), Tuint16_t(560), Tuint16_t(560), Tuint16_t(559), Tuint16_t(163), Tuint16_t(163), Tuint16_t(561), Tuint16_t(561), 67834 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67835 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67836 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67837 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(563), Tuint16_t(564), Tuint16_t(563), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(163), 67838 Tuint16_t(565), Tuint16_t(566), Tuint16_t(564), Tuint16_t(566), Tuint16_t(566), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(563), Tuint16_t(563), Tuint16_t(563), 67839 Tuint16_t(563), Tuint16_t(563), Tuint16_t(563), Tuint16_t(564), Tuint16_t(564), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(163), Tuint16_t(163), Tuint16_t(567), 67840 67841 // block 51 67842 Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67843 Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67844 Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(570), Tuint16_t(571), Tuint16_t(571), Tuint16_t(571), Tuint16_t(571), Tuint16_t(569), Tuint16_t(569), Tuint16_t(163), Tuint16_t(163), 67845 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(572), Tuint16_t(573), 67846 Tuint16_t(573), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(163), 67847 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67848 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67849 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67850 67851 // block 52 67852 Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(575), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67853 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67854 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67855 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(577), Tuint16_t(578), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(575), Tuint16_t(574), Tuint16_t(575), Tuint16_t(575), Tuint16_t(575), 67856 Tuint16_t(575), Tuint16_t(575), Tuint16_t(574), Tuint16_t(575), Tuint16_t(579), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67857 Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(581), Tuint16_t(581), Tuint16_t(582), Tuint16_t(583), Tuint16_t(581), Tuint16_t(581), 67858 Tuint16_t(582), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), 67859 Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(581), Tuint16_t(581), Tuint16_t(163), 67860 67861 // block 53 67862 Tuint16_t(585), Tuint16_t(585), Tuint16_t(586), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67863 Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67864 Tuint16_t(587), Tuint16_t(586), Tuint16_t(585), Tuint16_t(585), Tuint16_t(585), Tuint16_t(585), Tuint16_t(586), Tuint16_t(586), Tuint16_t(585), Tuint16_t(585), Tuint16_t(588), Tuint16_t(589), Tuint16_t(585), Tuint16_t(585), Tuint16_t(587), Tuint16_t(587), 67865 Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67866 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), 67867 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), 67868 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(592), Tuint16_t(593), Tuint16_t(594), Tuint16_t(594), Tuint16_t(593), Tuint16_t(593), Tuint16_t(593), Tuint16_t(594), Tuint16_t(593), Tuint16_t(594), 67869 Tuint16_t(594), Tuint16_t(594), Tuint16_t(595), Tuint16_t(595), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(596), Tuint16_t(596), Tuint16_t(596), Tuint16_t(596), 67870 67871 // block 54 67872 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67873 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67874 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), 67875 Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(598), Tuint16_t(598), Tuint16_t(600), Tuint16_t(601), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(602), Tuint16_t(602), Tuint16_t(603), Tuint16_t(603), Tuint16_t(603), 67876 Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67877 Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), 67878 Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), 67879 Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(607), Tuint16_t(607), Tuint16_t(607), Tuint16_t(608), Tuint16_t(607), Tuint16_t(607), Tuint16_t(609), Tuint16_t(609), 67880 67881 // block 55 67882 Tuint16_t(610), Tuint16_t(611), Tuint16_t(612), Tuint16_t(613), Tuint16_t(614), Tuint16_t(615), Tuint16_t(616), Tuint16_t(617), Tuint16_t(618), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67883 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67884 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67885 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(163), Tuint16_t(163), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67886 Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67887 Tuint16_t(621), Tuint16_t(622), Tuint16_t(621), Tuint16_t(623), Tuint16_t(622), Tuint16_t(624), Tuint16_t(624), Tuint16_t(625), Tuint16_t(624), Tuint16_t(625), Tuint16_t(626), Tuint16_t(622), Tuint16_t(625), Tuint16_t(625), Tuint16_t(622), Tuint16_t(622), 67888 Tuint16_t(625), Tuint16_t(627), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(628), Tuint16_t(629), Tuint16_t(630), Tuint16_t(630), Tuint16_t(624), Tuint16_t(630), Tuint16_t(630), 67889 Tuint16_t(630), Tuint16_t(630), Tuint16_t(631), Tuint16_t(632), Tuint16_t(633), Tuint16_t(629), Tuint16_t(629), Tuint16_t(634), Tuint16_t(635), Tuint16_t(635), Tuint16_t(636), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67890 67891 // block 56 67892 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67893 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67894 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(637), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67895 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67896 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67897 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), 67898 Tuint16_t(638), Tuint16_t(638), Tuint16_t(148), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67899 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(639), Tuint16_t(640), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(641), Tuint16_t(70), Tuint16_t(70), 67900 67901 // block 57 67902 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(642), Tuint16_t(70), 67903 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(643), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), 67904 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(645), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(645), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), 67905 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(646), 67906 Tuint16_t(647), Tuint16_t(647), Tuint16_t(158), Tuint16_t(158), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67907 Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), 67908 Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), 67909 Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(648), Tuint16_t(154), Tuint16_t(649), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67910 67911 // block 58 67912 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67913 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67914 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), 67915 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67916 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67917 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67918 Tuint16_t(650), Tuint16_t(651), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67919 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67920 67921 // block 59 67922 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67923 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(69), Tuint16_t(69), Tuint16_t(69), Tuint16_t(69), Tuint16_t(652), Tuint16_t(653), Tuint16_t(70), Tuint16_t(70), Tuint16_t(654), Tuint16_t(70), 67924 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67925 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67926 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67927 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67928 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67929 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67930 67931 // block 60 67932 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67933 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(163), Tuint16_t(163), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(163), Tuint16_t(163), 67934 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67935 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67936 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(163), Tuint16_t(163), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(163), Tuint16_t(163), 67937 Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), 67938 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67939 Tuint16_t(657), Tuint16_t(657), Tuint16_t(658), Tuint16_t(658), Tuint16_t(658), Tuint16_t(658), Tuint16_t(659), Tuint16_t(659), Tuint16_t(660), Tuint16_t(660), Tuint16_t(661), Tuint16_t(661), Tuint16_t(662), Tuint16_t(662), Tuint16_t(163), Tuint16_t(163), 67940 67941 // block 61 67942 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67943 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67944 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67945 Tuint16_t(655), Tuint16_t(655), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(656), Tuint16_t(656), Tuint16_t(667), Tuint16_t(667), Tuint16_t(668), Tuint16_t(162), Tuint16_t(669), Tuint16_t(162), 67946 Tuint16_t(162), Tuint16_t(162), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(670), Tuint16_t(670), Tuint16_t(670), Tuint16_t(670), Tuint16_t(668), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67947 Tuint16_t(655), Tuint16_t(655), Tuint16_t(173), Tuint16_t(173), Tuint16_t(163), Tuint16_t(163), Tuint16_t(173), Tuint16_t(173), Tuint16_t(656), Tuint16_t(656), Tuint16_t(671), Tuint16_t(671), Tuint16_t(163), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67948 Tuint16_t(655), Tuint16_t(655), Tuint16_t(173), Tuint16_t(173), Tuint16_t(173), Tuint16_t(215), Tuint16_t(173), Tuint16_t(173), Tuint16_t(656), Tuint16_t(656), Tuint16_t(672), Tuint16_t(672), Tuint16_t(220), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67949 Tuint16_t(163), Tuint16_t(163), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(673), Tuint16_t(673), Tuint16_t(674), Tuint16_t(674), Tuint16_t(668), Tuint16_t(162), Tuint16_t(162), Tuint16_t(163), 67950 67951 // block 62 67952 Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(51), Tuint16_t(676), Tuint16_t(677), Tuint16_t(678), Tuint16_t(679), 67953 Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(681), Tuint16_t(43), Tuint16_t(682), Tuint16_t(683), Tuint16_t(684), Tuint16_t(685), Tuint16_t(685), Tuint16_t(686), Tuint16_t(684), Tuint16_t(685), 67954 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(687), Tuint16_t(43), Tuint16_t(43), Tuint16_t(687), Tuint16_t(688), Tuint16_t(689), Tuint16_t(690), Tuint16_t(691), Tuint16_t(692), Tuint16_t(693), Tuint16_t(694), Tuint16_t(695), 67955 Tuint16_t(696), Tuint16_t(696), Tuint16_t(697), Tuint16_t(697), Tuint16_t(697), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(49), Tuint16_t(57), Tuint16_t(43), Tuint16_t(698), Tuint16_t(699), Tuint16_t(43), Tuint16_t(700), 67956 Tuint16_t(701), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(702), Tuint16_t(703), Tuint16_t(704), Tuint16_t(699), Tuint16_t(699), Tuint16_t(698), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), 67957 Tuint16_t(43), Tuint16_t(43), Tuint16_t(50), Tuint16_t(705), Tuint16_t(700), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(675), 67958 Tuint16_t(51), Tuint16_t(706), Tuint16_t(706), Tuint16_t(706), Tuint16_t(706), Tuint16_t(707), Tuint16_t(708), Tuint16_t(709), Tuint16_t(710), Tuint16_t(711), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), 67959 Tuint16_t(54), Tuint16_t(645), Tuint16_t(163), Tuint16_t(163), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(713), Tuint16_t(714), Tuint16_t(715), Tuint16_t(716), Tuint16_t(717), Tuint16_t(644), 67960 67961 // block 63 67962 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(713), Tuint16_t(714), Tuint16_t(715), Tuint16_t(716), Tuint16_t(717), Tuint16_t(163), 67963 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67964 Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), 67965 Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), 67966 Tuint16_t(431), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), 67967 Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(720), Tuint16_t(720), Tuint16_t(720), 67968 Tuint16_t(720), Tuint16_t(719), Tuint16_t(720), Tuint16_t(721), Tuint16_t(720), Tuint16_t(719), Tuint16_t(719), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), 67969 Tuint16_t(722), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67970 67971 // block 64 67972 Tuint16_t(723), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 67973 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(726), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), 67974 Tuint16_t(723), Tuint16_t(723), Tuint16_t(727), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(728), Tuint16_t(723), Tuint16_t(724), Tuint16_t(729), Tuint16_t(730), Tuint16_t(731), Tuint16_t(724), Tuint16_t(724), Tuint16_t(732), Tuint16_t(725), 67975 Tuint16_t(724), Tuint16_t(724), Tuint16_t(733), Tuint16_t(724), Tuint16_t(725), Tuint16_t(734), Tuint16_t(734), Tuint16_t(734), Tuint16_t(734), Tuint16_t(735), Tuint16_t(723), Tuint16_t(723), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), 67976 Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(723), Tuint16_t(715), Tuint16_t(723), Tuint16_t(723), Tuint16_t(737), Tuint16_t(460), 67977 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 67978 Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), 67979 Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), 67980 67981 // block 65 67982 Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(65), Tuint16_t(66), Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(58), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67983 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 67984 Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(45), Tuint16_t(742), Tuint16_t(742), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(45), 67985 Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 67986 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(50), 67987 Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), 67988 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 67989 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 67990 67991 // block 66 67992 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 67993 Tuint16_t(50), Tuint16_t(50), Tuint16_t(745), Tuint16_t(53), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 67994 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 67995 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 67996 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 67997 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 67998 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), 67999 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68000 68001 // block 67 68002 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 68003 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68004 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68005 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68006 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68007 Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68008 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68009 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68010 68011 // block 68 68012 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68013 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68014 Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(749), Tuint16_t(750), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68015 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68016 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68017 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68018 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68019 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(45), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68020 68021 // block 69 68022 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(752), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68023 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(751), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68024 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68025 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68026 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), 68027 Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68028 Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), 68029 Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68030 68031 // block 70 68032 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68033 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68034 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68035 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68036 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68037 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68038 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68039 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68040 68041 // block 71 68042 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), 68043 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68044 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68045 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), 68046 Tuint16_t(754), Tuint16_t(754), Tuint16_t(755), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), 68047 Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), 68048 Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68049 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68050 68051 // block 72 68052 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68053 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68054 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68055 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68056 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68057 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68058 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68059 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68060 68061 // block 73 68062 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68063 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68064 Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), 68065 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(742), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 68066 Tuint16_t(742), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), 68067 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68068 Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68069 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(741), Tuint16_t(757), Tuint16_t(757), Tuint16_t(50), 68070 68071 // block 74 68072 Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(758), Tuint16_t(743), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), 68073 Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(759), Tuint16_t(752), Tuint16_t(752), 68074 Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), 68075 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68076 Tuint16_t(742), Tuint16_t(752), Tuint16_t(742), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), 68077 Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), 68078 Tuint16_t(742), Tuint16_t(758), Tuint16_t(758), Tuint16_t(742), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(758), Tuint16_t(758), Tuint16_t(760), 68079 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), 68080 68081 // block 75 68082 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68083 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68084 Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(761), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68085 Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), 68086 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(47), 68087 Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68088 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68089 Tuint16_t(47), Tuint16_t(47), Tuint16_t(748), Tuint16_t(748), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(759), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), 68090 68091 // block 76 68092 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(762), Tuint16_t(762), Tuint16_t(759), Tuint16_t(759), Tuint16_t(752), Tuint16_t(47), 68093 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), 68094 Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68095 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68096 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), 68097 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68098 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), 68099 Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68100 68101 // block 77 68102 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68103 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68104 Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68105 Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), 68106 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68107 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68108 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), 68109 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68110 68111 // block 78 68112 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68113 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68114 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68115 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68116 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68117 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68118 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68119 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68120 68121 // block 79 68122 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68123 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68124 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68125 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(741), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68126 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68127 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68128 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68129 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68130 68131 // block 80 68132 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), 68133 Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68134 Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68135 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68136 Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 68137 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68138 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68139 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), 68140 68141 // block 81 68142 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68143 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68144 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68145 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68146 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68147 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68148 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68149 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68150 68151 // block 82 68152 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68153 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68154 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), 68155 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68156 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68157 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), 68158 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68159 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68160 68161 // block 83 68162 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68163 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68164 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68165 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68166 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68167 Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68168 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68169 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68170 68171 // block 84 68172 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68173 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68174 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68175 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68176 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68177 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68178 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68179 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(764), Tuint16_t(45), 68180 68181 // block 85 68182 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68183 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68184 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68185 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68186 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68187 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68188 Tuint16_t(65), Tuint16_t(66), Tuint16_t(767), Tuint16_t(768), Tuint16_t(769), Tuint16_t(770), Tuint16_t(771), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(772), Tuint16_t(773), Tuint16_t(774), 68189 Tuint16_t(775), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(645), Tuint16_t(644), Tuint16_t(776), Tuint16_t(776), 68190 68191 // block 86 68192 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68193 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68194 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68195 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68196 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68197 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68198 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(777), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(779), 68199 Tuint16_t(779), Tuint16_t(779), Tuint16_t(211), Tuint16_t(212), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(780), Tuint16_t(780), Tuint16_t(780), Tuint16_t(780), Tuint16_t(781), Tuint16_t(780), Tuint16_t(780), 68200 68201 // block 87 68202 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), 68203 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), 68204 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(163), Tuint16_t(782), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(782), Tuint16_t(163), Tuint16_t(163), 68205 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68206 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68207 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68208 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(784), 68209 Tuint16_t(785), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(786), 68210 68211 // block 88 68212 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 68213 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68214 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68215 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68216 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68217 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68218 Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), 68219 Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), 68220 68221 // block 89 68222 Tuint16_t(43), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), 68223 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), 68224 Tuint16_t(788), Tuint16_t(789), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(699), Tuint16_t(790), 68225 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(680), Tuint16_t(699), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), 68226 Tuint16_t(680), Tuint16_t(791), Tuint16_t(684), Tuint16_t(792), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(791), Tuint16_t(43), Tuint16_t(791), Tuint16_t(791), 68227 Tuint16_t(45), Tuint16_t(45), Tuint16_t(43), Tuint16_t(699), Tuint16_t(699), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(680), Tuint16_t(753), Tuint16_t(753), 68228 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68229 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68230 68231 // block 90 68232 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68233 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68234 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68235 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68236 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68237 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68238 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68239 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68240 68241 // block 91 68242 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68243 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68244 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68245 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68246 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68247 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68248 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68249 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68250 68251 // block 92 68252 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68253 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68254 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68255 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68256 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68257 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68258 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68259 Tuint16_t(794), Tuint16_t(794), Tuint16_t(795), Tuint16_t(795), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68260 68261 // block 93 68262 Tuint16_t(675), Tuint16_t(796), Tuint16_t(797), Tuint16_t(798), Tuint16_t(723), Tuint16_t(799), Tuint16_t(800), Tuint16_t(801), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(804), Tuint16_t(805), Tuint16_t(804), Tuint16_t(805), 68263 Tuint16_t(802), Tuint16_t(803), Tuint16_t(45), Tuint16_t(806), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(807), Tuint16_t(808), Tuint16_t(809), Tuint16_t(809), 68264 Tuint16_t(45), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(810), Tuint16_t(810), Tuint16_t(810), Tuint16_t(810), Tuint16_t(811), Tuint16_t(811), 68265 Tuint16_t(812), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(723), Tuint16_t(814), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(815), Tuint16_t(816), Tuint16_t(817), Tuint16_t(818), Tuint16_t(818), 68266 Tuint16_t(163), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68267 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68268 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68269 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68270 68271 // block 94 68272 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68273 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(163), Tuint16_t(163), Tuint16_t(820), Tuint16_t(820), Tuint16_t(821), Tuint16_t(821), Tuint16_t(822), Tuint16_t(822), Tuint16_t(819), 68274 Tuint16_t(823), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68275 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68276 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68277 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68278 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68279 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(825), Tuint16_t(826), Tuint16_t(827), Tuint16_t(827), Tuint16_t(824), 68280 68281 // block 95 68282 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68283 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68284 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68285 Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68286 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68287 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68288 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(830), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68289 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68290 68291 // block 96 68292 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), 68293 Tuint16_t(831), Tuint16_t(831), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68294 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68295 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68296 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), 68297 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), 68298 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68299 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68300 68301 // block 97 68302 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), 68303 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(834), Tuint16_t(834), Tuint16_t(163), 68304 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68305 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68306 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), 68307 Tuint16_t(723), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68308 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), 68309 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(834), Tuint16_t(834), Tuint16_t(834), Tuint16_t(460), 68310 68311 // block 98 68312 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68313 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(836), Tuint16_t(831), Tuint16_t(836), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68314 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68315 Tuint16_t(831), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68316 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68317 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68318 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68319 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(831), 68320 68321 // block 99 68322 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68323 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68324 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68325 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68326 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68327 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68328 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68329 Tuint16_t(831), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68330 68331 // block 100 68332 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68333 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68334 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68335 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68336 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68337 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), 68338 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68339 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(723), 68340 68341 // block 101 68342 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68343 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68344 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68345 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68346 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68347 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68348 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68349 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68350 68351 // block 102 68352 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68353 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68354 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68355 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68356 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68357 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68358 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68359 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68360 68361 // block 103 68362 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68363 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(840), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68364 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68365 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68366 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68367 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68368 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68369 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68370 68371 // block 104 68372 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68373 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68374 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68375 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68376 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68377 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68378 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68379 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68380 68381 // block 105 68382 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68383 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68384 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68385 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68386 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68387 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), 68388 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), 68389 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(844), Tuint16_t(845), 68390 68391 // block 106 68392 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68393 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68394 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68395 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68396 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68397 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68398 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68399 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68400 68401 // block 107 68402 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(847), Tuint16_t(848), Tuint16_t(849), Tuint16_t(849), 68403 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68404 Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(846), Tuint16_t(846), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68405 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68406 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(851), Tuint16_t(852), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68407 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68408 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(853), Tuint16_t(246), 68409 Tuint16_t(248), Tuint16_t(248), Tuint16_t(248), Tuint16_t(854), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(855), Tuint16_t(855), Tuint16_t(854), Tuint16_t(856), 68410 68411 // block 108 68412 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68413 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(857), Tuint16_t(857), Tuint16_t(787), Tuint16_t(787), 68414 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68415 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68416 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68417 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68418 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), 68419 Tuint16_t(860), Tuint16_t(860), Tuint16_t(861), Tuint16_t(862), Tuint16_t(863), Tuint16_t(863), Tuint16_t(863), Tuint16_t(862), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68420 68421 // block 109 68422 Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 68423 Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), 68424 Tuint16_t(46), Tuint16_t(46), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68425 Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68426 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68427 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68428 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68429 Tuint16_t(644), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(865), Tuint16_t(65), Tuint16_t(66), 68430 68431 // block 110 68432 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(149), Tuint16_t(866), Tuint16_t(866), Tuint16_t(65), Tuint16_t(66), Tuint16_t(867), Tuint16_t(70), Tuint16_t(92), 68433 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(868), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68434 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(869), Tuint16_t(870), Tuint16_t(871), Tuint16_t(872), Tuint16_t(869), Tuint16_t(70), 68435 Tuint16_t(873), Tuint16_t(874), Tuint16_t(875), Tuint16_t(876), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68436 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(877), Tuint16_t(878), Tuint16_t(879), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68437 Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(70), Tuint16_t(163), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68438 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68439 Tuint16_t(163), Tuint16_t(163), Tuint16_t(880), Tuint16_t(880), Tuint16_t(880), Tuint16_t(65), Tuint16_t(66), Tuint16_t(92), Tuint16_t(147), Tuint16_t(147), Tuint16_t(70), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), 68440 68441 // block 111 68442 Tuint16_t(881), Tuint16_t(881), Tuint16_t(882), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(883), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(882), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), 68443 Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), 68444 Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(884), Tuint16_t(884), Tuint16_t(882), Tuint16_t(882), Tuint16_t(884), Tuint16_t(885), Tuint16_t(885), Tuint16_t(885), Tuint16_t(885), Tuint16_t(883), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68445 Tuint16_t(886), Tuint16_t(886), Tuint16_t(886), Tuint16_t(887), Tuint16_t(887), Tuint16_t(887), Tuint16_t(888), Tuint16_t(888), Tuint16_t(889), Tuint16_t(890), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68446 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68447 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68448 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68449 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(892), Tuint16_t(892), Tuint16_t(893), Tuint16_t(893), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68450 68451 // block 112 68452 Tuint16_t(894), Tuint16_t(894), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68453 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68454 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68455 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), 68456 Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(896), Tuint16_t(897), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(898), Tuint16_t(898), 68457 Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68458 Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), 68459 Tuint16_t(336), Tuint16_t(900), Tuint16_t(335), Tuint16_t(901), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(343), Tuint16_t(343), Tuint16_t(343), Tuint16_t(335), Tuint16_t(343), Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), 68460 68461 // block 113 68462 Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), 68463 Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), 68464 Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(905), Tuint16_t(905), Tuint16_t(905), Tuint16_t(906), Tuint16_t(907), 68465 Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), 68466 Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), 68467 Tuint16_t(909), Tuint16_t(909), Tuint16_t(910), Tuint16_t(911), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(912), 68468 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 68469 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68470 68471 // block 114 68472 Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68473 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68474 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68475 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(916), Tuint16_t(914), Tuint16_t(914), Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(914), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(914), 68476 Tuint16_t(917), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(919), Tuint16_t(920), Tuint16_t(920), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(163), Tuint16_t(921), 68477 Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(918), Tuint16_t(918), 68478 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(471), Tuint16_t(923), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 68479 Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(163), 68480 68481 // block 115 68482 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), 68483 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), 68484 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(926), 68485 Tuint16_t(926), Tuint16_t(925), Tuint16_t(925), Tuint16_t(926), Tuint16_t(926), Tuint16_t(925), Tuint16_t(925), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68486 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(926), Tuint16_t(163), Tuint16_t(163), 68487 Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(163), Tuint16_t(163), Tuint16_t(928), Tuint16_t(929), Tuint16_t(929), Tuint16_t(929), 68488 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 68489 Tuint16_t(923), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(473), Tuint16_t(473), Tuint16_t(473), Tuint16_t(461), Tuint16_t(470), Tuint16_t(471), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), 68490 68491 // block 116 68492 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68493 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68494 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68495 Tuint16_t(931), Tuint16_t(930), Tuint16_t(931), Tuint16_t(931), Tuint16_t(931), Tuint16_t(932), Tuint16_t(932), Tuint16_t(931), Tuint16_t(931), Tuint16_t(932), Tuint16_t(930), Tuint16_t(932), Tuint16_t(932), Tuint16_t(930), Tuint16_t(931), Tuint16_t(933), 68496 Tuint16_t(934), Tuint16_t(933), Tuint16_t(934), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68497 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(930), Tuint16_t(930), Tuint16_t(935), Tuint16_t(936), Tuint16_t(937), 68498 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(939), Tuint16_t(940), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), 68499 Tuint16_t(941), Tuint16_t(941), Tuint16_t(938), Tuint16_t(942), Tuint16_t(942), Tuint16_t(939), Tuint16_t(943), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68500 68501 // block 117 68502 Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68503 Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68504 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68505 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 68506 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 68507 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(944), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(866), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68508 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(221), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(945), Tuint16_t(46), Tuint16_t(46), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68509 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68510 68511 // block 118 68512 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68513 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68514 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68515 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68516 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), 68517 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), 68518 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(939), Tuint16_t(939), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), Tuint16_t(941), Tuint16_t(947), Tuint16_t(943), Tuint16_t(163), Tuint16_t(163), 68519 Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68520 68521 // block 119 68522 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68523 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68524 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68525 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68526 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68527 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68528 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68529 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68530 68531 // block 120 68532 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68533 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68534 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68535 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68536 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68537 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68538 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68539 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68540 68541 // block 121 68542 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68543 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68544 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68545 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68546 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68547 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68548 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68549 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68550 68551 // block 122 68552 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68553 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68554 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68555 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68556 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68557 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68558 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68559 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68560 68561 // block 123 68562 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68563 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68564 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68565 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68566 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68567 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68568 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68569 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68570 68571 // block 124 68572 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68573 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68574 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68575 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68576 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68577 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68578 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68579 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68580 68581 // block 125 68582 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68583 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68584 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68585 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68586 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68587 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68588 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68589 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68590 68591 // block 126 68592 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68593 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68594 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68595 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 68596 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68597 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68598 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68599 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68600 68601 // block 127 68602 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68603 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68604 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68605 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68606 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68607 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68608 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68609 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68610 68611 // block 128 68612 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68613 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68614 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68615 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68616 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68617 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68618 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68619 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68620 68621 // block 129 68622 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68623 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68624 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68625 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68626 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68627 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68628 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68629 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68630 68631 // block 130 68632 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), 68633 Tuint16_t(953), Tuint16_t(838), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), 68634 Tuint16_t(953), Tuint16_t(838), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68635 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68636 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68637 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68638 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), 68639 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68640 68641 // block 131 68642 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68643 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68644 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68645 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68646 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68647 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68648 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68649 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68650 68651 // block 132 68652 Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68653 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(270), Tuint16_t(265), Tuint16_t(270), 68654 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(954), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 68655 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(262), 68656 Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 68657 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68658 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68659 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68660 68661 // block 133 68662 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68663 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68664 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68665 Tuint16_t(286), Tuint16_t(286), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), 68666 Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 68667 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68668 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68669 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68670 68671 // block 134 68672 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68673 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68674 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68675 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68676 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68677 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(955), Tuint16_t(955), 68678 Tuint16_t(955), Tuint16_t(955), Tuint16_t(955), Tuint16_t(955), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68679 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68680 68681 // block 135 68682 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68683 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68684 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68685 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68686 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68687 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68688 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68689 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68690 68691 // block 136 68692 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68693 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68694 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68695 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(956), Tuint16_t(957), 68696 Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), 68697 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68698 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68699 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68700 68701 // block 137 68702 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68703 Tuint16_t(302), Tuint16_t(302), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68704 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68705 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68706 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(280), 68707 Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), 68708 Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), 68709 Tuint16_t(286), Tuint16_t(286), Tuint16_t(959), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(955), Tuint16_t(955), Tuint16_t(277), Tuint16_t(960), Tuint16_t(280), Tuint16_t(280), 68710 68711 // block 138 68712 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(962), 68713 Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(964), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(965), Tuint16_t(966), Tuint16_t(963), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68714 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(855), Tuint16_t(855), 68715 Tuint16_t(963), Tuint16_t(967), Tuint16_t(967), Tuint16_t(700), Tuint16_t(700), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), 68716 Tuint16_t(966), Tuint16_t(968), Tuint16_t(969), Tuint16_t(968), Tuint16_t(969), Tuint16_t(798), Tuint16_t(798), Tuint16_t(965), Tuint16_t(966), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(700), Tuint16_t(700), Tuint16_t(700), 68717 Tuint16_t(970), Tuint16_t(166), Tuint16_t(971), Tuint16_t(163), Tuint16_t(166), Tuint16_t(972), Tuint16_t(973), Tuint16_t(973), Tuint16_t(967), Tuint16_t(974), Tuint16_t(975), Tuint16_t(974), Tuint16_t(975), Tuint16_t(974), Tuint16_t(975), Tuint16_t(976), 68718 Tuint16_t(963), Tuint16_t(977), Tuint16_t(713), Tuint16_t(978), Tuint16_t(979), Tuint16_t(979), Tuint16_t(715), Tuint16_t(163), Tuint16_t(977), Tuint16_t(431), Tuint16_t(976), Tuint16_t(963), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68719 Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(302), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), 68720 68721 // block 139 68722 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68723 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68724 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68725 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68726 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68727 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68728 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68729 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), Tuint16_t(302), Tuint16_t(51), 68730 68731 // block 140 68732 Tuint16_t(163), Tuint16_t(973), Tuint16_t(980), Tuint16_t(976), Tuint16_t(431), Tuint16_t(976), Tuint16_t(963), Tuint16_t(981), Tuint16_t(974), Tuint16_t(975), Tuint16_t(963), Tuint16_t(713), Tuint16_t(970), Tuint16_t(982), Tuint16_t(971), Tuint16_t(983), 68733 Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(972), Tuint16_t(166), Tuint16_t(979), Tuint16_t(715), Tuint16_t(979), Tuint16_t(973), 68734 Tuint16_t(963), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), 68735 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(974), Tuint16_t(977), Tuint16_t(975), Tuint16_t(986), Tuint16_t(700), 68736 Tuint16_t(46), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), 68737 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(974), Tuint16_t(715), Tuint16_t(975), Tuint16_t(715), Tuint16_t(974), 68738 Tuint16_t(975), Tuint16_t(988), Tuint16_t(989), Tuint16_t(990), Tuint16_t(991), Tuint16_t(825), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68739 Tuint16_t(826), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68740 68741 // block 141 68742 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68743 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(992), Tuint16_t(992), 68744 Tuint16_t(830), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68745 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), 68746 Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68747 Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68748 Tuint16_t(431), Tuint16_t(431), Tuint16_t(715), Tuint16_t(46), Tuint16_t(723), Tuint16_t(431), Tuint16_t(431), Tuint16_t(163), Tuint16_t(723), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), 68749 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(993), Tuint16_t(993), Tuint16_t(993), Tuint16_t(723), Tuint16_t(723), Tuint16_t(958), Tuint16_t(958), 68750 68751 // block 142 68752 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68753 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68754 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68755 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), 68756 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), 68757 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), 68758 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68759 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68760 68761 // block 143 68762 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68763 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68764 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68765 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68766 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68767 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68768 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68769 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68770 68771 // block 144 68772 Tuint16_t(995), Tuint16_t(996), Tuint16_t(997), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68773 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68774 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68775 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), 68776 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68777 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68778 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68779 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 68780 68781 // block 145 68782 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1002), Tuint16_t(1003), Tuint16_t(1003), Tuint16_t(163), 68783 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68784 Tuint16_t(1002), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68785 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68786 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68787 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68788 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68789 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(158), Tuint16_t(163), Tuint16_t(163), 68790 68791 // block 146 68792 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68793 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68794 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68795 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68796 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68797 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68798 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68799 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68800 68801 // block 147 68802 Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), 68803 Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68804 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68805 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68806 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68807 Tuint16_t(1005), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68808 Tuint16_t(1006), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), 68809 Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68810 68811 // block 148 68812 Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68813 Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68814 Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68815 Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), 68816 Tuint16_t(1010), Tuint16_t(1011), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1011), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68817 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), 68818 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), 68819 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68820 68821 // block 149 68822 Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), 68823 Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(163), Tuint16_t(1015), 68824 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68825 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68826 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68827 Tuint16_t(1017), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68828 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68829 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68830 68831 // block 150 68832 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), 68833 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), 68834 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68835 Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68836 Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68837 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68838 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68839 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68840 68841 // block 151 68842 Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), 68843 Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(163), Tuint16_t(163), 68844 Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68845 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), 68846 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), 68847 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), 68848 Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), 68849 Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68850 68851 // block 152 68852 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), 68853 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), 68854 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68855 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68856 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68857 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68858 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1028), 68859 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), 68860 68861 // block 153 68862 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), 68863 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), 68864 Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), 68865 Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68866 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68867 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68868 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68869 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68870 68871 // block 154 68872 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68873 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68874 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68875 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68876 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68877 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68878 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68879 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68880 68881 // block 155 68882 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68883 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68884 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68885 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68886 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68887 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68888 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68889 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68890 68891 // block 156 68892 Tuint16_t(147), Tuint16_t(1032), Tuint16_t(1032), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(163), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68893 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68894 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68895 Tuint16_t(147), Tuint16_t(163), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68896 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68897 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68898 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68899 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68900 68901 // block 157 68902 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68903 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68904 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68905 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), 68906 Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), 68907 Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(262), Tuint16_t(1035), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), 68908 Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), 68909 Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1038), Tuint16_t(1038), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), 68910 68911 // block 158 68912 Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), 68913 Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(262), 68914 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), 68915 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68916 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68917 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68918 Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), 68919 Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(262), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), 68920 68921 // block 159 68922 Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), 68923 Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1046), 68924 Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), 68925 Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1048), 68926 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68927 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68928 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68929 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68930 68931 // block 160 68932 Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), 68933 Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), 68934 Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), 68935 Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1050), Tuint16_t(1050), 68936 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68937 Tuint16_t(262), Tuint16_t(262), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68938 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68939 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68940 68941 // block 161 68942 Tuint16_t(1052), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(262), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), 68943 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), 68944 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), 68945 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1054), Tuint16_t(1054), Tuint16_t(1054), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1055), 68946 Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68947 Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1058), Tuint16_t(1058), Tuint16_t(1057), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68948 Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), 68949 Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1060), Tuint16_t(1060), Tuint16_t(1061), 68950 68951 // block 162 68952 Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), 68953 Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1063), Tuint16_t(1063), Tuint16_t(1063), 68954 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68955 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68956 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1065), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), 68957 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), 68958 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1066), Tuint16_t(1066), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), 68959 Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1069), Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1070), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68960 68961 // block 163 68962 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68963 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68964 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68965 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1072), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), 68966 Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), 68967 Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), 68968 Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), 68969 Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), 68970 68971 // block 164 68972 Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), 68973 Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68974 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), 68975 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68976 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68977 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68978 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68979 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68980 68981 // block 165 68982 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 68983 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 68984 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 68985 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 68986 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68987 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68988 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68989 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68990 68991 // block 166 68992 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 68993 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 68994 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 68995 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68996 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 68997 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 68998 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 68999 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), 69000 69001 // block 167 69002 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), 69003 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), 69004 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1086), Tuint16_t(1086), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69005 Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69006 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69007 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69008 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69009 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69010 69011 // block 168 69012 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69013 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69014 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69015 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69016 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69017 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69018 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69019 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69020 69021 // block 169 69022 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69023 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69024 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69025 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69026 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69027 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69028 Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), 69029 Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(262), 69030 69031 // block 170 69032 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), 69033 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), 69034 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(262), Tuint16_t(1091), Tuint16_t(1091), Tuint16_t(1092), Tuint16_t(262), Tuint16_t(262), 69035 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69036 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69037 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69038 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69039 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69040 69041 // block 171 69042 Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), 69043 Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), 69044 Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1093), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69045 Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), 69046 Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), 69047 Tuint16_t(1096), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69048 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69049 Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), 69050 69051 // block 172 69052 Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69053 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69054 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69055 Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), 69056 Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69057 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69058 Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), 69059 Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69060 69061 // block 173 69062 Tuint16_t(1105), Tuint16_t(1106), Tuint16_t(1105), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69063 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69064 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69065 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), 69066 Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1108), Tuint16_t(1109), Tuint16_t(1109), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(163), Tuint16_t(163), 69067 Tuint16_t(163), Tuint16_t(163), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), 69068 Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), 69069 Tuint16_t(1108), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1107), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1113), 69070 69071 // block 174 69072 Tuint16_t(1114), Tuint16_t(1114), Tuint16_t(1115), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69073 Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69074 Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69075 Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1118), Tuint16_t(1119), Tuint16_t(1120), Tuint16_t(1120), Tuint16_t(1121), Tuint16_t(1122), Tuint16_t(1122), 69076 Tuint16_t(1122), Tuint16_t(1122), Tuint16_t(1117), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1121), Tuint16_t(163), Tuint16_t(163), 69077 Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), 69078 Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69079 Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69080 69081 // block 175 69082 Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), 69083 Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), 69084 Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1127), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), 69085 Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1128), Tuint16_t(1128), Tuint16_t(163), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), 69086 Tuint16_t(1130), Tuint16_t(1131), Tuint16_t(1131), Tuint16_t(1131), Tuint16_t(1126), Tuint16_t(1127), Tuint16_t(1127), Tuint16_t(1126), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69087 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), 69088 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), 69089 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1133), Tuint16_t(1134), Tuint16_t(1134), Tuint16_t(1132), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69090 69091 // block 176 69092 Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1136), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69093 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69094 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69095 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1136), Tuint16_t(1136), Tuint16_t(1136), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1136), 69096 Tuint16_t(1138), Tuint16_t(1137), Tuint16_t(1139), Tuint16_t(1139), Tuint16_t(1137), Tuint16_t(1140), Tuint16_t(1140), Tuint16_t(1141), Tuint16_t(1141), Tuint16_t(1142), Tuint16_t(1143), Tuint16_t(1143), Tuint16_t(1143), Tuint16_t(1140), Tuint16_t(1136), Tuint16_t(1135), 69097 Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1137), Tuint16_t(1141), Tuint16_t(1137), Tuint16_t(1141), Tuint16_t(1140), Tuint16_t(1140), 69098 Tuint16_t(163), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), 69099 Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69100 69101 // block 177 69102 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), 69103 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(163), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), 69104 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1148), 69105 Tuint16_t(1148), Tuint16_t(1148), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1148), Tuint16_t(1149), Tuint16_t(1150), Tuint16_t(1148), Tuint16_t(1151), Tuint16_t(1151), Tuint16_t(1152), Tuint16_t(1151), Tuint16_t(1151), Tuint16_t(1153), Tuint16_t(1148), Tuint16_t(163), 69106 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69107 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69108 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69109 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69110 69111 // block 178 69112 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), 69113 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), 69114 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1155), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69115 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), 69116 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), 69117 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1157), 69118 Tuint16_t(1158), Tuint16_t(1158), Tuint16_t(1158), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1159), Tuint16_t(1160), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69119 Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69120 69121 // block 179 69122 Tuint16_t(1162), Tuint16_t(1163), Tuint16_t(1164), Tuint16_t(1165), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1166), 69123 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), 69124 Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), 69125 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1167), Tuint16_t(1168), Tuint16_t(1166), Tuint16_t(1169), Tuint16_t(1164), 69126 Tuint16_t(1162), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1170), Tuint16_t(163), Tuint16_t(163), 69127 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1169), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1171), Tuint16_t(1166), Tuint16_t(1166), 69128 Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69129 Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69130 69131 // block 180 69132 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69133 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69134 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69135 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), 69136 Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1176), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1174), Tuint16_t(1177), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1178), Tuint16_t(1178), Tuint16_t(1179), Tuint16_t(1180), Tuint16_t(1180), 69137 Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1179), Tuint16_t(1179), Tuint16_t(163), Tuint16_t(1180), Tuint16_t(1182), Tuint16_t(1173), 69138 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69139 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69140 69141 // block 181 69142 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69143 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69144 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69145 Tuint16_t(1184), Tuint16_t(1185), Tuint16_t(1185), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1185), Tuint16_t(1184), Tuint16_t(1185), Tuint16_t(1186), 69146 Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1187), Tuint16_t(1188), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1189), Tuint16_t(1183), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69147 Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69148 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69149 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69150 69151 // block 182 69152 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), 69153 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), 69154 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1192), 69155 Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1193), Tuint16_t(1195), 69156 Tuint16_t(1196), Tuint16_t(1197), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1199), Tuint16_t(1199), Tuint16_t(1200), Tuint16_t(1200), Tuint16_t(1200), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), 69157 Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(163), Tuint16_t(163), 69158 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69159 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69160 69161 // block 183 69162 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69163 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69164 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69165 Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1203), Tuint16_t(1202), Tuint16_t(1204), 69166 Tuint16_t(1203), Tuint16_t(1205), Tuint16_t(1205), Tuint16_t(1206), Tuint16_t(1201), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69167 Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69168 Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69169 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69170 69171 // block 184 69172 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), 69173 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), 69174 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1209), Tuint16_t(1210), Tuint16_t(1209), Tuint16_t(1210), Tuint16_t(1210), 69175 Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1211), Tuint16_t(1212), Tuint16_t(1208), Tuint16_t(1213), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69176 Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69177 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69178 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69179 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69180 69181 // block 185 69182 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), 69183 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), 69184 Tuint16_t(1217), Tuint16_t(1217), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1218), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1219), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69185 Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1221), Tuint16_t(1221), Tuint16_t(1222), Tuint16_t(1222), Tuint16_t(1222), Tuint16_t(1223), 69186 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69187 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69188 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69189 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69190 69191 // block 186 69192 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), 69193 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), 69194 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1225), Tuint16_t(1225), Tuint16_t(1225), Tuint16_t(1226), 69195 Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1225), Tuint16_t(1227), Tuint16_t(1228), Tuint16_t(1229), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69196 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69197 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69198 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69199 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69200 69201 // block 187 69202 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69203 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69204 Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), 69205 Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), 69206 Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), 69207 Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), 69208 Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), 69209 Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1234), 69210 69211 // block 188 69212 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69213 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69214 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69215 Tuint16_t(1236), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(163), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1238), Tuint16_t(1238), Tuint16_t(1239), Tuint16_t(1240), Tuint16_t(1241), 69216 Tuint16_t(1237), Tuint16_t(1241), Tuint16_t(1237), Tuint16_t(1242), Tuint16_t(1243), Tuint16_t(1244), Tuint16_t(1243), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69217 Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69218 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69219 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69220 69221 // block 189 69222 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69223 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69224 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69225 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69226 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69227 Tuint16_t(1246), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), 69228 Tuint16_t(1249), Tuint16_t(1246), Tuint16_t(1250), Tuint16_t(1246), Tuint16_t(1247), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69229 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69230 69231 // block 190 69232 Tuint16_t(1251), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1253), Tuint16_t(1253), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69233 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69234 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69235 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1254), Tuint16_t(1255), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1256), Tuint16_t(1257), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1258), 69236 Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1259), Tuint16_t(1259), Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1255), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69237 Tuint16_t(1260), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1262), Tuint16_t(1262), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69238 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69239 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69240 69241 // block 191 69242 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), 69243 Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1262), Tuint16_t(1264), Tuint16_t(1265), Tuint16_t(1266), Tuint16_t(1267), Tuint16_t(1267), Tuint16_t(1260), Tuint16_t(1266), Tuint16_t(1266), 69244 Tuint16_t(1266), Tuint16_t(1268), Tuint16_t(1268), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69245 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 69246 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69247 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69248 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69249 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69250 69251 // block 192 69252 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(163), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), 69253 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), 69254 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1271), 69255 Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(163), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1271), Tuint16_t(1273), 69256 Tuint16_t(1270), Tuint16_t(1274), Tuint16_t(1274), Tuint16_t(1275), Tuint16_t(1276), Tuint16_t(1276), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69257 Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), 69258 Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69259 Tuint16_t(1279), Tuint16_t(1280), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), 69260 69261 // block 193 69262 Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), 69263 Tuint16_t(163), Tuint16_t(163), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), 69264 Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(163), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), 69265 Tuint16_t(1282), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69266 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69267 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69268 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69269 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69270 69271 // block 194 69272 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(163), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(163), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69273 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69274 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69275 Tuint16_t(1284), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(1285), 69276 Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1286), Tuint16_t(1285), Tuint16_t(1287), Tuint16_t(1287), Tuint16_t(1288), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69277 Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69278 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), 69279 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), 69280 69281 // block 195 69282 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(163), 69283 Tuint16_t(1292), Tuint16_t(1292), Tuint16_t(163), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1292), Tuint16_t(1291), Tuint16_t(1293), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69284 Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69285 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69286 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69287 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69288 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69289 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69290 69291 // block 196 69292 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69293 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69294 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69295 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69296 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69297 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69298 Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), 69299 Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1296), Tuint16_t(1296), Tuint16_t(1297), Tuint16_t(1297), Tuint16_t(1298), Tuint16_t(1298), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69300 69301 // block 197 69302 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69303 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69304 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69305 Tuint16_t(842), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69306 Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), 69307 Tuint16_t(388), Tuint16_t(388), Tuint16_t(1299), Tuint16_t(388), Tuint16_t(1299), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(391), Tuint16_t(391), Tuint16_t(391), 69308 Tuint16_t(391), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), 69309 Tuint16_t(390), Tuint16_t(390), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1300), 69310 69311 // block 198 69312 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69313 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69314 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69315 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69316 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69317 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69318 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69319 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69320 69321 // block 199 69322 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69323 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69324 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69325 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69326 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69327 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69328 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69329 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69330 69331 // block 200 69332 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69333 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69334 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69335 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69336 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69337 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69338 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(163), 69339 Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69340 69341 // block 201 69342 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69343 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69344 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69345 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69346 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69347 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69348 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69349 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69350 69351 // block 202 69352 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69353 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69354 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69355 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69356 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69357 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69358 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69359 Tuint16_t(1304), Tuint16_t(1305), Tuint16_t(1305), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69360 69361 // block 203 69362 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69363 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69364 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69365 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69366 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69367 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69368 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69369 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69370 69371 // block 204 69372 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69373 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69374 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(163), 69375 Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69376 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69377 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69378 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69379 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69380 69381 // block 205 69382 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69383 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69384 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69385 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69386 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69387 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69388 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69389 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69390 69391 // block 206 69392 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69393 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69394 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69395 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69396 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69397 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69398 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69399 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69400 69401 // block 207 69402 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69403 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69404 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69405 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69406 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69407 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69408 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69409 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69410 69411 // block 208 69412 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69413 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69414 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69415 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69416 Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), 69417 Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(163), 69418 Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1311), Tuint16_t(1311), 69419 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69420 69421 // block 209 69422 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69423 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69424 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69425 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(163), 69426 Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69427 Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), 69428 Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(163), Tuint16_t(163), 69429 Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1316), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69430 69431 // block 210 69432 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69433 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69434 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69435 Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1319), Tuint16_t(1319), Tuint16_t(1320), Tuint16_t(1321), Tuint16_t(1321), Tuint16_t(1322), Tuint16_t(1322), Tuint16_t(1322), Tuint16_t(1322), 69436 Tuint16_t(1323), Tuint16_t(1323), Tuint16_t(1324), Tuint16_t(1324), Tuint16_t(1319), Tuint16_t(1322), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69437 Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(163), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), 69438 Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(163), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69439 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69440 69441 // block 211 69442 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69443 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69444 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69445 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69446 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69447 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69448 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69449 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69450 69451 // block 212 69452 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69453 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69454 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69455 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69456 Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), 69457 Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), 69458 Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), 69459 Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), 69460 69461 // block 213 69462 Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), 69463 Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1330), Tuint16_t(1331), Tuint16_t(1332), Tuint16_t(1332), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69464 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69465 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69466 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69467 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69468 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69469 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69470 69471 // block 214 69472 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69473 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69474 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69475 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69476 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1334), 69477 Tuint16_t(1333), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69478 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69479 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69480 69481 // block 215 69482 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1336), 69483 Tuint16_t(1336), Tuint16_t(1336), Tuint16_t(1336), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), 69484 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69485 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69486 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69487 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69488 Tuint16_t(1338), Tuint16_t(1339), Tuint16_t(1340), Tuint16_t(799), Tuint16_t(1341), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69489 Tuint16_t(1342), Tuint16_t(1342), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69490 69491 // block 216 69492 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69493 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69494 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69495 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69496 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69497 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69498 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69499 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69500 69501 // block 217 69502 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69503 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69504 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69505 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69506 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69507 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69508 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69509 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69510 69511 // block 218 69512 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69513 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69514 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69515 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69516 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69517 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69518 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69519 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69520 69521 // block 219 69522 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69523 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69524 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69525 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69526 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69527 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69528 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69529 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69530 69531 // block 220 69532 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69533 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69534 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69535 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69536 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69537 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69538 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69539 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69540 69541 // block 221 69542 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69543 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69544 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69545 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69546 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69547 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69548 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69549 Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), 69550 69551 // block 222 69552 Tuint16_t(824), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69553 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69554 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69555 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69556 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69557 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69558 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69559 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69560 69561 // block 223 69562 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69563 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69564 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69565 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69566 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69567 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69568 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69569 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69570 69571 // block 224 69572 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69573 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69574 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69575 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69576 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69577 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69578 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69579 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69580 69581 // block 225 69582 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69583 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69584 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69585 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69586 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69587 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69588 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69589 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69590 69591 // block 226 69592 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69593 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69594 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69595 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69596 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69597 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69598 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69599 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69600 69601 // block 227 69602 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69603 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69604 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69605 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69606 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69607 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69608 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69609 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69610 69611 // block 228 69612 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69613 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1348), Tuint16_t(1349), Tuint16_t(1350), Tuint16_t(1351), 69614 Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69615 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69616 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69617 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69618 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69619 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69620 69621 // block 229 69622 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69623 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69624 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(163), Tuint16_t(163), 69625 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69626 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69627 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69628 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69629 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69630 69631 // block 230 69632 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69633 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69634 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69635 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69636 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69637 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69638 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69639 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69640 69641 // block 231 69642 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69643 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69644 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69645 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69646 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69647 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69648 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69649 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69650 69651 // block 232 69652 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69653 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69654 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69655 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69656 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69657 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69658 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69659 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69660 69661 // block 233 69662 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69663 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69664 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69665 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69666 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69667 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69668 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1353), Tuint16_t(1354), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1355), Tuint16_t(1356), Tuint16_t(1356), 69669 Tuint16_t(1356), Tuint16_t(1356), Tuint16_t(1356), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69670 69671 // block 234 69672 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69673 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69674 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), 69675 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69676 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69677 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69678 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69679 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69680 69681 // block 235 69682 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69683 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69684 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69685 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69686 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1357), Tuint16_t(1357), Tuint16_t(1357), Tuint16_t(1002), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69687 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69688 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69689 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69690 69691 // block 236 69692 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69693 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69694 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69695 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69696 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69697 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69698 Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), 69699 Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69700 69701 // block 237 69702 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69703 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69704 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69705 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69706 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69707 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69708 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), 69709 Tuint16_t(832), Tuint16_t(832), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69710 69711 // block 238 69712 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69713 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69714 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69715 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69716 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 69717 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69718 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69719 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69720 69721 // block 239 69722 Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69723 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), 69724 Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), 69725 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69726 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69727 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69728 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69729 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69730 69731 // block 240 69732 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69733 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), 69734 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69735 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), 69736 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69737 Tuint16_t(724), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69738 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69739 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69740 69741 // block 241 69742 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69743 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69744 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69745 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69746 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69747 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69748 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 69749 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69750 69751 // block 242 69752 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69753 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69754 Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69755 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69756 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69757 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69758 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69759 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69760 69761 // block 243 69762 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69763 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69764 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69765 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69766 Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69767 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69768 Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69769 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69770 69771 // block 244 69772 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69773 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69774 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69775 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69776 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), 69777 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69778 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), 69779 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69780 69781 // block 245 69782 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69783 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69784 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69785 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69786 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(725), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1359), Tuint16_t(1359), 69787 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69788 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69789 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69790 69791 // block 246 69792 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69793 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69794 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69795 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69796 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69797 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69798 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69799 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69800 69801 // block 247 69802 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69803 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69804 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69805 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69806 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69807 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69808 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69809 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69810 69811 // block 248 69812 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1362), Tuint16_t(1363), Tuint16_t(1362), Tuint16_t(1362), Tuint16_t(1364), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69813 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69814 Tuint16_t(163), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69815 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69816 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69817 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69818 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69819 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69820 69821 // block 249 69822 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(92), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 69823 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(643), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(163), 69824 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69825 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69826 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69827 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69828 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69829 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69830 69831 // block 250 69832 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), 69833 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), 69834 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69835 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69836 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69837 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69838 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69839 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69840 69841 // block 251 69842 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), 69843 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), 69844 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69845 Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1369), Tuint16_t(1369), Tuint16_t(163), Tuint16_t(163), 69846 Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1366), Tuint16_t(1371), 69847 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69848 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69849 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69850 69851 // block 252 69852 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69853 Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), 69854 Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1373), Tuint16_t(163), 69855 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69856 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), 69857 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), 69858 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1375), Tuint16_t(1375), Tuint16_t(1375), Tuint16_t(1375), 69859 Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1377), 69860 69861 // block 253 69862 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69863 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69864 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69865 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69866 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69867 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69868 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 69869 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 69870 69871 // block 254 69872 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69873 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69874 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69875 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69876 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69877 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69878 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69879 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69880 69881 // block 255 69882 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69883 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69884 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69885 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69886 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), 69887 Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69888 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69889 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69890 69891 // block 256 69892 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), 69893 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), 69894 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), 69895 Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), 69896 Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1383), Tuint16_t(1383), Tuint16_t(1383), Tuint16_t(1384), Tuint16_t(1385), Tuint16_t(1385), Tuint16_t(1385), Tuint16_t(1386), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69897 Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1388), Tuint16_t(1388), 69898 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69899 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69900 69901 // block 257 69902 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69903 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69904 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69905 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69906 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69907 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69908 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69909 Tuint16_t(302), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69910 69911 // block 258 69912 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69913 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69914 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1390), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69915 Tuint16_t(1391), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69916 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69917 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69918 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69919 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69920 69921 // block 259 69922 Tuint16_t(302), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69923 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69924 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1390), Tuint16_t(1389), 69925 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(302), Tuint16_t(302), 69926 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69927 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69928 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69929 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69930 69931 // block 260 69932 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69933 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69934 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69935 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69936 Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69937 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), 69938 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69939 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), 69940 69941 // block 261 69942 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69943 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69944 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69945 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69946 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69947 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69948 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69949 Tuint16_t(274), Tuint16_t(274), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69950 69951 // block 262 69952 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69953 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69954 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69955 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69956 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69957 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69958 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69959 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69960 69961 // block 263 69962 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69963 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69964 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), 69965 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69966 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), 69967 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69968 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69969 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69970 69971 // block 264 69972 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(58), Tuint16_t(58), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69973 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69974 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1393), 69975 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), 69976 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69977 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), 69978 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69979 Tuint16_t(1397), Tuint16_t(1397), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1397), Tuint16_t(1397), 69980 69981 // block 265 69982 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(460), 69983 Tuint16_t(460), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69984 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), 69985 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69986 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69987 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69988 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), 69989 Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), 69990 69991 // block 266 69992 Tuint16_t(1400), Tuint16_t(1398), Tuint16_t(1401), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69993 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69994 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), 69995 Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1401), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69996 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69997 Tuint16_t(1402), Tuint16_t(1402), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69998 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69999 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70000 70001 // block 267 70002 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70003 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70004 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70005 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70006 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70007 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70008 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70009 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70010 70011 // block 268 70012 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70013 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70014 Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70015 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70016 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70017 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70018 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70019 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), 70020 70021 // block 269 70022 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70023 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), 70024 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70025 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70026 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1404), Tuint16_t(1404), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), 70027 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), 70028 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70029 Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), 70030 70031 // block 270 70032 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70033 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70034 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70035 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), 70036 Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70037 Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70038 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70039 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70040 70041 // block 271 70042 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), 70043 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70044 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70045 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70046 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70047 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70048 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70049 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1394), 70050 70051 // block 272 70052 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70053 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70054 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70055 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(723), 70056 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), 70057 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70058 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), 70059 Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1404), Tuint16_t(1404), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70060 70061 // block 273 70062 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), 70063 Tuint16_t(1404), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70064 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70065 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70066 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70067 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), 70068 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), 70069 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70070 70071 // block 274 70072 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70073 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70074 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70075 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70076 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70077 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70078 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70079 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70080 70081 // block 275 70082 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70083 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70084 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70085 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70086 Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), 70087 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70088 Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70089 Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70090 70091 // block 276 70092 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70093 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70094 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70095 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70096 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70097 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70098 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70099 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70100 70101 // block 277 70102 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70103 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70104 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70105 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70106 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70107 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70108 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70109 Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70110 70111 // block 278 70112 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70113 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70114 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70115 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70116 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70117 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70118 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70119 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70120 70121 // block 279 70122 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70123 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70124 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), 70125 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70126 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70127 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70128 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70129 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70130 70131 // block 280 70132 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), 70133 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70134 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70135 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), 70136 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70137 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70138 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70139 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70140 70141 // block 281 70142 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70143 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70144 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70145 Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70146 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70147 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), 70148 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70149 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70150 70151 // block 282 70152 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70153 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70154 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70155 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70156 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70157 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70158 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), 70159 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70160 70161 // block 283 70162 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70163 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70164 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70165 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70166 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70167 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70168 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70169 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70170 70171 // block 284 70172 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70173 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70174 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70175 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70176 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70177 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70178 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70179 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70180 70181 // block 285 70182 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70183 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70184 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70185 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70186 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70187 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70188 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70189 Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70190 70191 // block 286 70192 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70193 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70194 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70195 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70196 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70197 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70198 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70199 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(958), Tuint16_t(958), 70200 70201 // block 287 70202 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70203 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70204 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70205 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70206 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70207 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70208 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70209 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70210 70211 // block 288 70212 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70213 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70214 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70215 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70216 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70217 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70218 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70219 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70220 70221 // block 289 70222 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70223 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), 70224 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70225 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70226 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70227 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70228 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70229 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70230 70231 // block 290 70232 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70233 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70234 Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70235 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70236 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70237 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70238 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70239 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70240 70241 // block 291 70242 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70243 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70244 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70245 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70246 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70247 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70248 Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70249 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70250 70251 // block 292 70252 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 70253 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), 70254 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70255 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70256 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70257 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70258 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70259 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70260 70261 // block 293 70262 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70263 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70264 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70265 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70266 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70267 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70268 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70269 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(958), Tuint16_t(958), 70270 70271 // block 294 70272 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70273 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70274 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70275 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70276 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70277 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70278 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70279 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70280 70281 // block 295 70282 Tuint16_t(707), Tuint16_t(712), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70283 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70284 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70285 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70286 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70287 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70288 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70289 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70290 70291 // block 296 70292 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70293 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70294 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70295 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70296 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70297 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70298 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70299 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70300 70301 // block 297 70302 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70303 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70304 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70305 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70306 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70307 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70308 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70309 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70310 70311 // block 298 70312 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70313 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70314 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70315 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70316 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70317 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70318 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70319 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70320 70321 // block 299 70322 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70323 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70324 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70325 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70326 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70327 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70328 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70329 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(958), Tuint16_t(958), 70330 } /* pcre2_ucd.c:2386:16 */ 70331 70332 // End of pcre2_ucd.c 70333 70334 // This function is needed only when memmove() is not available. 70335 70336 // End of pcre2_internal.h 70337 70338 // ************************************************ 70339 // 70340 // Validate a UTF string * 70341 // 70342 70343 // This function is called (optionally) at the start of compile or match, to 70344 // check that a supposed UTF string is actually valid. The early check means 70345 // that subsequent code can assume it is dealing with a valid string. The check 70346 // can be turned off for maximum performance, but the consequences of supplying an 70347 // invalid string are then undefined. 70348 // 70349 // Arguments: 70350 // string points to the string 70351 // length length of string 70352 // errp pointer to an error position offset variable 70353 // 70354 // Returns: == 0 if the string is a valid UTF string 70355 // != 0 otherwise, setting the offset of the bad character 70356 70357 func X_pcre2_valid_utf_8(tls *libc.TLS, string TPCRE2_SPTR8, length Tsize_t, erroroffset uintptr) int32 { /* pcre2_valid_utf.c:94:1: */ 70358 var p TPCRE2_SPTR8 70359 var c Tuint32_t 70360 70361 // ----------------- Check a UTF-8 string ----------------- 70362 70363 // Originally, this function checked according to RFC 2279, allowing for values 70364 // in the range 0 to 0x7fffffff, up to 6 bytes long, but ensuring that they were 70365 // in the canonical format. Once somebody had pointed out RFC 3629 to me (it 70366 // obsoletes 2279), additional restrictions were applied. The values are now 70367 // limited to be between 0 and 0x0010ffff, no more than 4 bytes long, and the 70368 // subrange 0xd000 to 0xdfff is excluded. However, the format of 5-byte and 6-byte 70369 // characters is still checked. Error returns are as follows: 70370 // 70371 // PCRE2_ERROR_UTF8_ERR1 Missing 1 byte at the end of the string 70372 // PCRE2_ERROR_UTF8_ERR2 Missing 2 bytes at the end of the string 70373 // PCRE2_ERROR_UTF8_ERR3 Missing 3 bytes at the end of the string 70374 // PCRE2_ERROR_UTF8_ERR4 Missing 4 bytes at the end of the string 70375 // PCRE2_ERROR_UTF8_ERR5 Missing 5 bytes at the end of the string 70376 // PCRE2_ERROR_UTF8_ERR6 2nd-byte's two top bits are not 0x80 70377 // PCRE2_ERROR_UTF8_ERR7 3rd-byte's two top bits are not 0x80 70378 // PCRE2_ERROR_UTF8_ERR8 4th-byte's two top bits are not 0x80 70379 // PCRE2_ERROR_UTF8_ERR9 5th-byte's two top bits are not 0x80 70380 // PCRE2_ERROR_UTF8_ERR10 6th-byte's two top bits are not 0x80 70381 // PCRE2_ERROR_UTF8_ERR11 5-byte character is not permitted by RFC 3629 70382 // PCRE2_ERROR_UTF8_ERR12 6-byte character is not permitted by RFC 3629 70383 // PCRE2_ERROR_UTF8_ERR13 4-byte character with value > 0x10ffff is not permitted 70384 // PCRE2_ERROR_UTF8_ERR14 3-byte character with value 0xd800-0xdfff is not permitted 70385 // PCRE2_ERROR_UTF8_ERR15 Overlong 2-byte sequence 70386 // PCRE2_ERROR_UTF8_ERR16 Overlong 3-byte sequence 70387 // PCRE2_ERROR_UTF8_ERR17 Overlong 4-byte sequence 70388 // PCRE2_ERROR_UTF8_ERR18 Overlong 5-byte sequence (won't ever occur) 70389 // PCRE2_ERROR_UTF8_ERR19 Overlong 6-byte sequence (won't ever occur) 70390 // PCRE2_ERROR_UTF8_ERR20 Isolated 0x80 byte (not within UTF-8 character) 70391 // PCRE2_ERROR_UTF8_ERR21 Byte with the illegal value 0xfe or 0xff 70392 70393 for p = string; length > Tsize_t(0); p++ { 70394 var ab Tuint32_t 70395 var d Tuint32_t 70396 70397 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 70398 length-- 70399 70400 if c < Tuint32_t(128) { 70401 continue 70402 } // ASCII character 70403 70404 if c < Tuint32_t(0xc0) { 70405 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int32(p) - int32(string)) / 1) 70406 return -22 70407 } 70408 70409 if c >= Tuint32_t(0xfe) { 70410 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int32(p) - int32(string)) / 1) 70411 return -23 70412 } 70413 70414 ab = Tuint32_t(X_pcre2_utf8_table4[c&Tuint32_t(0x3f)]) // Number of additional bytes (1-5) 70415 if length < Tsize_t(ab) { 70416 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int32(p) - int32(string)) / 1) 70417 switch Tsize_t(ab) - length { 70418 case Tsize_t(1): 70419 return -3 70420 fallthrough 70421 case Tsize_t(2): 70422 return -4 70423 fallthrough 70424 case Tsize_t(3): 70425 return -5 70426 fallthrough 70427 case Tsize_t(4): 70428 return -6 70429 fallthrough 70430 case Tsize_t(5): 70431 return -7 70432 } 70433 } 70434 length = length - Tsize_t(ab) // Length remaining 70435 70436 // Check top bits in the second byte 70437 70438 if libc.AssignUint32(&d, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1)))))&Tuint32_t(0xc0) != Tuint32_t(0x80) { 70439 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 1) 70440 return -8 70441 } 70442 70443 // For each length, check that the remaining bytes start with the 0x80 bit 70444 // set and not the 0x40 bit. Then check for an overlong sequence, and for the 70445 // excluded range 0xd800 to 0xdfff. 70446 70447 switch ab { 70448 // 2-byte character. No further bytes to check for 0x80. Check first byte 70449 // for for xx00 000x (overlong sequence). 70450 70451 case Tuint32_t(1): 70452 if c&Tuint32_t(0x3e) == Tuint32_t(0) { 70453 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 1) 70454 return -17 70455 } 70456 break 70457 70458 // 3-byte character. Check third byte for 0x80. Then check first 2 bytes 70459 // for 1110 0000, xx0x xxxx (overlong sequence) or 70460 // 1110 1101, 1010 xxxx (0xd800 - 0xdfff) 70461 70462 case Tuint32_t(2): 70463 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70464 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70465 return -9 70466 } 70467 if c == Tuint32_t(0xe0) && d&Tuint32_t(0x20) == Tuint32_t(0) { 70468 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70469 return -18 70470 } 70471 if c == Tuint32_t(0xed) && d >= Tuint32_t(0xa0) { 70472 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70473 return -16 70474 } 70475 break 70476 70477 // 4-byte character. Check 3rd and 4th bytes for 0x80. Then check first 2 70478 // bytes for for 1111 0000, xx00 xxxx (overlong sequence), then check for a 70479 // character greater than 0x0010ffff (f4 8f bf bf) 70480 70481 case Tuint32_t(3): 70482 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70483 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70484 return -9 70485 } 70486 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70487 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 3) 70488 return -10 70489 } 70490 if c == Tuint32_t(0xf0) && d&Tuint32_t(0x30) == Tuint32_t(0) { 70491 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 3) 70492 return -19 70493 } 70494 if c > Tuint32_t(0xf4) || c == Tuint32_t(0xf4) && d > Tuint32_t(0x8f) { 70495 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 3) 70496 return -15 70497 } 70498 break 70499 70500 // 5-byte and 6-byte characters are not allowed by RFC 3629, and will be 70501 // rejected by the length test below. However, we do the appropriate tests 70502 // here so that overlong sequences get diagnosed, and also in case there is 70503 // ever an option for handling these larger code points. 70504 70505 // 5-byte character. Check 3rd, 4th, and 5th bytes for 0x80. Then check for 70506 // 1111 1000, xx00 0xxx 70507 70508 case Tuint32_t(4): 70509 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70510 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70511 return -9 70512 } 70513 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70514 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 3) 70515 return -10 70516 } 70517 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70518 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 4) 70519 return -11 70520 } 70521 if c == Tuint32_t(0xf8) && d&Tuint32_t(0x38) == Tuint32_t(0) { 70522 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 4) 70523 return -20 70524 } 70525 break 70526 70527 // 6-byte character. Check 3rd-6th bytes for 0x80. Then check for 70528 // 1111 1100, xx00 00xx. 70529 70530 case Tuint32_t(5): 70531 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70532 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 2) 70533 return -9 70534 } 70535 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70536 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 3) 70537 return -10 70538 } 70539 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70540 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 4) 70541 return -11 70542 } 70543 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70544 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 5) 70545 return -12 70546 } 70547 if c == Tuint32_t(0xfc) && d&Tuint32_t(0x3c) == Tuint32_t(0) { 70548 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int32(p)-int32(string))/1) - 5) 70549 return -21 70550 } 70551 break 70552 } 70553 70554 // Character is valid under RFC 2279, but 4-byte and 5-byte characters are 70555 // excluded by RFC 3629. The pointer p is currently at the last byte of the 70556 // character. 70557 70558 if ab > Tuint32_t(3) { 70559 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(Tuint32_t(int32((int32(p)-int32(string))/1)) - ab) 70560 if ab == Tuint32_t(4) { 70561 return -13 70562 } 70563 return -14 70564 } 70565 } 70566 return 0 70567 70568 // ----------------- Check a UTF-16 string ----------------- 70569 70570 } 70571 70572 // End of pcre2_valid_utf.c 70573 70574 // This function is needed only when memmove() is not available. 70575 70576 // End of pcre2_internal.h 70577 70578 // ************************************************ 70579 // 70580 // Match character against an XCLASS * 70581 // 70582 70583 // This function is called to match a character against an extended class that 70584 // might contain codepoints above 255 and/or Unicode properties. 70585 // 70586 // Arguments: 70587 // c the character 70588 // data points to the flag code unit of the XCLASS data 70589 // utf TRUE if in UTF mode 70590 // 70591 // Returns: TRUE if character matches, else FALSE 70592 70593 func X_pcre2_xclass_8(tls *libc.TLS, c Tuint32_t, data TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_xclass.c:69:1: */ 70594 var t TPCRE2_UCHAR8 70595 var negated TBOOL = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_NOT != 0) 70596 70597 // In 8 bit mode, this must always be TRUE. Help the compiler to know that. 70598 utf = DTRUE 70599 70600 // Code points < 256 are matched against a bitmap, if one is present. If not, 70601 // we still carry on, because there may be ranges that start below 256 in the 70602 // additional data. 70603 70604 if c < Tuint32_t(256) { 70605 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_HASPROP == 0 { 70606 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_MAP == 0 { 70607 return negated 70608 } 70609 return libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(data + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 70610 } 70611 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_MAP != 0 && uint32(*(*Tuint8_t)(unsafe.Pointer(data + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0) { 70612 return libc.BoolInt32(!(negated != 0)) 70613 } // char found 70614 } 70615 70616 // First skip the bit map if present. Then match against the list of Unicode 70617 // properties or large chars or ranges that end with a large char. We won't ever 70618 // encounter XCL_PROP or XCL_NOTPROP when UTF support is not compiled. 70619 70620 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&DXCL_MAP != 0 { 70621 data += TPCRE2_SPTR8(uint32(32) / uint32(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 70622 } 70623 70624 for int32(libc.AssignUint8(&t, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))) != DXCL_END { 70625 var x Tuint32_t 70626 var y Tuint32_t 70627 if int32(t) == DXCL_SINGLE { 70628 if utf != 0 { 70629 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70630 if x >= 0xc0 { 70631 if x&0x20 == Tuint32_t(0) { 70632 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70633 } else if x&0x10 == Tuint32_t(0) { 70634 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70635 data += uintptr(2) 70636 } else if x&0x08 == Tuint32_t(0) { 70637 x = x&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70638 data += uintptr(3) 70639 } else if x&0x04 == Tuint32_t(0) { 70640 x = x&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70641 data += uintptr(4) 70642 } else { 70643 x = x&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70644 data += uintptr(5) 70645 } 70646 } 70647 70648 // macro generates multiple statements 70649 } else { 70650 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70651 } 70652 if c == x { 70653 return libc.BoolInt32(!(negated != 0)) 70654 } 70655 } else if int32(t) == DXCL_RANGE { 70656 if utf != 0 { 70657 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70658 if x >= 0xc0 { 70659 if x&0x20 == Tuint32_t(0) { 70660 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70661 } else if x&0x10 == Tuint32_t(0) { 70662 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70663 data += uintptr(2) 70664 } else if x&0x08 == Tuint32_t(0) { 70665 x = x&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70666 data += uintptr(3) 70667 } else if x&0x04 == Tuint32_t(0) { 70668 x = x&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70669 data += uintptr(4) 70670 } else { 70671 x = x&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70672 data += uintptr(5) 70673 } 70674 } 70675 70676 // macro generates multiple statements 70677 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70678 if y >= 0xc0 { 70679 if y&0x20 == Tuint32_t(0) { 70680 y = y&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70681 } else if y&0x10 == Tuint32_t(0) { 70682 y = y&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70683 data += uintptr(2) 70684 } else if y&0x08 == Tuint32_t(0) { 70685 y = y&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70686 data += uintptr(3) 70687 } else if y&0x04 == Tuint32_t(0) { 70688 y = y&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70689 data += uintptr(4) 70690 } else { 70691 y = y&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70692 data += uintptr(5) 70693 } 70694 } 70695 70696 // macro generates multiple statements 70697 } else { 70698 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70699 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70700 } 70701 if c >= x && c <= y { 70702 return libc.BoolInt32(!(negated != 0)) 70703 } 70704 } else { 70705 var prop uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 70706 var isprop TBOOL = libc.Bool32(int32(t) == DXCL_PROP) 70707 var ok TBOOL 70708 70709 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data))) { 70710 case DPT_ANY: 70711 if isprop != 0 { 70712 return libc.BoolInt32(!(negated != 0)) 70713 } 70714 break 70715 fallthrough 70716 70717 case DPT_LAMP: 70718 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == isprop { 70719 return libc.BoolInt32(!(negated != 0)) 70720 } 70721 break 70722 fallthrough 70723 70724 case DPT_GC: 70725 if libc.Bool32(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == isprop { 70726 return libc.BoolInt32(!(negated != 0)) 70727 } 70728 break 70729 fallthrough 70730 70731 case DPT_PC: 70732 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == isprop { 70733 return libc.BoolInt32(!(negated != 0)) 70734 } 70735 break 70736 fallthrough 70737 70738 case DPT_SC: 70739 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == isprop { 70740 return libc.BoolInt32(!(negated != 0)) 70741 } 70742 break 70743 fallthrough 70744 70745 case DPT_SCX: 70746 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))%32)) != Tuint32_t(0)) 70747 if ok == isprop { 70748 return libc.BoolInt32(!(negated != 0)) 70749 } 70750 break 70751 fallthrough 70752 70753 case DPT_ALNUM: 70754 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == isprop { 70755 return libc.BoolInt32(!(negated != 0)) 70756 } 70757 break 70758 fallthrough 70759 70760 // Perl space used to exclude VT, but from Perl 5.18 it is included, 70761 // which means that Perl space and POSIX space are now identical. PCRE 70762 // was changed at release 8.34. 70763 70764 case DPT_SPACE: 70765 fallthrough // Perl space 70766 case DPT_PXSPACE: // POSIX space 70767 switch c { 70768 case Tuint32_t('\011'): 70769 fallthrough 70770 case Tuint32_t('\040'): 70771 fallthrough 70772 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 70773 fallthrough 70774 case Tuint32_t(0x1680): 70775 fallthrough /* OGHAM SPACE MARK */ 70776 case Tuint32_t(0x180e): 70777 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 70778 case Tuint32_t(0x2000): 70779 fallthrough /* EN QUAD */ 70780 case Tuint32_t(0x2001): 70781 fallthrough /* EM QUAD */ 70782 case Tuint32_t(0x2002): 70783 fallthrough /* EN SPACE */ 70784 case Tuint32_t(0x2003): 70785 fallthrough /* EM SPACE */ 70786 case Tuint32_t(0x2004): 70787 fallthrough /* THREE-PER-EM SPACE */ 70788 case Tuint32_t(0x2005): 70789 fallthrough /* FOUR-PER-EM SPACE */ 70790 case Tuint32_t(0x2006): 70791 fallthrough /* SIX-PER-EM SPACE */ 70792 case Tuint32_t(0x2007): 70793 fallthrough /* FIGURE SPACE */ 70794 case Tuint32_t(0x2008): 70795 fallthrough /* PUNCTUATION SPACE */ 70796 case Tuint32_t(0x2009): 70797 fallthrough /* THIN SPACE */ 70798 case Tuint32_t(0x200A): 70799 fallthrough /* HAIR SPACE */ 70800 case Tuint32_t(0x202f): 70801 fallthrough /* NARROW NO-BREAK SPACE */ 70802 case Tuint32_t(0x205f): 70803 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 70804 case Tuint32_t(0x3000): 70805 fallthrough 70806 case Tuint32_t('\012'): 70807 fallthrough 70808 case Tuint32_t('\013'): 70809 fallthrough 70810 case Tuint32_t('\014'): 70811 fallthrough 70812 case Tuint32_t('\015'): 70813 fallthrough 70814 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 70815 fallthrough 70816 case Tuint32_t(0x2028): 70817 fallthrough /* LINE SEPARATOR */ 70818 case Tuint32_t(0x2029): 70819 if isprop != 0 { 70820 return libc.BoolInt32(!(negated != 0)) 70821 } 70822 break 70823 fallthrough 70824 70825 default: 70826 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == isprop { 70827 return libc.BoolInt32(!(negated != 0)) 70828 } 70829 break 70830 } 70831 break 70832 fallthrough 70833 70834 case DPT_WORD: 70835 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) == 70836 isprop { 70837 return libc.BoolInt32(!(negated != 0)) 70838 } 70839 break 70840 fallthrough 70841 70842 case DPT_UCNC: 70843 if c < Tuint32_t(0xa0) { 70844 if libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140')) == isprop { 70845 return libc.BoolInt32(!(negated != 0)) 70846 } 70847 } else { 70848 if libc.Bool32(c < Tuint32_t(0xd800) || c > Tuint32_t(0xdfff)) == isprop { 70849 return libc.BoolInt32(!(negated != 0)) 70850 } 70851 } 70852 break 70853 fallthrough 70854 70855 case DPT_BIDICL: 70856 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))) == isprop { 70857 return libc.BoolInt32(!(negated != 0)) 70858 } 70859 break 70860 fallthrough 70861 70862 case DPT_BOOL: 70863 ok = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))%32)) != Tuint32_t(0)) 70864 if ok == isprop { 70865 return libc.BoolInt32(!(negated != 0)) 70866 } 70867 break 70868 fallthrough 70869 70870 // The following three properties can occur only in an XCLASS, as there 70871 // is no \p or \P coding for them. 70872 70873 // Graphic character. Implement this as not Z (space or separator) and 70874 // not C (other), except for Cf (format) with a few exceptions. This seems 70875 // to be what Perl does. The exceptional characters are: 70876 // 70877 // U+061C Arabic Letter Mark 70878 // U+180E Mongolian Vowel Separator 70879 // U+2066 - U+2069 Various "isolate"s 70880 // 70881 70882 case DPT_PXGRAPH: 70883 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_Z && (X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_C || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Cf && c != Tuint32_t(0x061c) && c != Tuint32_t(0x180e) && (c < Tuint32_t(0x2066) || c > Tuint32_t(0x2069)))) == isprop { 70884 return libc.BoolInt32(!(negated != 0)) 70885 } 70886 break 70887 fallthrough 70888 70889 // Printable character: same as graphic, with the addition of Zs, i.e. 70890 // not Zl and not Zp, and U+180E. 70891 70892 case DPT_PXPRINT: 70893 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) != ucp_Zl && int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) != ucp_Zp && (X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_C || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Cf && c != Tuint32_t(0x061c) && (c < Tuint32_t(0x2066) || c > Tuint32_t(0x2069)))) == isprop { 70894 return libc.BoolInt32(!(negated != 0)) 70895 } 70896 break 70897 fallthrough 70898 70899 // Punctuation: all Unicode punctuation, plus ASCII characters that 70900 // Unicode treats as symbols rather than punctuation, for Perl 70901 // compatibility (these are $+<=>^`|~). 70902 70903 case DPT_PXPUNCT: 70904 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_P || c < Tuint32_t(128) && X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_S) == isprop { 70905 return libc.BoolInt32(!(negated != 0)) 70906 } 70907 break 70908 fallthrough 70909 70910 // This should never occur, but compilers may mutter if there is no 70911 // default. 70912 70913 default: 70914 return DFALSE 70915 } 70916 70917 data += uintptr(2) 70918 } 70919 } 70920 70921 return negated // char did not match 70922 } 70923 70924 // End of pcre2_xclass.c 70925 70926 func init() { 70927 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 0)) = default_malloc // pcre2_context.c:134:5: 70928 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 4)) = default_free // pcre2_context.c:134:21: 70929 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 20 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70930 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 0)) = default_malloc // pcre2_context.c:134:5: 70931 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 4)) = default_free // pcre2_context.c:134:21: 70932 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 20 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70933 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 0)) = default_malloc // pcre2_context.c:198:5: 70934 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 4)) = default_free // pcre2_context.c:198:21: 70935 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 0)) = default_malloc // pcre2_context.c:198:5: 70936 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 4)) = default_free // pcre2_context.c:198:21: 70937 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 0)) = default_malloc // pcre2_context.c:164:5: 70938 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 4)) = default_free // pcre2_context.c:164:21: 70939 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 0)) = default_malloc // pcre2_context.c:164:5: 70940 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 4)) = default_free // pcre2_context.c:164:21: 70941 } 70942 70943 var ts1 = "\x00MARK\x00ACCEPT\x00F\x00FAIL\x00COMMIT\x00PRUNE\x00SKIP\x00THEN\x00pla\x00plb\x00napla\x00naplb\x00nla\x00nlb\x00positive_lookahead\x00positive_lookbehind\x00non_atomic_positive_lookahead\x00non_atomic_positive_lookbehind\x00negative_lookahead\x00negative_lookbehind\x00atomic\x00sr\x00asr\x00script_run\x00atomic_script_run\x00alpha\x00lower\x00upper\x00alnum\x00ascii\x00blank\x00cntrl\x00digit\x00graph\x00print\x00punct\x00space\x00word\x00xdigit\x00UTF8)\x00UTF)\x00UCP)\x00NOTEMPTY)\x00NOTEMPTY_ATSTART)\x00NO_AUTO_POSSESS)\x00NO_DOTSTAR_ANCHOR)\x00NO_JIT)\x00NO_START_OPT)\x00LIMIT_HEAP=\x00LIMIT_MATCH=\x00LIMIT_DEPTH=\x00LIMIT_RECURSION=\x00CR)\x00LF)\x00CRLF)\x00ANY)\x00NUL)\x00ANYCRLF)\x00BSR_ANYCRLF)\x00BSR_UNICODE)\x00bidiclass\x00bc\x00script\x00sc\x00scriptextensions\x00scx\x00[:<:]]\x00[:>:]]\x00Q\\E\x00VERSION\x00DEFINE\x00Z\x0010.40 2022-04-14\x0010.402022-04-14\x00\\?*+|.^${}[]()\x00(){}123456789\x00(*NUL)\x00]\x00:]\x00\\\x00[\x00^\x00alnum:alpha:ascii:blank:cntrl:digit:graph:lower:print:punct:space:upper:word:xdigit:\x00\x00no error\x00\\ at end of pattern\x00\\c at end of pattern\x00unrecognized character follows \\\x00numbers out of order in {} quantifier\x00number too big in {} quantifier\x00missing terminating ] for character class\x00escape sequence is invalid in character class\x00range out of order in character class\x00quantifier does not follow a repeatable item\x00internal error: unexpected repeat\x00unrecognized character after (? or (?-\x00POSIX named classes are supported only within a class\x00POSIX collating elements are not supported\x00missing closing parenthesis\x00reference to non-existent subpattern\x00pattern passed as NULL\x00unrecognised compile-time option bit(s)\x00missing ) after (?# comment\x00parentheses are too deeply nested\x00regular expression is too large\x00failed to allocate heap memory\x00unmatched closing parenthesis\x00internal error: code overflow\x00missing closing parenthesis for condition\x00lookbehind assertion is not fixed length\x00a relative value of zero is not allowed\x00conditional subpattern contains more than two branches\x00assertion expected after (?( or (?(?C)\x00digit expected after (?+ or (?-\x00unknown POSIX class name\x00internal error in pcre2_study(): should not occur\x00this version of PCRE2 does not have Unicode support\x00parentheses are too deeply nested (stack check)\x00character code point value in \\x{} or \\o{} is too large\x00lookbehind is too complicated\x00\\C is not allowed in a lookbehind assertion in UTF-8 mode\x00PCRE2 does not support \\F, \\L, \\l, \\N{name}, \\U, or \\u\x00number after (?C is greater than 255\x00closing parenthesis for (?C expected\x00invalid escape sequence in (*VERB) name\x00unrecognized character after (?P\x00syntax error in subpattern name (missing terminator?)\x00two named subpatterns have the same name (PCRE2_DUPNAMES not set)\x00subpattern name must start with a non-digit\x00this version of PCRE2 does not have support for \\P, \\p, or \\X\x00malformed \\P or \\p sequence\x00unknown property after \\P or \\p\x00subpattern name is too long (maximum 32 code units)\x00too many named subpatterns (maximum 10000)\x00invalid range in character class\x00octal value is greater than \\377 in 8-bit non-UTF-8 mode\x00internal error: overran compiling workspace\x00internal error: previously-checked referenced subpattern not found\x00DEFINE subpattern contains more than one branch\x00missing opening brace after \\o\x00internal error: unknown newline setting\x00\\g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number\x00(?R (recursive pattern call) must be followed by a closing parenthesis\x00obsolete error (should not occur)\x00(*VERB) not recognized or malformed\x00subpattern number is too big\x00subpattern name expected\x00internal error: parsed pattern overflow\x00non-octal character in \\o{} (closing brace missing?)\x00different names for subpatterns of the same number are not allowed\x00(*MARK) must have an argument\x00non-hex character in \\x{} (closing brace missing?)\x00\\c must be followed by a printable ASCII character\x00\\k is not followed by a braced, angle-bracketed, or quoted name\x00internal error: unknown meta code in check_lookbehinds()\x00\\N is not supported in a class\x00callout string is too long\x00disallowed Unicode code point (>= 0xd800 && <= 0xdfff)\x00using UTF is disabled by the application\x00using UCP is disabled by the application\x00name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)\x00character code point value in \\u.... sequence is too large\x00digits missing in \\x{} or \\o{} or \\N{U+}\x00syntax error or number too big in (?(VERSION condition\x00internal error: unknown opcode in auto_possessify()\x00missing terminating delimiter for callout with string argument\x00unrecognized string delimiter follows (?C\x00using \\C is disabled by the application\x00(?| and/or (?J: or (?x: parentheses are too deeply nested\x00using \\C is disabled in this PCRE2 library\x00regular expression is too complicated\x00lookbehind assertion is too long\x00pattern string is longer than the limit set by the application\x00internal error: unknown code in parsed pattern\x00internal error: bad code value in parsed_skip()\x00PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not allowed in UTF-16 mode\x00invalid option bits with PCRE2_LITERAL\x00\\N{U+dddd} is supported only in Unicode (UTF) mode\x00invalid hyphen in option setting\x00(*alpha_assertion) not recognized\x00script runs require Unicode support, which this version of PCRE2 does not have\x00too many capturing groups (maximum 65535)\x00atomic assertion expected after (?( or (?(?C)\x00\\K is not allowed in lookarounds (but see PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK)\x00\x00no error\x00no match\x00partial match\x00UTF-8 error: 1 byte missing at end\x00UTF-8 error: 2 bytes missing at end\x00UTF-8 error: 3 bytes missing at end\x00UTF-8 error: 4 bytes missing at end\x00UTF-8 error: 5 bytes missing at end\x00UTF-8 error: byte 2 top bits not 0x80\x00UTF-8 error: byte 3 top bits not 0x80\x00UTF-8 error: byte 4 top bits not 0x80\x00UTF-8 error: byte 5 top bits not 0x80\x00UTF-8 error: byte 6 top bits not 0x80\x00UTF-8 error: 5-byte character is not allowed (RFC 3629)\x00UTF-8 error: 6-byte character is not allowed (RFC 3629)\x00UTF-8 error: code points greater than 0x10ffff are not defined\x00UTF-8 error: code points 0xd800-0xdfff are not defined\x00UTF-8 error: overlong 2-byte sequence\x00UTF-8 error: overlong 3-byte sequence\x00UTF-8 error: overlong 4-byte sequence\x00UTF-8 error: overlong 5-byte sequence\x00UTF-8 error: overlong 6-byte sequence\x00UTF-8 error: isolated byte with 0x80 bit set\x00UTF-8 error: illegal byte (0xfe or 0xff)\x00UTF-16 error: missing low surrogate at end\x00UTF-16 error: invalid low surrogate\x00UTF-16 error: isolated low surrogate\x00UTF-32 error: code points 0xd800-0xdfff are not defined\x00UTF-32 error: code points greater than 0x10ffff are not defined\x00bad data value\x00patterns do not all use the same character tables\x00magic number missing\x00pattern compiled in wrong mode: 8/16/32-bit error\x00bad offset value\x00bad option value\x00invalid replacement string\x00bad offset into UTF string\x00callout error code\x00invalid data in workspace for DFA restart\x00too much recursion for DFA matching\x00backreference condition or recursion test is not supported for DFA matching\x00function is not supported for DFA matching\x00pattern contains an item that is not supported for DFA matching\x00workspace size exceeded in DFA matching\x00internal error - pattern overwritten?\x00bad JIT option\x00JIT stack limit reached\x00match limit exceeded\x00no more memory\x00unknown substring\x00non-unique substring name\x00NULL argument passed with non-zero length\x00nested recursion at the same subject position\x00matching depth limit exceeded\x00requested value is not available\x00requested value is not set\x00offset limit set without PCRE2_USE_OFFSET_LIMIT\x00bad escape sequence in replacement string\x00expected closing curly bracket in replacement string\x00bad substitution in replacement string\x00match with end before start or start moved backwards is not supported\x00too many replacements (more than INT_MAX)\x00bad serialized data\x00heap limit exceeded\x00invalid syntax\x00internal error - duplicate substitution match\x00PCRE2_MATCH_INVALID_UTF is not supported for DFA matching\x00\x00\x00\x00JIT is not supported\x00MARK\x00adlam\x00adlm\x00aghb\x00ahex\x00ahom\x00alpha\x00alphabetic\x00anatolianhieroglyphs\x00any\x00arab\x00arabic\x00armenian\x00armi\x00armn\x00ascii\x00asciihexdigit\x00avestan\x00avst\x00bali\x00balinese\x00bamu\x00bamum\x00bass\x00bassavah\x00batak\x00batk\x00beng\x00bengali\x00bhaiksuki\x00bhks\x00bidial\x00bidian\x00bidib\x00bidibn\x00bidic\x00bidicontrol\x00bidics\x00bidien\x00bidies\x00bidiet\x00bidifsi\x00bidil\x00bidilre\x00bidilri\x00bidilro\x00bidim\x00bidimirrored\x00bidinsm\x00bidion\x00bidipdf\x00bidipdi\x00bidir\x00bidirle\x00bidirli\x00bidirlo\x00bidis\x00bidiws\x00bopo\x00bopomofo\x00brah\x00brahmi\x00brai\x00braille\x00bugi\x00buginese\x00buhd\x00buhid\x00c\x00cakm\x00canadianaboriginal\x00cans\x00cari\x00carian\x00cased\x00caseignorable\x00caucasianalbanian\x00cc\x00cf\x00chakma\x00cham\x00changeswhencasefolded\x00changeswhencasemapped\x00changeswhenlowercased\x00changeswhentitlecased\x00changeswhenuppercased\x00cher\x00cherokee\x00chorasmian\x00chrs\x00ci\x00cn\x00co\x00common\x00copt\x00coptic\x00cpmn\x00cprt\x00cs\x00cuneiform\x00cwcf\x00cwcm\x00cwl\x00cwt\x00cwu\x00cypriot\x00cyprominoan\x00cyrillic\x00cyrl\x00dash\x00defaultignorablecodepoint\x00dep\x00deprecated\x00deseret\x00deva\x00devanagari\x00di\x00dia\x00diacritic\x00diak\x00divesakuru\x00dogr\x00dogra\x00dsrt\x00dupl\x00duployan\x00ebase\x00ecomp\x00egyp\x00egyptianhieroglyphs\x00elba\x00elbasan\x00elym\x00elymaic\x00emod\x00emoji\x00emojicomponent\x00emojimodifier\x00emojimodifierbase\x00emojipresentation\x00epres\x00ethi\x00ethiopic\x00ext\x00extendedpictographic\x00extender\x00extpict\x00geor\x00georgian\x00glag\x00glagolitic\x00gong\x00gonm\x00goth\x00gothic\x00gran\x00grantha\x00graphemebase\x00graphemeextend\x00graphemelink\x00grbase\x00greek\x00grek\x00grext\x00grlink\x00gujarati\x00gujr\x00gunjalagondi\x00gurmukhi\x00guru\x00han\x00hang\x00hangul\x00hani\x00hanifirohingya\x00hano\x00hanunoo\x00hatr\x00hatran\x00hebr\x00hebrew\x00hex\x00hexdigit\x00hira\x00hiragana\x00hluw\x00hmng\x00hmnp\x00hung\x00idc\x00idcontinue\x00ideo\x00ideographic\x00ids\x00idsb\x00idsbinaryoperator\x00idst\x00idstart\x00idstrinaryoperator\x00imperialaramaic\x00inherited\x00inscriptionalpahlavi\x00inscriptionalparthian\x00ital\x00java\x00javanese\x00joinc\x00joincontrol\x00kaithi\x00kali\x00kana\x00kannada\x00katakana\x00kayahli\x00khar\x00kharoshthi\x00khitansmallscript\x00khmer\x00khmr\x00khoj\x00khojki\x00khudawadi\x00kits\x00knda\x00kthi\x00l\x00l&\x00lana\x00lao\x00laoo\x00latin\x00latn\x00lc\x00lepc\x00lepcha\x00limb\x00limbu\x00lina\x00linb\x00lineara\x00linearb\x00lisu\x00ll\x00lm\x00lo\x00loe\x00logicalorderexception\x00lower\x00lowercase\x00lt\x00lu\x00lyci\x00lycian\x00lydi\x00lydian\x00m\x00mahajani\x00mahj\x00maka\x00makasar\x00malayalam\x00mand\x00mandaic\x00mani\x00manichaean\x00marc\x00marchen\x00masaramgondi\x00math\x00mc\x00me\x00medefaidrin\x00medf\x00meeteimayek\x00mend\x00mendekikakui\x00merc\x00mero\x00meroiticcursive\x00meroitichieroglyphs\x00miao\x00mlym\x00mn\x00modi\x00mong\x00mongolian\x00mro\x00mroo\x00mtei\x00mult\x00multani\x00myanmar\x00mymr\x00n\x00nabataean\x00nand\x00nandinagari\x00narb\x00nbat\x00nchar\x00nd\x00newa\x00newtailue\x00nko\x00nkoo\x00nl\x00no\x00noncharactercodepoint\x00nshu\x00nushu\x00nyiakengpuachuehmong\x00ogam\x00ogham\x00olchiki\x00olck\x00oldhungarian\x00olditalic\x00oldnortharabian\x00oldpermic\x00oldpersian\x00oldsogdian\x00oldsoutharabian\x00oldturkic\x00olduyghur\x00oriya\x00orkh\x00orya\x00osage\x00osge\x00osma\x00osmanya\x00ougr\x00p\x00pahawhhmong\x00palm\x00palmyrene\x00patsyn\x00patternsyntax\x00patternwhitespace\x00patws\x00pauc\x00paucinhau\x00pc\x00pcm\x00pd\x00pe\x00perm\x00pf\x00phag\x00phagspa\x00phli\x00phlp\x00phnx\x00phoenician\x00pi\x00plrd\x00po\x00prependedconcatenationmark\x00prti\x00ps\x00psalterpahlavi\x00qaac\x00qaai\x00qmark\x00quotationmark\x00radical\x00regionalindicator\x00rejang\x00ri\x00rjng\x00rohg\x00runic\x00runr\x00s\x00samaritan\x00samr\x00sarb\x00saur\x00saurashtra\x00sc\x00sd\x00sentenceterminal\x00sgnw\x00sharada\x00shavian\x00shaw\x00shrd\x00sidd\x00siddham\x00signwriting\x00sind\x00sinh\x00sinhala\x00sk\x00sm\x00so\x00softdotted\x00sogd\x00sogdian\x00sogo\x00sora\x00sorasompeng\x00soyo\x00soyombo\x00space\x00sterm\x00sund\x00sundanese\x00sylo\x00sylotinagri\x00syrc\x00syriac\x00tagalog\x00tagb\x00tagbanwa\x00taile\x00taitham\x00taiviet\x00takr\x00takri\x00tale\x00talu\x00tamil\x00taml\x00tang\x00tangsa\x00tangut\x00tavt\x00telu\x00telugu\x00term\x00terminalpunctuation\x00tfng\x00tglg\x00thaa\x00thaana\x00thai\x00tibetan\x00tibt\x00tifinagh\x00tirh\x00tirhuta\x00tnsa\x00toto\x00ugar\x00ugaritic\x00uideo\x00unifiedideograph\x00unknown\x00upper\x00uppercase\x00vai\x00vaii\x00variationselector\x00vith\x00vithkuqi\x00vs\x00wancho\x00wara\x00warangciti\x00wcho\x00whitespace\x00wspace\x00xan\x00xidc\x00xidcontinue\x00xids\x00xidstart\x00xpeo\x00xps\x00xsp\x00xsux\x00xuc\x00xwd\x00yezi\x00yezidi\x00yi\x00yiii\x00z\x00zanabazarsquare\x00zanb\x00zinh\x00zl\x00zp\x00zs\x00zyyy\x00zzzz\x00\x0014.0.0\x00" 70944 var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data